Short Description
The objective of accounting integration is to automate the creation and flow of transactions between the Dataloy VMS and an accounting system. The advantage is, for example, reduced risk of errors as several transactions handled by the Dataloy VMS system generates transactions to be entered in a client accounting system. An integration also allows for synchronizing the basic data entities (or Master Data, i.e. several of the same being stored and maintained in both systems) between systems. Some Master Data, for example Business Partners, must be synchronized for the integration to work.
Chapter:
Table of Contents | ||||||||
---|---|---|---|---|---|---|---|---|
|
Long Description
...
Sales and purchase invoices are transferred whenever an invoice/invoices is/are posted in the VMS.
Bunker transactions are transferred whenever a bunker transaction is posted in the VMS.
Vessel/Voyage information is sometimes required by Accounting before invoices and/or bunker transactions are transferred. A scheduled task for transferring this type of information to Accounting can be set up (contact Dataloy for contact Dataloy for more information).
Accruals will be transferred by users when performing period-end-closing (more information: Accruals page and the Period-End-Closing process).
Transactions from Accounting to Dataloy VMS:
Receipts and payments being transferred from Accounting to Dataloy VMS. The transaction to collect and payments and send to the VMS is either triggered by Accounting or by a scheduled task (set up by Dataloy Systems).
Exchange rates will be transferred from Accounting to Dataloy VMS. This transaction is either triggered by Accounting or by a scheduled task (set up by Dataloy Systems) to collect and retrieve the rates.
Actuals is part of the Period-End-Closing process and is usually transferred from Accounting to Dataloy VMS.
Anchor | ||||
---|---|---|---|---|
|
Prerequisites
Certain integrations need to be in place before the set-up and testing of an invoice integration:
- Transfer of voyage related data to the accounting system.
- Synchronization of business partners between Dataloy VMS and the accounting system.
- Exchange rate transfer to Dataloy VMS.
- Map accounts between Dataloy VMS and the accounting system.
...
Code Block | ||
---|---|---|
| ||
GET /Document?filter=invoicingStatus.statusTypeCode(EQ)RFP&filter=documentType.documentType(IN)(INI,INO,CRI,CRO) |
More information: /DocumentType, /Document.
Payment Terms
There will be only one Document object in the API despite two payment terms for an invoice (for example 95/5 percent). However, the Document will have two documentPaymentTerms objects in the Document.documentPaymentTerms list.
...
Test data for invoicing integration can be generated in the Dataloy VMS post fixture modules (Accounts Receivable, Accounts Payable and Hire Payable).
Post Transaction
When an invoice is successfully transferred to an accounting system, the document status must be updated to Posted in Dataloy VMS. This is done in a PUT request:
Code Block | ||
---|---|---|
| ||
PUT request on /Document/{key} { "invoicingStatus": "POS" } |
Anchor | ||||
---|---|---|---|---|
|
Voyages
Prerequisites
No prerequisites.
...
Modify some existing voyages in the Booking and Operations module for testing, for example, changing a date in the schedule (note: changing dates will also affect the schedule for other voyages).Data Transactionthe schedule (note: changing dates will also affect the schedule for other voyages).
Data Transaction
To get new voyages in Webhooks the following subscription can be created:
Code Block | ||
---|---|---|
| ||
{
"eventType": "U",
"user":
"objectType": "VoyageHeader",
"expression": "(oldDlpObject.getVoyageStatus() != null && oldDlpObject.getVoyageStatus().getStatusTypeCode().equals(\"EST\") && dlpObject.getVoyageStatus() != null && dlpObject.getVoyageStatus().getStatusTypeCode().equals(\"NOM\")) || (oldDlpObject.getReferenceNo() == null && dlpObject.getReferenceNo() != null && dlpObject.getVoyageStatus() != null && dlpObject.getVoyageStatus().getStatusTypeCode().equals(\"NOM\"))",
"url":
} |
To get updated for all changes on a voyage the following webhook subscription can be created:
Code Block | ||
---|---|---|
| ||
{
"eventType": "U",
"user":
"objectType": "VoyageHeader",
"url":
} |
To extract all fixed voyages from Dataloy VMS that has been modified since a given date, use request below in conjunction with the base URL:
Code Block | ||
---|---|---|
| ||
GET /VoyageHeader?filter=modifiedDate(GTE)2014-01-01T12:30:00 |
Post Transaction
No post transaction is required.
Anchor | ||||
---|---|---|---|---|
|
Business Partners
Prerequisites
Synchronization of business partners between Dataloy VMS and the applicable accounting system is required before transferring accounting related transactions. To synchronize business partner updates between systems, decide which system is to be the Master System (where the business partners will be updated). The Master System will then send updated business partner data to the other system.
...
Check if relevant business partner/s is/are already existing in Dataloy VMS by using the following request in conjunction with the base URL:
Code Block title Get business partner by key GET /BusinessPartner?filter=businessPartnerCode(EQ)99999
- If the business partner is
- already entered in Dataloy VMS. For versions prior to API 3.0:
Update Business Partner:
Code Block title Update Business Partner PUT /BusinessPartner/{BusinessPartner key} { "businessPartnerName": "Updated Test Name" }
Update Address:
Code Block title Update Address PUT /Address/{Address key} { "address1": "Updated address" }
Update Bank:
Code Block title Update Bank PUT /Bank/{Bank key} { "swiftAddress": "Updated Swift address" }
Update Bank Account:
Code Block title Update Bank Account PUT /BankAccount/{Bank account key} { "bankAccountNo": "UpdatedNumber" }
Update Contact Information:
Code Block title Update Contact Info PUT /ContactInfo/{ContactInfo key} { "email": "updated@emailaddress.com" }
Link an existing Bank Account to the Business Partner (new in API version 2.0.0).
Code Block POST /BusinessPartner/{business partner key}/BankAccount/{bank account key}/link
Unlink an existing Bank Account to a Business Partner (new in API version 2.0.0).
Code Block POST /BusinessPartner/{business partner key}/BankAccount/{bank account key}/unlink
already entered in Dataloy VMS. For versions from API 3.0:
PUT the BusinessPartner object:
Code Block put /BusinessPartner { "key":1111111, "businessPartnerName": "Test Name", "businessPartnerCode": "123456789", "businessPartnerSort": "TESTNAME", "companyRegistrationNo": "123456789", "businessPartnerType": "C", "bankAccounts":[ { "key":222222, "iban":"9754", "bankAccountNo":"6523", "bank": 1033615, "currency": 400132 } ], "addresses": [ { "key":333333, "country": "NL", "address1": "Street Name 54", "address2": "5th floor", "address3": "", "city": "Amsterdam", "postalCode": "1000 AA" } ], "contactInfo": [ { "key":444444, "email": "test@test.com", "faxNo": "55555555", "mobileNo": "66666666", "phoneNo": "77777777", "telexNo": "88888888" } ] }
- not entered in Dataloy VMS:
POST the new business partner. Note: Required fields: businessPartnerName, businessPartnerCode, businessPartnerSort. Find an overview of business partner types here: /BusinessPartnerType
Code Block title Insert a new business partner POST /BusinessPartner { "businessPartnerName": "Test Name", "businessPartnerCode": "123456789", "businessPartnerSort": "TESTNAME", "companyRegistrationNo": "123456789", "businessPartnerType": "C", "bankAccounts":[ { "iban":"9754", "bankAccountNo":"6523", "bank": { "bankName":"BP bank", "abaNumber":"1111", "chip":"2222", "swiftAddress":"42341" }, "currency": 400132 } ], "addresses": [ { "country": "NL", "address1": "Street Name 54", "address2": "5th floor", "address3": "", "city": "Amsterdam", "postalCode": "1000 AA" } ], "contactInfo": [ { "email": "test@test.com", "faxNo": "55555555", "mobileNo": "66666666", "phoneNo": "77777777", "telexNo": "88888888" } ] }
More Info: /BusinessPartner, /BusinessPartnerType, /Address, /ContactInfo, /BankAccount, /Bank
- already entered in Dataloy VMS. For versions prior to API 3.0:
Test Data
Create test data for transferring business partners from Dataloy VMS by updating Business updating Business Partners in Master in Master Data.
Post Transaction
No post transaction is required.
Anchor | ||||
---|---|---|---|---|
|
Exchange Rates
Prerequisites
- An exchange rate source for extracting data to be inserted in Dataloy VMS.
Base Currency must be set.
Note: Locate Base Currency by getting ws/rest/System/1000000, then following relevant country link (Country Currency = the Base Currency).
...
No post transaction is required.
Anchor | ||||
---|---|---|---|---|
|
Prerequisites
Before setting up and testing a bunker transaction integration other integrations need to be in place.
...
More information: /DocumentType, /Document.
Post Transaction
When an invoice is successfully transferred to the accounting system, the document status has to be updated to Posted in Dataloy VMS. This is done in a PUT request:
Code Block | ||
---|---|---|
| ||
PUT /Document/{key} { "invoicingStatus": "POS" } |
Payments/Receipts
Prerequisites
Before setting up and testing an invoice integration other integrations need to be in place.
- Transfer of voyage related data to the accounting system.
- Synchronization of business partners between Dataloy VMS and the accounting system.
- Exchange rate transfer to Dataloy VMS.
- Invoice integration
Integration Set-Up
...
- A payment record should ONLY ever have one document line. Never more.
More information: /DocumentType, /Document.
Amount Prefix
This matrix is showing which prefix the payment amount should have for the various cases.
...
Code Block | ||
---|---|---|
| ||
POST /Document { "documentAmount": 10000.00, "companyCurrencyAmount": 10000.00, "sourceCurrencyAmount": 10000.00, "documentCurrency": "USD", "documentDate": "2014-01-01T00:00:00", "documentType": "PMO", "documentNo": "111111199", "externalDocumentNo": "50300", "company": "01", "businessPartner": "60526", "invoicingStatus": "POS", "documentText": "text here", "documentLines": [ { "documentAmount": 10000.00, "companyCurrencyAmount": 10000.00, "sourceCurrencyAmount": 10000.00, "documentCurrency": "USD", "invoicingStatus": "POS", "documentLineText": "text here", "businessPartner": "BPCODE", "isAccountsPayable": true, "refDocument": "71800125" } ] } |
More information: /DocumentType, /Document.
Note |
---|
documentNo can be skipped. The payment will then get the new document key as documentNo. If skipping then remove documentNo from JSON, do not set the value empty. |
...
Create an invoice in Dataloy VMS and transfer it to the accounting system. Create a payment in the accounting system and transfer it to Dataloy VMS.
Post transaction
No post transaction is required.
Anchor | ||||
---|---|---|---|---|
|
Prerequisites
Invoice Integration need to be in place before setting up and testing actuals integration.
...
Transfer of actuals (or physicals) from Accounting to Dataloy VMS can either be setup as a manual task through the Period-End-Closing Process or as a scheduled task. Actuals in accounting are actual costs and revenues, and once entered into Dataloy VMS, the actual record will appear in the Posted section of the Accruals module. Bunker Only profit/loss accounts should be transferred as actuals to Dataloy. Bunker transactions in Accounting that has been transferred from Dataloy VMS are not to be transferred, as they are already treated as actuals in Dataloy VMS (more information: actuals and accruals page and the Period-End-Closing process.
Data Transaction
...
Code Block | ||
---|---|---|
| ||
POST /Document { "documentAmount": 10000.00, "companyCurrencyAmount": 10000.00, "sourceCurrencyAmount": 10000.00, "documentDate": "2014-01-01T00:00:00", "documentType": "ACC", "documentNo": "111111187", "company": "01", "invoicingStatus": "POS", "documentCurrency": "USD", "documentText": "text here", "glAccount": "1000", "documentLines": [ { "documentAmount": 10000.00, "companyCurrencyAmount": 10000.00, "sourceCurrencyAmount": 10000.00, "documentCurrency": "USD", "exchangeRate": 1, "invoicingStatus": "POS", "documentLineText": "text here", "voyage": "VOY100", "glAccount": "1000" } ] } |
More information: /DocumentType, /Document.
Post Transaction
No post transaction is required.
Accruals
Prerequisites
Before setting up and testing an invoice integration other integrations need to be in place:
...
Code Block | ||
---|---|---|
| ||
GET /Document?filter=invoicingStatus.statusTypeCode(EQ)RFP&filter=documentType.documentType(IN)ACP,ACR |
More information: /DocumentType, /Document.
Test Data
Test data for accruals integration can be generated in the Accruals module in Dataloy VMS. Generate and batch post the accruals.
Post Transaction
When an accrual is successfully transferred to an accounting system, the accrual status must to be updated to Posted in Dataloy VMS. This is done in a PUT request:
...
Additional Information
Anchor | ||||
---|---|---|---|---|
|
...
Field Name | Description | Not possible to user in filters |
---|---|---|
documentAmount |
| |
companyCurrencyAmount | For all /DocumentTypesDocumentType : Amount in Company Currency for the Document.Company. | |
sourceCurrencyAmount |
| |
documentCurrency.currencyCode | Currency Code for documentAmount. More information, see documentAmount | |
sourceCurrencyCode | Currency code for sourceCurrencyAmount. More information see sourceCurrencyAmount | |
exchangeRate | Exchange Rate between documentAmount and sourceCurrencyAmount | |
exchangeRateDate | Exchange Rate Date | |
glAccount | General Ledger Account | X |
quantity | Has Different Meaning Depending on Document Type:
| |
unitPrice | Unit Price. Quantity * Unit Price = Document Amount | |
invoicingStatus.statusTypeCode | Status Code, see Document Status List | |
documentLineText | Document Line Text/Description | |
businessPartner | Business Partner Object. (Value: businessPartnerCode or businessPartner Key). Invoice and Payment/Receipt:
| |
isAccountsPayable | false = Accounts Receivable, true = Accounts Payable Inserting Payment/Receipt: For payments referring to Accounts Receivable invoices set value to 0. For payments referring to Accounts Payable invoice set value to 1. This value should always have the same value as for the referring invoice. | |
refDocument | Referring Document for Reversals, Payments and Receipts. To set refDocument use Document Number or Key. Payment/Receipts: Setting refDocument for payment receipts, documentLine.voyage will be set equal to the documentLine.voyage of the referring invoice. | |
vatRate.vatRate | VAT Rate | |
vatRate.vat.vatCode | VAT Code | |
freightRate | Freight Rate Object | |
portCall | portCall Object | |
handlingCost | handlingCost Object | |
businessUnit | businessUnit Object | |
account | Account Object, use glAccount instead | |
handlingCostCode | handlingCostCode Object, use glAccount instead | |
billOfLading | billOfLading Object | |
claim | Claim Object | |
offhire | Offhire Object | |
voyage | Voyage Object |
...
Field Name | Description | Required | Unique | Not Possible to Set in Filters |
---|---|---|---|---|
bankName | Bank Name | Yes | ||
swiftAddress | SWIFT Code | Yes | Yes | |
chip | Chip ID | |||
abaNumber | ABA Code | |||
addresses | Address | X | ||
contactInfo | Contact Info | X |
Related Content
...