{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"12fc214d-1e2c-42ad-858a-6dbb7c966f3d","name":"Yuki API Webservices Documentation","description":"# Get started with the Yuki API webservices!\n\nOur API webservices make it possible for applications/services of external parties to exchange information with Yuki, for those domains where you have access to.  \nThe webservices can create customers, sales invoices, general journals or send documents. On the other hand accounting info can be retrieved through the webservices.\n\nIn the explanation of the Webservice you will often see we mention 'a bundle'. Bundles are the packages that our entrepreneurs subscribe to according to the functionalities their company need. Some functionality of the webservices is only available in specific bundles. More info about our packages you can find on our [website](https://yuki.be/pricing/ondernemer/).\n\nAt this moment we have thirteen webservices available. Each webservice contains one or more methods to exchange information. Following webservices are available:\n\n- **Accounting webservice**  \n    This web service offers the possibility to collect financial reports as well as create general journal entries. You will also be able to ask which clients or suppliers have outstanding invoices.  \n    Webaddress: [https://api.yukiworks.be/ws/Accounting.asmx](https://api.yukiworks.be/ws/Accounting.asmx)\n    \n- **AccountingInfo webservice**  \n    This web service offers the possibility to collect information about ledger accounts and transactions.  \n    Webaddress: [https://api.yukiworks.be/ws/AccountingInfo.asmx](https://api.yukiworks.be/ws/AccountingInfo.asmx)\n    \n- **Sales webservice**  \n    This web service enables you to create sales invoices in Yuki based on the submitted XML message.  \n    Webaddress: [https://api.yukiworks.be/ws/Sales.asmx](https://api.yukiworks.be/ws/Sales.asmx)\n    \n- **Upload webservice**  \n    This webservice will no longer be supported. You can continue using this functionality, but no changes will be done anymore for this webservice. As we will deprecate this webservice at some point in the future, we strongly advice to change to the UploadDocumentWithAttachment in the Archive webservice.\n    \n- **Pettycash webservice**  \n    With this webservice you can import cash reports. You can import a single cash statement line or a cash statement in Yuki csv format.  \n    Webaddress: [https://api.yukiworks.be/ws/Pettycash.asmx](https://api.yukiworks.be/ws/Pettycash.asmx)\n    \n- **Archive webservice**  \n    This web service enables you to look up documents within a Yuki domain by means of various search criteria.  \n    The Archive web service in combination with an Accountant web service key requires that the domain you want to exchange data with is firstly connected to the session with the SetCurrentDomain call.  \n    Webaddress: [https://api.yukiworks.be/ws/Archive.asmx](https://api.yukiworks.be/ws/Archive.asmx)\n    \n- **Contact webservice**  \n    This web service enables you to look up contacts within a Yuki domain by means of various search criteria. It is also possible to create new contacts and update existing contacts.  \n    Webaddress: [https://api.yukiworks.be/ws/Contact.asmx](https://api.yukiworks.be/ws/Contact.asmx)\n    \n- **Project Webservice**  \n    This web service allows you to create niew projects and modify existing projects (only available in a Medium bundle or higher)  \n    Webaddress: [https://api.yukiworks.be/ws/Projects.asmx](https://api.yukiworks.be/ws/Projects.asmx)\n    \n- **Backoffice Webservice**  \n    This web service allows you to get specific information from a domain. You can see which documents still needs to be processed by the accountant, outstanding questions from the entrepreneur or check and update the backoffice roles for a domain.  \n    Webaddress: [https://api.yukiworks.be/ws/Backoffice.asmx](https://api.yukiworks.be/ws/Backoffice.asmxIntegration)\n    \n- **Integration Webservice**  \n    This web service allows you to get company details. You will receive the logos, address and VAT/CoC numbers of the company, the emailaddress and bankaccount number of the contact person.  \n    Webaddress: [https://api.yukiworks.be/ws/Integration.asmx](https://api.yukiworks.be/ws/Integration.asmx)\n    \n- **VAT Webservice**  \n    This webservice allows you to retrieve the active Tax codes as well as the Vat Returns of an administration in Yuki.  \n    Webadress: [https://api.yukiworks.be/ws/Vat.asmx](https://api.yukiworks.be/ws/Vat.asmx)\n    \n- **Fiscal Table Webservice**  \n    This webservice allows you to retrieve the gross amount, total professional costs, total social contributions and total revenue in a specific year of a company  \n    Webadress: [https://api.yukiworks.be/ws/FiscalTable.asmx](https://api.yukiworks.be/ws/Vat.asmx)\n    \n\nSince April 1th 2019, Yuki has improved her SOAP-webservice security for your safety. Our connections will only accept connections with security **TLS 1.2 and higher.** This shouldn't have any impact on most connection implementations (applications who are already connected with Yuki to send data to Yuki or export data from Yuki).\n\nAll our webservices are available for Yuki Belgium and Yuki Netherlands. You can use the same URL for the two countries or modify the country to .be or .nl. Keep in mind to use the VAT codes and GLaccounts of the respective country.\n\n# How to set up a new connection\n\n## SOAP API connection\n\n**Requirements for this sample project are:**\n\n- .Net Framework 3.0 or higher\n    \n- Visual Studio 2013 or higher\n    \n- A valid API key\n    \n\nTo get a detailed overview of a SOAP compliant webservice, you can simply open the endpoint in a web browser.\n\nFor example, [https://api.yukiworks.be/ws/Archive.asmx](https://api.yukiworks.be/ws/Archive.asmx)\n\nThere are multiple ways to connect with this API, but we will focus on the most accessible way for developers and technical profiles.\n\n1\\. Open Visual Studio and create a new project\n\n2\\. Select \"Console App (.NET Framework)\"\n\n3\\. Once the project is created, right click \"References\" and select \"Add Service Reference..\"\n\n4\\. In the \"Add Service Reference\" screen, fill in the endpoint URL you would like to use and select \"Go\"\n\n- In this example, we use [https://api.yukiworks.be/ws/Archive.asmx](https://api.yukiworks.be/ws/Archive.asmx)\n    \n- Once the endpoint is found, select \"OK\".\n    \n\n5\\. Open the file _App.config_ and verify which _bindingConfiguration_ values have been added.\n\n- In this example, both **ArchiveSoap** (SOAP standard 1.1) and **ArchiveSoap12** (SOAP standard 1.2) are valid configuration names.\n    \n\n6\\. Open the file Program.cs and include the following namespace:\n\n```\nusing ConsoleApp1.ServiceReference1; // this is projectname.chosennamespace\n\n ```\n\nInsert the following code in Main:\n\n```\nvar client = new ArchiveSoapClient(\"ArchiveSoap\");            // this is a binding config\nvar sessionID = client.Authenticate(\"xxx-xxx-xxx-xxx-xxx\");   // insert API key here\nvar response = client.GetCurrentDomain(sessionID);            // example call to the API\n\n ```\n\nCongratulations, you now have a working example to connect to [https://api.yukiworks.be/ws/Archive.asmx](https://api.yukiworks.be/ws/Archive.asmx)!  \nThe same approach can be used to target any SOAP compliant webservice provided by Yuki.\n\n## Authentication by API key (AccessKey)\n\nThe AccessKey will be used to give the webservice access on administration, domain or portal level. Add the AccessKey in the Authenticate call to retrieve a session ID. Each session ID is valid for 24h or until you close the connection. Therefore it is not necessary to make an authenticate call each time you make an import/export call , as you can reuse the session ID.\n\n**Administration level**\n\nAuthentication on administration level requires an administration API key and an administration ID. Those need to be created in the domain by the end user with management or backoffice role or by the accountant. For your development test domain, Yuki support will provide you with the credentials. To advice your customers where to find those access keys, you can redirect them to the following page:\n\n<a href=\"https://support.yuki.be/en/support/solutions/articles/80000787687-how-to-make-a-connection-\">'how to make a connection'</a>\n\n**Domain level**\n\nIn some cases you will need a domain API key, which also needs to be created by the end user with management or backoffice role or by the accountant. With the session ID you receive with the Authenticate call, you can retrieve the domain ID with the Domains call.\n\n**Portal level**\n\nThird option is to connect with a portal API key. The portal belongs to the accountant, therefore only an accountant can create this API key. It can be used to retrieve data of all domains/administrations that are part of this portal. You can find [here](https://support.yuki.be/en/support/solutions/articles/80000787839-setting-up-web-services-in-the-portal) info to create a portal API key.\n\n<h1>Error Codes</h1>\n\n<p>Sometimes you will receive errors because of a wrong setting in Yuki or wrong date in the API call. Here you can find some of the most common errors. If you receive an error which is not clear and you cannot find the solution below you can contact &nbsp;<a href=\"mailto:integrations@yuki.be\">integrations@yuki.be</a>&nbsp; for help.</p>\n\n- **error: API-key has no rights to access this web serviceMethod:** Any method**problem**: The API key doesn't have access to all the webservice**Solution**: Ask the entrepreneur to check if the selected the option \"All webservices\" when creating the API key.\n    \n\n- **error: Daily limit exceededMethod**: Any method**problem**: Every domain has 1000 free webservice calls a day. Today all 1000 calls has already been used. This contains all webservice calls made by different software providers that are connected to the domain.**Solution**: Wait until next day to continue with your webservice calls OR ask the accountant to buy extra calls by activating Yuki Webservice in the accountancy features to upgrade the webservice calls to 5000 or 10000 calls a day.\n    \n\n- **error: Domain \\[domainname\\] has no active databaseMethod**: Any method**problem**: The database cannot be reached because the domain has been archived**Solution**: Ask the accountant if there is a new domain created with the same name which is active. The accountant can contact Yuki support to investigate which domain is deactivated.\n    \n\n- **error: The domain is not licensed for this functionalityMethod**: ProcessSalesInvoices  \n    **problem**: You will receive this error in the Sales Webservice when the domain in Yuki doesn't have the Yuki Invoicing functionality activated**Solution**: Let the entrepreneur know he will need to upgrade his bundle to a small bundle or activate Yuki Sales Webservice in the accountancy features.\n    \n\n- **error: The domain is not licensed for this functionalityMethod**: UpdateProject**problem**: You will receive this error in the the Project  \n    Webservice when the domain in Yuki doesn't have the Projects functionality activated**Solution**: Let the entrepreneur know he will need to upgrade his bundle to a medium bundle.\n    \n\n- **error: SalesPrice' element is invalid - The value '-68.1525' is invalid according to its datatype 'Decimal' - The TotalDigits constraint failed.Method**: ProcessSalesInvoices**problem**: There are too many decimals. Yuki will only accept amounts with maximum 2 decimals.**Solution**: Make sure you send amounts with only 2 decimals.\n    \n- **error: Onbekende kas 570004: Kas Highpro / Unknown petty cash 570004: Kas Highpro**  \n    **Method:** Pettycash - ImportStatement  \n    **problem**: The pettycash account 570004 does not exist in the domain  \n    **Solution**: Ask the accountant to create the specific pettycash account or use another pettycash account\n    \n\n<h1>Rate limit</h1>\n\n<p>The webservice has a daily limit of 1000 calls a day for each domain. This is free of charge.</p>\n\n<p>If 1000 calls are not sufficient the accountant can purchase extra webservice calls through 'Accounting Features' .</p>\n\n- Yuki Webservice: up to 5000 calls/domain for 10€/month\n    \n- Yuki Webservice extended: up to 10.000 calls/domain for 100€/month\n    \n\n<h1>Contact Yuki</h1>\n\n<p>Do you have any questions? Or do you want to request a test environment? Don't hesitate to reach out to us at &nbsp;<a href=\"mailto:integrations@yuki.be\">integrations@yuki.be</a>. Also when you finished building a connexion between your application and Yuki, let us know! We would love to hear about it and give you some visibility on &nbsp;<a href=\"https://yuki.be/integraties/ondernemer/\">our website</a>.</p>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"12207912","team":3049439,"collectionId":"12fc214d-1e2c-42ad-858a-6dbb7c966f3d","publishedId":"UVCBB51L","public":true,"publicUrl":"https://documenter-api.postman.tech/view/12207912/UVCBB51L","privateUrl":"https://go.postman.co/documentation/12207912-12fc214d-1e2c-42ad-858a-6dbb7c966f3d","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":"2025-05-16T13:00:22.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/2fa09c6776bf71d8deb94b8c5792130230a18c6cb490ff9ea1cbdc85dc352129","favicon":""},"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://documenter.gw.postman.com/view/metadata/UVCBB51L"}