CFL Import Purchase Invoice API

  • 4 minutes to read

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
}