CFL Import Purchase Invoice API
APIPublisher = 'christiaens';
APIGroup = 'bocountdynamics';
APIVersion = 'v2.0';
EntityName = 'importpurchaseinvoice';
EntitySetName = 'importpurchaseinvoices';
GET
Method: GET
https://server address:server API port/server instance name/api/Christiaens/BoCountDynamics/v2.0/companies(companyid)/importpurchaseinvoices(id)
entity:
{
"@odata.etag": "W/\"JzIwOzEwOTkwMjQ5MDk3MDgyMTU3NjI0MTswMDsn\"",
"id": "5cf71a5d-732f-ed11-97e8-000d3a4588cf",
"entryNo": 6,
"contentstring": "",
"documentType": "Invoice",
"no": "IF/22/00002",
"vendorNo": "10000",
"name": "Fabrikam, Inc.",
"vendorInvCrMemoNo": "TEST1",
"postingDescription": "test posting description",
"standardFormatMessage": "123456789",
"journalTemplateName": "INKOOP",
"postingDate": "2022-09-07",
"documentDate": "2022-09-07",
"dueDate": "2022-10-07",
"paymentDiscountPct": 0,
"pmtDiscountDate": "0001-01-01",
"vatBaseDiscountPct": 0,
"currencyCode": "",
"currencyFactor": 0,
"vatBusPostingGroup": "BINNENLAND",
"docAmountInclVAT": 1210,
"docAmountVAT": 210,
"shortcutDimension1Code": "",
"shortcutDimension2Code": "",
"eloID": "",
"cflArea": "",
"transactionSpecification": "",
"transactionType": "",
"transportMethod": "",
"docImage": "",
"docNotes": "",
"createdDocType": 0,
"createdDocSubtype": 0,
"createdDocNo": "",
"errorMessage": "Geen geldige OGM."
}
DELETE
Method: DELETE
https://server address:server API port/server instance name/api/Christiaens/BoCountDynamics/v2.0/companies(companyid)/importpurchaseinvoices(id)
UPDATE
method: PATCH
https://server address:server API port/server instance name/api/Christiaens/BoCountDynamics/v2.0/companies(companyid)/importpurchaseinvoices(dcaa72ee-a42e-ed11-97e8-000d3a254c9a)
Headers:
"If-Match" :W/"JzIwOzEyMjQ2ODA5MTk5NDM2ODMzMjk5MTswMDsn""
Body:
{
"name": "TEST-aanpassing"
}
CREATE
Gebruik deze API om een verkoopfactuur of creditnota te importeren.
Dit kan adhv. een e-fff xml:
method : POST
Url: https://server address:server API port/server instance name/api/Christiaens/BoCountDynamics/v2.0/companies(companyid)/importpurchaseinvoices
body;
{
"contentstring": "base64string"
}
NOTE
Het veld contentstring moet een base64-string bevatten van het xml-bestand van de factuur/creditnota. Indien het veld contentstring gevuld is dan mogen de andere velden niet ingevuld worden. Indien het veld contentstring niet gevuld is dan moeten de andere velden ingevuld worden.
Of adhv. invullen van de velden:
Url: https://server address:server API port/server instance name/api/Christiaens/BoCountDynamics/v2.0/companies(companyid)/importpurchaseinvoices
body;
{
"documentType": "Invoice",
"no": "201907049",
"customerNo": "1417",
"name": "",
"postingDescription": "",
"standardFormatMessage": "141790704943",
"journalTemplateName": "VERKOOP",
"postingDate": "2019-06-14",
"documentDate": "2019-06-14",
"dueDate": "2019-06-14",
"paymentDiscountPct": 0,
"pmtDiscountDate": "0001-01-01",
"vatBaseDiscountPct": 0,
"currencyCode": "",
"currencyFactor": 0,
"vatBusPostingGroup": "",
"invoiceDiscountAmount": 0,
"docAmountInclVAT": 119.49,
"docAmountVAT": 20.74,
"shortcutDimension1Code": "",
"shortcutDimension2Code": "",
"eloID": "",
"cflArea": "",
"transactionSpecification": "",
"transactionType": "",
"transportMethod": "",
"docImage":"",
"docNotes":""
}
Het is ook mogelijk om zowel header als lines in 1 post toe te voegen: body;
{
"documentType": "Invoice",
"no": "201907049",
"customerNo": "1417",
"name": "",
"postingDescription": "",
"standardFormatMessage": "141790704943",
"journalTemplateName": "VERKOOP",
"postingDate": "2019-06-14",
"documentDate": "2019-06-14",
"dueDate": "2019-06-14",
"paymentDiscountPct": 0,
"pmtDiscountDate": "0001-01-01",
"vatBaseDiscountPct": 0,
"currencyCode": "",
"currencyFactor": 0,
"vatBusPostingGroup": "",
"invoiceDiscountAmount": 0,
"docAmountInclVAT": 119.49,
"docAmountVAT": 20.74,
"shortcutDimension1Code": "",
"shortcutDimension2Code": "",
"eloID": "",
"cflArea": "",
"transactionSpecification": "",
"transactionType": "",
"transportMethod": "",
"docImage":"",
"docNotes":"",
"importPurchaseInvoiceLines": [
{
"accountNo": "600000",
"description":"Test regel 1",
"quantity":1,
"vatBusPostingGroup":"BINNENLAND",
"vatProdPostingGroup":"G3",
"directUnitCost":500
},
{
"type": "G/L Account",
"no":"600000",
"description":"Test regel 1",
"quantity":1,
"vatBusPostingGroup":"BINNENLAND",
"vatProdPostingGroup":"G3",
"directUnitCost":500
}
]
}
NOTE
Het veld docImage moet een base64-string bevatten van het pdf-bestand van de factuur/creditnota.
NOTE
Het veld accountNo is obsoloted. Het is vervangen door de velden type en no. Momenteel kan het nog doorgegeven worden. Dit wordt dan automatisch omgezet naar type en no.
Bound Actions
Post
de API bevat een bound action genaamd post die de corresponderende import-fatuur/creditnota gaat boeken:
POST https://server address:server API port/server instance name/api/Christiaens/BoCountDynamics/v2.0/companies(companyid)/importpurchaseinvoices({id})/Microsoft.NAV.post
Het antwoord bevat geen inhoud, de code is 204.
Adhv. de velden createdDocType, createdDocSubType, createdDocNo en errorMessage kan nagegaan worden of dit succesvol was of niet.
Bij correcte boeking zijn de velden createdDocType, createdDocSubType, createdDocNo ingevuld en het veld "errorMessage* leeg.
Indien een fout is opgetreden tijdes boeken dan zijn de velden createdDocType, createdDocSubType, createdDocNo leeg en is het veld errorMessage ingevuld met de foutmelding.
Register
de API bevat een bound action genaamd post die de corresponderende import-fatuur/creditnota gaat registreren (omzetten in een niet geboekte factuur/creditnota):
POST https://server address:server API port/server instance name/api/Christiaens/BoCountDynamics/v2.0/companies(companyid)/importpurchaseinvoices({id})/Microsoft.NAV.register
Het antwoord bevat geen inhoud, de code is 204.
Adhv. de velden createdDocType, createdDocSubType, createdDocNo en errorMessage kan nagegaan worden of dit succesvol was of niet.
Bij correcte registratie zijn de velden createdDocType, createdDocSubType, createdDocNo ingevuld en het veld "errorMessage* leeg.
Indien een fout is opgetreden tijdes registreren dan zijn de velden createdDocType, createdDocSubType, createdDocNo leeg en is het veld errorMessage ingevuld met de foutmelding.
Reopen
de API bevat een bound action genaamd reopen die de corresponderende niet geboekte fatuur/creditnota gaat verwijderen en het import document terug gaat openen.:
POST https://server address:server API port/server instance name/api/Christiaens/BoCountDynamics/v2.0/companies(companyid)/importpurchaseinvoices({id})/Microsoft.NAV.reopen
Het antwoord bevat geen inhoud, de code is 204.
postpreview
de API bevat een bound action genaamd postpreview die de corresponderende een voorbeeld van boeking zal uitvoeren voor het aangemaakt document.:
POST https://server address:server API port/server instance name/api/Christiaens/BoCountDynamics/v2.0/companies(companyid)/importpurchaseinvoices({id})/Microsoft.NAV.postpreview
Het antwoord bevat geen inhoud, de code is 204.
Adhv. het veld errorMessage kan achteraf nagegaan worden of dit succesvol was of niet.
Bij correct voorbeeld van boeking is het veld errorMessage leeg.
Indien een fout is opgetreden tijdens registreren dan is het veld errorMessage ingevuld met de foutmelding.
CFL Import Sales Invoice Line API
PIPublisher = 'christiaens';
APIGroup = 'bocountdynamics';
APIVersion = 'v2.0';
EntityName = 'importSalesInvoiceLine';
EntitySetName = 'importSalesInvoiceLines';
GET
Method: GET
https://server address:server API port/server instance name/api/Christiaens/BoCountDynamics/v2.0/companies(companyid)/importPurchaseinvoiceLines(id)
entity:
{
"@odata.etag": "W/\"JzE5OzcwNzE5MDcwMDI2Njc1Njg3OTMxOzAwOyc=\"",
"id": "ce970cac-f433-ed11-97e8-000d3a44bbc6",
"entryNo": 11,
"headerEntryNo": 0,
"lineNo": 10000,
"accountNo": "600000",
"type": "G/L Account",
"no":"600000",
"vatBusPostingGroup": "BINNENLAND",
"vatProdPostingGroup": "M3",
"description": "Test regel 1",
"description2": "",
"quantity": 1,
"directUnitCost": 500,
"lineDiscountAmount": 0,
"nonDeductibleVATPct": 0,
"numberPlate": "",
"deferralCode": "",
"tariffNo": "",
"netWeight": 0,
"shortcutDimension1Code": "",
"shortcutDimension2Code": "",
"shortcutDimension3Code": "",
"shortcutDimension4Code": "",
"shortcutDimension5Code": "",
"shortcutDimension6Code": "",
"shortcutDimension7Code": "",
"shortcutDimension8Code": "",
"allowPaymentDiscount":"true"
}
NOTE
Het veld accountNo is obsoloted. Het is vervangen door de velden type en no. Momenteel kan het nog doorgegeven worden. Dit wordt dan automatisch omgezet naar type en no.
NOTE
Bedragen zijn altijd positief. Het documenttype duidt aan of dit een factuur of creditnota is.
DELETE
Method: DELETE
https://server address:server API port/server instance name/api/Christiaens/BoCountDynamics/v2.0/companies(companyid)/importPurchaseinvoiceLines(481f0a70-ac2e-ed11-97e8-000d3a254c9)
UPDATE
method: PATCH
https://server address:server API port/server instance name/api/Christiaens/BoCountDynamics/v2.0/companies(companyid)/importPurchaseinvoiceLines(481f0a70-ac2e-ed11-97e8-000d3a254c9)
Headers:
"If-Match" : W/"JzE5OzQyNDg0MDU5Nzk4NDQ2NjQ1MzQxOzAwOyc="
Body:
{
"description": "TEST-aanpassing"
}
POST
Method: POST
https://server address:server API port/server instance name/api/Christiaens/BoCountDynamics/v2.0/companies(companyid)/importPurchaseinvoiceLines
body;
{
"headerEntryNo":"20",
"type": "G/L Account",
"no":"600000",
"vatBusPostingGroup":"BINNENLAND",
"vatProdPostingGroup":"G3",
"description":"Test regel 1",
"quantity":1,
"directUnitCost":500
}