{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"d902a3d1-a6f9-4eb2-8ec8-6c21b08bc330","name":"Supplier Portal API","description":"This documentation offers a comprehensive guide to working with the Yucopia Supplier API and integrating your environment with our platform.\n\n## What is Yucopia\n\nYucopia is a platform that enables businesses, federations & governments to manage their suppliers, contracts and purchases. A user does not need to know from which supplier a certain product should be bought. The user can just search in our marketplace for that product and order it like in any regular e-commerce.  \nWhen an order is created, the purchase processes of the company are enforced by the software. When the correct validation and administrative steps are completed, the order is sent to the supplier.\n\n## Key concepts\n\n**Marketplace**: A customer can have multiple marketplaces active in Yucopia. First of all, there is the “Yucopia marketplace” where all suppliers can be found that have a direct agreement with Yucopia. Secondly, the “Contract marketplace” exists where all suppliers are present that have a contract with the customer. Lastly, other marketplaces can be created. For example, a local marketplace with only local suppliers.\n\n**Catalogs**: As a supplier it is possible to upload multiple catalogs to Yucopia. This makes it possible to set specific products at custom prices available for certain customers. A catalog can be available for one or multiple customers or can be a general catalog that is available to everyone.\n\n**Order**: An order is created by a customer. This order contains a list of order lines. An order can contain products from multiple suppliers. Every order gets a unique PO number (= GCO Number).\n\n**Supplier order**: A supplier order is the order that is sent to the supplier. When the customer creates an order that has products of 3 different suppliers, that order will be split up into 3 supplier orders. Every supplier then gets notified about their specific supplier order.\n\n**Validation workflow**: When an order is created, the order might need to go through a validation process. This process can be fully configured by the customer. The order is only sent to suppliers when the order is approved in the validation flow.\n\n## Getting started\n\nBelow we describe the steps that need to be taken in order to offer your products on Yucopia.\n\n#### Introduction\n\nThe Yucopia supplier API is a REST API. It uses resource based urls, accepts JSON-encoded request bodies and returns JSON encoded responses in combination with HTTP response codes.\n\nThe base URL for the API is: [https://api.yucopia.com](https://api.yucopia.com)\n\nWe also support a testing environment on: [https://accept-api.yucopia.com](https://accept-api.yucopia.ocm)\n\nBefore you can use the Supplier API you need to request access. This access can be requested by sending an email to [support@yucopia.com](https://mailto:support@yucopia.com). When this is granted, you will receive a unique API key that can be used to authenticate yourself. This is necessary to access all authorized endpoints.\n\n#### Product catalog import\n\nIn order to offer products on Yucopia, a product catalog needs to be uploaded. The following  \ninformation should always be present in a product catalog for each product:\n\n- Internal reference\n- GTIN (= EAN, UPC, ISBN or other global unique product identifier)\n- Product title\n- Product description\n- Price excl. VAT\n- VAT %\n- Optional: End date (=how long this product can be sold at this price. If date is reached, the product is  \n    no longer offered on Yucopia, until the end date is updated)\n- 1 – 10 image urls\n    \n\nIt is possible to provide multiple catalogs. You can upload your general catalog or customer-specific catalogs. When no customer VAT number is provided, we view the  \ncatalog as your general catalog (more on how to provide customer VAT later). This catalog will be offered to every customer that does not have a  \npersonal catalog.\n\nWhen a specific customer VAT number is provided, the catalog is only available for that specific  \ncustomer. This makes it possible to offer the same product to multiple customers, with different  \nprices.\n\nThe uploaded product catalog is not immediatly processed for performance reasons, your product catalog will be processed within the hour. After that period your products will become available in Yucopia.\n\nHow to upload a product catalog is described below.\n\n##### A: Upload a product catalog using the API endpoint\n\nIf you want to supply a product catalog for a specific customer you can use the customerVat query parameter.\n\nAn array of product objects can be sent in the request body. New products must have the fields described above and may also contain additional data fields which will also be processed and saved in the Yucopia system. When your products are already in Yucopia, the endpoint only requires the internal reference field and will update the existing products with the additional fields you supply for that product.\n\nWe recommend sending a request body size of maximum 15MB. You can make multiple requests to upload/update your full product catalog in the Yucopia system.\n\nAn additional endpoint is available in the docs to retire products using your internal reference.\n\n##### B: Upload a product catalog using .csv or .xslx file\n\nFirst, download the template through the following link: [https://asset.cloudinary.com/dkcrk6eho/4e4e77107d0df8e8c042a4183cfbae41](https://asset.cloudinary.com/dkcrk6eho/4e4e77107d0df8e8c042a4183cfbae41)\n\nThe .xslx file contains 5 tabs :\n\n1. Company information : this is the information about your company that we need in order to  \n    create your company as a supplier\n2. Fields: This describes the product information that our system expects.\n3. Example: This gives an example about how the Articles tab should be filled in\n4. Articles: The action product data should be filled in here\n5. Yucopia categories: Every product of the Articles tab should be in one of the Yucopia  \n    categories in order to be offered on Yucopia. If you cannot find a relevant Yucopia category,  \n    contact [support@yucopia.com](https://mailto:support@yucopia.com) to request new categories.\n    \n\nWhen the .xlsx file is fully filled in with all product that should be offered on Yucopia. The file can be  \nsent to [leveranciers@yucopia.com](https://mailto:leveranciers@yucopia.com). Our system will then process this file and offer the products on  \nthe platform.\n\nTo upload a catalog for a specific customer, give the file the VAT number of that company as a name.  \nF.ex. BE0123456789.xslx\n\n**Multiple languages**\n\nIt is possible to provide the product title and description in multiple language. Yucopia supports  \nDutch, French and English at the moment.\n\n#### Update product offer via excel/csv\n\nUpdating your catalogs can be done using the exact same method as described above. It is  \nimportant, however, to use the full catalog with the updated data.\n\nWhen sending an updated catalog, our system will:\n\n- Add all products that were not previously present in the catalog\n- Update the products that have been altered\n- Set the products inactive that are no longer present in your catalog\n    \n\nThis means that, whenever you try to update your products, it is important to send the full catalog  \nwith the updated data. All products that are not present in the csv/xslx file, will no longer be  \navailable on Yucopia.\n\n#### Stock\n\nIn order to make sure that products are only ordered when they are in stock, you can keep track of your stock in Yucopia. We provide an API endpoint which can be used to let us know how much stock you have for a certain product (or list of products).","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"18799737","collectionId":"d902a3d1-a6f9-4eb2-8ec8-6c21b08bc330","publishedId":"2s84DkV5ps","public":true,"publicUrl":"https://supplier.yucopia.com","privateUrl":"https://go.postman.co/documentation/18799737-d902a3d1-a6f9-4eb2-8ec8-6c21b08bc330","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2024-05-23T08:45:13.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/5be4a4a03b2fd5ddf8689c58b5e8edbe59f38727497aa1aa1034197d80930387","favicon":"https://yucopia.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://supplier.yucopia.com/view/metadata/2s84DkV5ps"}