# 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.

## **Integration Set-Up**

* Dataloy VMS used as master:&#x20;
  * Dataloy recommends setting up up a [Webhook](https://api.dataloy.com/api-release-8.11/dataloy-rest-api/webhooks). As an alternative, setup a scheduled job and use the request under Data Transaction (below) to gather all business partners data having been modified since the last time a scheduled task was run.
* Dataloy VMS is *not* used as master: Use the requests under Data Transaction (below) to insert and update the business partners in Dataloy VMS.

## **Data Transaction**

### **Dataloy VMS as a master for business partners**

\
**Webhook**

Setup [Webhook subscriptions](https://api.dataloy.com/api-release-8.11/dataloy-rest-api/webhooks) for BusinessPartner, Address and ContactInfo. From Address and Contact info there is a reference back to the BusinessPartner key in the source field.

\
**Scheduled Job (If Webhook is not an option)**

Extract the business partners whose data has been modified since a selected date from Dataloy VMS using the following request in conjunction with the[ base URL](https://api.dataloy.com/api-release-8.11/dataloy-rest-api/getting-started):                                                                       &#x20;

**Get business partner information**

```
GET /BusinessPartner?filter=modifiedDate(GTE)2014-01-01T12:30:00
```

Set up a scheduled job and gather all voyages that have been modified since the last time a scheduled task was run.&#x20;

### **Other systems as Master for Business Partners**

Check if relevant business partner/s is/are already existing in Dataloy VMS by using the following request in conjunction with the base URL:                                                                                                   &#x20;

**Get business partner by key**

```
GET /BusinessPartner?filter=businessPartnerCode(EQ)99999
```

### If the business partner is already existing in Dataloy VMS

### Update BusinessPartner

```
PUT /BusinessPartner
  
{
  "key": 1111111,
  "businessPartnerName": "Test Name",
  "businessPartnerCode": "123456789",
  "businessPartnerSort": "TESTNAME",
  "companyRegistrationNo": "123456789",
  "businessPartnerTypes": [
    {
      "businessPartnerType": "A"
    },
    {
      "businessPartnerType": "AU"
    }
  ],
  "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"
    }
  ]
}
```

### If the business partner does not exist in Dataloy VMS

[BusinessPartner API documentation](https://dataloy-systems.stoplight.io/docs/dataloyModel/model/schemas/business-partner)

{% hint style="info" %}
***Note**: Use the Bank key if the Bank already exists. The below example is showing how to insert a new Bank when inserting a BusinessPartner*
{% endhint %}

```
POST /BusinessPartner

{
  "businessPartnerName": "Test Name",
  "businessPartnerCode": "123456789",
  "businessPartnerSort": "TESTNAME",
  "companyRegistrationNo": "123456789",
  "businessPartnerTypes": [
    {
      "businessPartnerType": "A"
    },
    {
      "businessPartnerType": "AU"
    }
  ],
  "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"
    }
  ]
}
```
