NAV
Shell HTTP JavaScript Ruby Python PHP Java Go

Receeve Debt Servicing Platform v1.53.1

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

This is the API definition for interacting with Receeve's debt servicing platform. Use this reference to understand available endpoints, request payloads, and response schemas. Each endpoint description contains all necessary context to integrate successfully.

Authentication

Security

Authentication endpoints. Use the OAuth2 token endpoint to obtain a Bearer token by providing your client ID and client secret via Basic Auth. Pass the resulting access token in the Authorization header of all subsequent requests.

getOauth2Token

Code samples

# You can also use wget
curl -X POST /v1/oauth2/token \
  -H 'Accept: application/json' \
  -H 'Authorization: Basic NGExdm42azRhYzRocDV1dTNxMnF2NTU1NTU6MTE5NXVpdjlzdWI0Z2tjZ2RsOHRpb2UyMDlsdmNtdml2dTU1YjFlZjYwcjdsaFhYWFhYWA==' \
  -H 'Content-Type: application/x-www-form-urlencoded'

POST /v1/oauth2/token HTTP/1.1

Accept: application/json
Authorization: Basic NGExdm42azRhYzRocDV1dTNxMnF2NTU1NTU6MTE5NXVpdjlzdWI0Z2tjZ2RsOHRpb2UyMDlsdmNtdml2dTU1YjFlZjYwcjdsaFhYWFhYWA==
Content-Type: application/x-www-form-urlencoded


const headers = {
  'Accept':'application/json',
  'Authorization':'Basic NGExdm42azRhYzRocDV1dTNxMnF2NTU1NTU6MTE5NXVpdjlzdWI0Z2tjZ2RsOHRpb2UyMDlsdmNtdml2dTU1YjFlZjYwcjdsaFhYWFhYWA==',
  'Content-Type':'application/x-www-form-urlencoded'
};

fetch('/v1/oauth2/token',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Basic NGExdm42azRhYzRocDV1dTNxMnF2NTU1NTU6MTE5NXVpdjlzdWI0Z2tjZ2RsOHRpb2UyMDlsdmNtdml2dTU1YjFlZjYwcjdsaFhYWFhYWA==',
  'Content-Type' => 'application/x-www-form-urlencoded'
}

result = RestClient.post '/v1/oauth2/token',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Basic NGExdm42azRhYzRocDV1dTNxMnF2NTU1NTU6MTE5NXVpdjlzdWI0Z2tjZ2RsOHRpb2UyMDlsdmNtdml2dTU1YjFlZjYwcjdsaFhYWFhYWA==',
  'Content-Type': 'application/x-www-form-urlencoded'
}

r = requests.post('/v1/oauth2/token', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Basic NGExdm42azRhYzRocDV1dTNxMnF2NTU1NTU6MTE5NXVpdjlzdWI0Z2tjZ2RsOHRpb2UyMDlsdmNtdml2dTU1YjFlZjYwcjdsaFhYWFhYWA==',
    'Content-Type' => 'application/x-www-form-urlencoded',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/oauth2/token', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/oauth2/token");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Basic NGExdm42azRhYzRocDV1dTNxMnF2NTU1NTU6MTE5NXVpdjlzdWI0Z2tjZ2RsOHRpb2UyMDlsdmNtdml2dTU1YjFlZjYwcjdsaFhYWFhYWA=="},
        "Content-Type": []string{"application/x-www-form-urlencoded"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/oauth2/token", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/oauth2/token

Get OAuth2 token

Parameters

Name In Type Required Description
Authorization header string true Basic Auth header containing your OAuth2 client credentials. Encode your client ID and client secret as Base64 in the format Basic Base64(clientId:clientSecret) and pass it as the value of this header. The Content-Type must be application/x-www-form-urlencoded. On success, the response contains an access_token (Bearer) valid for 3600 seconds, which must be passed in the Authorization header of all other API calls.
Content-Type header string true must be application/x-www-form-urlencoded

Detailed descriptions

Authorization: Basic Auth header containing your OAuth2 client credentials. Encode your client ID and client secret as Base64 in the format Basic Base64(clientId:clientSecret) and pass it as the value of this header. The Content-Type must be application/x-www-form-urlencoded. On success, the response contains an access_token (Bearer) valid for 3600 seconds, which must be passed in the Authorization header of all other API calls.

Example responses

200 Response

{
  "access_token": "Bearer <access_token>",
  "expires_in": 3600,
  "token_type": "Bearer"
}

Responses

Status Meaning Description Schema
200 OK Request to get oauth2 token was successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» access_token string false none Access Token used in all the other API Endpoints
» expires_in integer false none Time in seconds until the token expires, please refresh the token before it expires.
» token_type string false none OAuth2 token type

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Account

An Account represents a formal business arrangement with a debtor, tracking outstanding balances and related entities. An Account groups together the Debtor(s), Products, Ledger Entries, and Claims. It is the top-level entity you create first before adding any other data.

getAccount

Code samples

# You can also use wget
curl -X GET /v1/{clientId}/get_account?accountReference=ACCOUNT_REFERENCE_002 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

GET /v1/{clientId}/get_account?accountReference=ACCOUNT_REFERENCE_002 HTTP/1.1

Accept: application/json
Authorization: Bearer <access_token>


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/get_account?accountReference=ACCOUNT_REFERENCE_002',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.get '/v1/{clientId}/get_account',
  params: {
  'accountReference' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('/v1/{clientId}/get_account', params={
  'accountReference': 'ACCOUNT_REFERENCE_002'
}, headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/v1/{clientId}/get_account', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/get_account?accountReference=ACCOUNT_REFERENCE_002");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/v1/{clientId}/get_account", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/{clientId}/get_account

Retrieve a single Account with all its sub-entities

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
accountReference query string true The unique reference identifying the Account in your system

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "currency": "EUR",
  "paymentReference": "paymentReference1",
  "meta": {
    "invoiceExternalNumber": 111
  },
  "scores": [
    {
      "type": "INTERNAL",
      "value": "V1"
    }
  ],
  "debtors": [
    {
      "lastName": "LAST_NAME_1",
      "firstName": "FIRST_NAME_1",
      "debtorReference": "EXTERNAL_DEBTOR_REF_001",
      "contactInformation": {
        "country": "DE",
        "email": "first.last@acme.com"
      }
    }
  ],
  "products": [
    {
      "productReference": "PRODUCT_REFERENCE_1",
      "paymentReference": "PRODUCT_PAYMENT_REFERENCE_1"
    },
    {
      "productReference": "PRODUCT_REFERENCE_2",
      "paymentReference": "PRODUCT_PAYMENT_REFERENCE_2"
    }
  ],
  "ledgerEntries": [
    {
      "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_1",
      "invoiceDetails": {
        "amount": 100000,
        "dueDate": "2022-01-08",
        "paymentReference": "INVOICE_PAYMENT_REFERENCE_1"
      },
      "context": {
        "productReference": "PRODUCT_REFERENCE_1"
      }
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK Request for get_account is successful Account
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

createAccounts

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/create_accounts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/create_accounts HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '{
  "ACCOUNT_REFERENCE_002": {
    "currency": "EUR",
    "paymentReference": "ACCOUNT_PAYMENT_REFERENCE",
    "meta": {
      "accountMetaKey002": "value002",
      "invoiceExternalNumber": 111
    },
    "scores": [
      {
        "type": "INTERNAL",
        "value": "V1"
      }
    ],
    "debtors": [
      {
        "lastName": "LAST_NAME_1",
        "firstName": "FIRST_NAME",
        "debtorReference": "EXTERNAL_DEBTOR_REF_002",
        "contactInformation": {
          "country": "NL",
          "email": "first.last@acme.com"
        }
      }
    ],
    "products": [
      {
        "productReference": "PRODUCT_REFERENCE_1",
        "paymentReference": "PRODUCT_PAYMENT_REFERENCE_1"
      },
      {
        "productReference": "PRODUCT_REFERENCE_2",
        "paymentReference": "PRODUCT_PAYMENT_REFERENCE_2"
      }
    ],
    "ledgerEntries": [
      {
        "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_1",
        "invoiceDetails": {
          "amount": 100000,
          "dueDate": "2022-01-08",
          "paymentReference": "INVOICE_PAYMENT_REFERENCE_1"
        },
        "context": {
          "productReference": "PRODUCT_REFERENCE_1"
        }
      }
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/create_accounts',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/create_accounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/create_accounts', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/create_accounts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/create_accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/create_accounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/create_accounts

Create one or more Accounts in Receeve

Creates one or more Accounts in the platform. The request body is a map where each key is your accountReference and the value is the Account object.

An Account is the top-level entity that groups all related data: Debtor information, Products, Ledger Entries, and Claims. Sub-entities (debtors, products, scores, ledgerEntries) are optional at creation time and can be added in subsequent calls via their dedicated endpoints.

Notes: - currency is required and must be a 3-letter ISO 4217 code (e.g. EUR). - accountReference must be unique per client and is your own identifier for this account. - paymentReference is an optional text reference used to map money transactions to external systems.

Body parameter

{
  "ACCOUNT_REFERENCE_002": {
    "currency": "EUR",
    "paymentReference": "ACCOUNT_PAYMENT_REFERENCE",
    "meta": {
      "accountMetaKey002": "value002",
      "invoiceExternalNumber": 111
    },
    "scores": [
      {
        "type": "INTERNAL",
        "value": "V1"
      }
    ],
    "debtors": [
      {
        "lastName": "LAST_NAME_1",
        "firstName": "FIRST_NAME",
        "debtorReference": "EXTERNAL_DEBTOR_REF_002",
        "contactInformation": {
          "country": "NL",
          "email": "first.last@acme.com"
        }
      }
    ],
    "products": [
      {
        "productReference": "PRODUCT_REFERENCE_1",
        "paymentReference": "PRODUCT_PAYMENT_REFERENCE_1"
      },
      {
        "productReference": "PRODUCT_REFERENCE_2",
        "paymentReference": "PRODUCT_PAYMENT_REFERENCE_2"
      }
    ],
    "ledgerEntries": [
      {
        "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_1",
        "invoiceDetails": {
          "amount": 100000,
          "dueDate": "2022-01-08",
          "paymentReference": "INVOICE_PAYMENT_REFERENCE_1"
        },
        "context": {
          "productReference": "PRODUCT_REFERENCE_1"
        }
      }
    ]
  }
}

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
async query boolean false The request is added to the queue without expecting the response
sequential query boolean false The request body items are executed one after another one
body body object true none
» additionalProperties body any false Input for create_account endpoint.
»» anonymous body Account false A formal business arrangement providing for regular dealings or services (such as banking, advertising, or store credit) and involving the establishment and maintenance of an Account.
»»» meta body Metadata false Additional information related to the entity.
»»» paymentReference body PaymentReference false Payment reference used in online transactions.
»»» portfolioReference body PortfolioReference false An optional grouping field for reporting and filtering purposes.
»»» currency body Currency false 3-digit currency code (ISO 4217)
»»» scores body [AccountScore] false List of provided scores related with the Account.
»»»» type body string true Type of score
»»»» value body any true none
»»»»» anonymous body string false The score's value
»»»»» anonymous body object false composed value
»»»»» anonymous body null false No value
»»»» meta body Metadata false Additional information related to the entity.
»»» debtors body [allOf] false List of debtors related with the Account.
»»»» anonymous body BaseDebtor false none
»»»»» birthday body string(date) false Birthday of the debtor
»»»»» gender body string false Gender of the debtor
»»»»» firstName body string false First name of the debtor (required if type is 'natural')
»»»»» lastName body string false Last name of the debtor (required if type is 'natural')
»»»»» middleName body string false Middle name of the debtor
»»»»» title body string false Title of the debtor
»»»»» companyName body string false Company Name of the debtor (required if type is 'legal')
»»»»» debtorReference body DebtorReference false Your customer ID for this person or company
»»»»» SSN body string false National Identification Number of the debtor
»»»»» type body string false Type of the debtor (default: natural)
»»»»» contactInformation body BaseContactInformation false none
»»»»»» country body string false 2-digit country code (ISO 3166-1). This is required for the localization and payment providers.
»»»»»» city body string false City
»»»»»» mobileNumber body string false Mobile number in E.164 format (e.g. +49555555555)
»»»»»» postalCode body string false Postal Code
»»»»»» houseNumber body string false House number as part of the address
»»»»»» addressLine1 body string false Address Line 1
»»»»»» addressLine2 body string false Address Line 2
»»»»»» addressLine3 body string false Address Line 3
»»»»»» landLine body string false Landline number in E.164 format (e.g. +49555555555)
»»»»»» state body string false State
»»»»»» email body string false Email Address
»»»»»» additionalContactInformation body [oneOf] false none
»»»»»»» anonymous body object false none
»»»»»»»» email body string true Email Address
»»»»»»» anonymous body object false none
»»»»»»»» mobileNumber body string true Mobile number in E.164 format (e.g. +49555555555)
»»»»»»» anonymous body object false none
»»»»»»»» landLine body string true Landline number in E.164 format (e.g. +49555555555)
»»»»»»» anonymous body object false none
»»»»»»»» workPhoneNumber body string true Work phone number in E.164 format (e.g. +49555555555)
»»»» anonymous body object false none
»»»»» contactInformation body any true Contact information of the debtor, used for communication purposes.
»»»»»» anonymous body BaseContactInformation false none
»»»»»» anonymous body object false none
»»» products body [Product] false List of products related with the Account.
»»»» productReference body ProductReference true Identifier for a product in your system. It is used for grouping purposes.
»»»» paymentReference body PaymentReference false Payment reference used in online transactions.
»»»» type body string false Type of product
»»»» name body string false Product name
»»»» code body string false Product code
»»»» meta body Metadata false Additional information related to the entity.
»»» ledgerEntries body [oneOf] false Ledger used to create Managed Claims.
»»»» anonymous body FeeLedgerEntry false none
»»»»» ledgerEntryReference body string true Reference of the Fee Ledger Entry
»»»»» feeDetails body object true none
»»»»»» type body string false Type of fee
»»»»»» amount body Amount true Monetary value in cents (natural number)
»»»»»» createdAt body integer false Timestamp when the ledger entry was created in milliseconds
»»»»»» meta body Metadata false Additional information related to the entity.
»»»»» context body object true Describes the specific context of the entry
»»»»»» productReference body ProductReference false Identifier for a product in your system. It is used for grouping purposes.
»»»»»» ledgerEntryReference body string false Relationship of the fee with another ledger entry
»»»» anonymous body InvoiceLedgerEntry false An Invoice Ledger Entry is a type of Ledger Entry that represents a claim in the system.
»»»»» ledgerEntryReference body LedgerEntryReference true Reference of the Ledger Entry (unique per Account)
»»»»» invoiceDetails body object true none
»»»»»» amount body Amount true Monetary value in cents (natural number)
»»»»»» createdAt body LedgerEntryCreatedAt false Timestamp when the ledger entry was created in milliseconds
»»»»»» dueDate body DueDate(date) true Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
»»»»»» paymentReference body PaymentReference false Payment reference used in online transactions.
»»»»»» meta body Metadata false Additional information related to the entity.
»»»»» context body object true Describes the specific context of the Ledger Entry
»»»»»» productReference body ProductReference false Identifier for a product in your system. It is used for grouping purposes.
»»»»»» externalDebtorReference body DebtorReference false Your customer ID for this person or company
»»»» anonymous body PaymentLedgerEntry false none
»»»»» ledgerEntryReference body string true Reference of the Payment Ledger Entry
»»»»» paymentDetails body object true none
»»»»»» amount body Amount true Monetary value in cents (natural number)
»»»»»» paymentReference body PaymentReference false Payment reference used in online transactions.
»»»»»» createdAt body integer false Timestamp when the ledger entry was created in milliseconds
»»»»»» paymentProvider body string false Name of the provider used for the transaction
»»»»»» meta body Metadata false Additional information related to the entity.
»»»»» context body object true Describes the specific context of the entry
»»»»»» productReference body ProductReference false Identifier for a product in your system. It is used for grouping purposes.
»»»»»» ledgerEntryReference body string false Defines the target of the payment ledger entry
»»»» anonymous body AdjustmentLedgerEntry false none
»»»»» ledgerEntryReference body string true Reference of the Adjustment Ledger Entry
»»»»» adjustmentDetails body object true none
»»»»»» reason body string false Reason for the adjustment
»»»»»» amount body RelativeAmount true Monetary value in cents (positive or negative number)
»»»»»» dueDate body DueDate(date) false Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
»»»»»» createdAt body integer false Timestamp when the ledger entry was created in milliseconds
»»»»»» meta body Metadata false Additional information related to the entity.
»»»»» context body object true Describes the specific context of the entry
»»»»»» productReference body ProductReference false Identifier for a product in your system. It is used for grouping purposes.
»»»»»» ledgerEntryReference body string false Defines the target of the payment ledger entry
»»»» anonymous body ChargebackLedgerEntry false none
»»»»» ledgerEntryReference body string true Reference of the Chargeback Ledger Entry
»»»»» chargebackDetails body object true none
»»»»»» amount body Amount true Monetary value in cents (natural number)
»»»»»» createdAt body integer false Timestamp when the ledger entry was created in milliseconds
»»»»»» meta body Metadata false Additional information related to the entity.
»»»»» context body object true Describes the specific context of the entry
»»»»»» productReference body ProductReference false Identifier for a product in your system. It is used for grouping purposes.
»»»»»» ledgerEntryReference body string true Defines the target of the chargeback ledger entry
»»»» anonymous body DiscountLedgerEntry false none
»»»»» ledgerEntryReference body string true Reference of the Discount Ledger Entry
»»»»» discountDetails body object true none
»»»»»» amount body Amount true Monetary value in cents (natural number)
»»»»»» createdAt body integer false Timestamp when the ledger entry was created in milliseconds
»»»»»» meta body Metadata false Additional information related to the entity.
»»»»» context body object true Describes the specific context of the entry
»»»»»» productReference body ProductReference false Identifier for a product in your system. It is used for grouping purposes.
»»»»»» ledgerEntryReference body string true Defines the target of the discount ledger entry
»»»» anonymous body ReportingLedgerEntry false none
»»»»» ledgerEntryReference body string true Reference of the Reporting Ledger Entry
»»»»» reportingDetails body object true none
»»»»»» amount body Amount true Monetary value in cents (natural number)
»»»»»» createdAt body integer false Timestamp when the ledger entry was created in milliseconds
»»»»»» meta body Metadata false Additional information related to the entity.
»»»»» context body object true Describes the specific context of the entry
»»»»»» productReference body ProductReference false Identifier for a product in your system. It is used for grouping purposes.
»» anonymous body object false none
»»» currency body Currency true 3-digit currency code (ISO 4217)

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

»»» paymentReference: Payment reference used in online transactions. It is a text reference that can be used to map the money transactions to other external systems.

»»»» paymentReference: Payment reference used in online transactions. It is a text reference that can be used to map the money transactions to other external systems.

»»»»»» paymentReference: Payment reference used in online transactions. It is a text reference that can be used to map the money transactions to other external systems.

»»»»»» paymentReference: Payment reference used in online transactions. It is a text reference that can be used to map the money transactions to other external systems.

Enumerated Values

Parameter Value
»»»» type INTERNAL
»»»» type EXTERNAL
»»»» type COLLECTION
»»»» type BEHAVIORAL
»»»»» type natural
»»»»» type legal

Example responses

200 Response

{
  "ACCOUNT_REFERENCE_002": {
    "messages": [
      "Successfully created Account ACCOUNT_REFERENCE_002"
    ],
    "success": true,
    "data": {
      "currency": "EUR",
      "paymentReference": "ACCOUNT_PAYMENT_REFERENCE",
      "meta": {
        "accountMetaKey002": "value002",
        "invoiceExternalNumber": 111
      },
      "scores": [
        {
          "type": "INTERNAL",
          "value": "V1"
        }
      ],
      "debtors": [
        {
          "lastName": "LAST_NAME_1",
          "firstName": "FIRST_NAME",
          "debtorReference": "EXTERNAL_DEBTOR_REF_002",
          "contactInformation": {
            "country": "NL",
            "email": "first.last@acme.com"
          }
        }
      ],
      "products": [
        {
          "productReference": "PRODUCT_REFERENCE_1",
          "paymentReference": "PRODUCT_PAYMENT_REFERENCE_1"
        },
        {
          "productReference": "PRODUCT_REFERENCE_2",
          "paymentReference": "PRODUCT_PAYMENT_REFERENCE_2"
        }
      ],
      "ledgerEntries": [
        {
          "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_1",
          "invoiceDetails": {
            "amount": 100000,
            "dueDate": "2022-01-08",
            "paymentReference": "INVOICE_PAYMENT_REFERENCE_1"
          },
          "context": {
            "productReference": "PRODUCT_REFERENCE_1"
          }
        }
      ]
    },
    "messageIds": [
      "ef61c1b5-fd4a-41df-a1a3-bc4e4e4ca11a"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Response for creating one or more Accounts Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties any false none none

allOf

Name Type Required Restrictions Description
»» anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»»» success boolean true none Whether the action was accepted successfully
»»» messages [string] true none none
»»» messageIds [string] true none Identifier of the messages (used for tracing)

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» data Account false none A formal business arrangement providing for regular dealings or services (such as banking, advertising, or store credit) and involving the establishment and maintenance of an Account.
»»»» meta Metadata false none Additional information related to the entity.
»»»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
»»»» portfolioReference PortfolioReference false none An optional grouping field for reporting and filtering purposes.
»»»» currency Currency false none 3-digit currency code (ISO 4217)
»»»» scores [AccountScore] false none List of provided scores related with the Account.
»»»»» type string true none Type of score
»»»»» value any true none none

oneOf

Name Type Required Restrictions Description
»»»»»» anonymous string false none The score's value

xor

Name Type Required Restrictions Description
»»»»»» anonymous object false none composed value

xor

Name Type Required Restrictions Description
»»»»»» anonymous null false none No value

continued

Name Type Required Restrictions Description
»»»»» meta Metadata false none Additional information related to the entity.
»»»» debtors [allOf] false none List of debtors related with the Account.

allOf

Name Type Required Restrictions Description
»»»»» anonymous BaseDebtor false none none
»»»»»» birthday string(date) false none Birthday of the debtor
»»»»»» gender string false none Gender of the debtor
»»»»»» firstName string false none First name of the debtor (required if type is 'natural')
»»»»»» lastName string false none Last name of the debtor (required if type is 'natural')
»»»»»» middleName string false none Middle name of the debtor
»»»»»» title string false none Title of the debtor
»»»»»» companyName string false none Company Name of the debtor (required if type is 'legal')
»»»»»» debtorReference DebtorReference false none Your customer ID for this person or company
»»»»»» SSN string false none National Identification Number of the debtor
»»»»»» type string false none Type of the debtor (default: natural)
»»»»»» contactInformation BaseContactInformation false none none
»»»»»»» country string false none 2-digit country code (ISO 3166-1). This is required for the localization and payment providers.
»»»»»»» city string false none City
»»»»»»» mobileNumber string false none Mobile number in E.164 format (e.g. +49555555555)
»»»»»»» postalCode string false none Postal Code
»»»»»»» houseNumber string false none House number as part of the address
»»»»»»» addressLine1 string false none Address Line 1
»»»»»»» addressLine2 string false none Address Line 2
»»»»»»» addressLine3 string false none Address Line 3
»»»»»»» landLine string false none Landline number in E.164 format (e.g. +49555555555)
»»»»»»» state string false none State
»»»»»»» email string false none Email Address
»»»»»»» additionalContactInformation [oneOf] false none none

oneOf

Name Type Required Restrictions Description
»»»»»»»» anonymous object false none none
»»»»»»»»» email string true none Email Address

xor

Name Type Required Restrictions Description
»»»»»»»» anonymous object false none none
»»»»»»»»» mobileNumber string true none Mobile number in E.164 format (e.g. +49555555555)

xor

Name Type Required Restrictions Description
»»»»»»»» anonymous object false none none
»»»»»»»»» landLine string true none Landline number in E.164 format (e.g. +49555555555)

xor

Name Type Required Restrictions Description
»»»»»»»» anonymous object false none none
»»»»»»»»» workPhoneNumber string true none Work phone number in E.164 format (e.g. +49555555555)

and

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» contactInformation any true none Contact information of the debtor, used for communication purposes.

allOf

Name Type Required Restrictions Description
»»»»»»» anonymous BaseContactInformation false none none

and

Name Type Required Restrictions Description
»»»»»»» anonymous object false none none

continued

Name Type Required Restrictions Description
»»»» products [Product] false none List of products related with the Account.
»»»»» productReference ProductReference true none Identifier for a product in your system. It is used for grouping purposes.
»»»»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
»»»»» type string false none Type of product
»»»»» name string false none Product name
»»»»» code string false none Product code
»»»»» meta Metadata false none Additional information related to the entity.
»»»» ledgerEntries [oneOf] false none Ledger used to create Managed Claims.

oneOf

Name Type Required Restrictions Description
»»»»» anonymous FeeLedgerEntry false none none
»»»»»» ledgerEntryReference string true none Reference of the Fee Ledger Entry
»»»»»» feeDetails object true none none
»»»»»»» type string false none Type of fee
»»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»»» meta Metadata false none Additional information related to the entity.
»»»»»» context object true none Describes the specific context of the entry
»»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»»» ledgerEntryReference string false none Relationship of the fee with another ledger entry

xor

Name Type Required Restrictions Description
»»»»» anonymous InvoiceLedgerEntry false none An Invoice Ledger Entry is a type of Ledger Entry that represents a claim in the system.
»»»»»» ledgerEntryReference LedgerEntryReference true none Reference of the Ledger Entry (unique per Account)
»»»»»» invoiceDetails object true none none
»»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»»» createdAt LedgerEntryCreatedAt false none Timestamp when the ledger entry was created in milliseconds
»»»»»»» dueDate DueDate(date) true none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
»»»»»»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
»»»»»»» meta Metadata false none Additional information related to the entity.
»»»»»» context object true none Describes the specific context of the Ledger Entry
»»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»»» externalDebtorReference DebtorReference false none Your customer ID for this person or company

xor

Name Type Required Restrictions Description
»»»»» anonymous PaymentLedgerEntry false none none
»»»»»» ledgerEntryReference string true none Reference of the Payment Ledger Entry
»»»»»» paymentDetails object true none none
»»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
»»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»»» paymentProvider string false none Name of the provider used for the transaction
»»»»»»» meta Metadata false none Additional information related to the entity.
»»»»»» context object true none Describes the specific context of the entry
»»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»»» ledgerEntryReference string false none Defines the target of the payment ledger entry

xor

Name Type Required Restrictions Description
»»»»» anonymous AdjustmentLedgerEntry false none none
»»»»»» ledgerEntryReference string true none Reference of the Adjustment Ledger Entry
»»»»»» adjustmentDetails object true none none
»»»»»»» reason string false none Reason for the adjustment
»»»»»»» amount RelativeAmount true none Monetary value in cents (positive or negative number)
»»»»»»» dueDate DueDate(date) false none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
»»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»»» meta Metadata false none Additional information related to the entity.
»»»»»» context object true none Describes the specific context of the entry
»»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»»» ledgerEntryReference string false none Defines the target of the payment ledger entry

xor

Name Type Required Restrictions Description
»»»»» anonymous ChargebackLedgerEntry false none none
»»»»»» ledgerEntryReference string true none Reference of the Chargeback Ledger Entry
»»»»»» chargebackDetails object true none none
»»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»»» meta Metadata false none Additional information related to the entity.
»»»»»» context object true none Describes the specific context of the entry
»»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»»» ledgerEntryReference string true none Defines the target of the chargeback ledger entry

xor

Name Type Required Restrictions Description
»»»»» anonymous DiscountLedgerEntry false none none
»»»»»» ledgerEntryReference string true none Reference of the Discount Ledger Entry
»»»»»» discountDetails object true none none
»»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»»» meta Metadata false none Additional information related to the entity.
»»»»»» context object true none Describes the specific context of the entry
»»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»»» ledgerEntryReference string true none Defines the target of the discount ledger entry

xor

Name Type Required Restrictions Description
»»»»» anonymous ReportingLedgerEntry false none none
»»»»»» ledgerEntryReference string true none Reference of the Reporting Ledger Entry
»»»»»» reportingDetails object true none none
»»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»»» meta Metadata false none Additional information related to the entity.
»»»»»» context object true none Describes the specific context of the entry
»»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.

Enumerated Values

Property Value
type INTERNAL
type EXTERNAL
type COLLECTION
type BEHAVIORAL
type natural
type legal

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

updateAccountMeta

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/update_account_meta \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/update_account_meta HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '{
  "ACCOUNT_REFERENCE_002": {
    "updateAccountMeta002": "updateAccountMetaValue002"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/update_account_meta',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/update_account_meta',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/update_account_meta', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/update_account_meta', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/update_account_meta");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/update_account_meta", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/update_account_meta

Merge key-value metadata onto one or more Accounts

Updates the metadata on one or more Accounts. The request body is a map where each key is the accountReference and the value is an object of key-value metadata pairs.

The provided metadata is merged with any existing metadata — fields not included in the request are left unchanged. Account-level metadata is inherited by Claims created under that Account, making it useful for storing attributes that apply across all claims (e.g. segment, portfolio, customer tier).

Body parameter

{
  "ACCOUNT_REFERENCE_002": {
    "updateAccountMeta002": "updateAccountMetaValue002"
  }
}

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
async query boolean false The request is added to the queue without expecting the response
sequential query boolean false The request body items are executed one after another one
body body object true none
» additionalProperties body Metadata false Additional information related to the entity.

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Request was successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»» success boolean true none Whether the action was accepted successfully
»» messages [string] true none none
»» messageIds [string] true none Identifier of the messages (used for tracing)

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

addAccountLedgerEntries

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/add_account_ledger_entries \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/add_account_ledger_entries HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '[
  {
    "accountReference": "ACCOUNT_REFERENCE_002",
    "context": {},
    "invoiceDetails": {
      "amount": 13025,
      "dueDate": "2020-01-01",
      "meta": {}
    },
    "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_2"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/add_account_ledger_entries',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/add_account_ledger_entries',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/add_account_ledger_entries', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/add_account_ledger_entries', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/add_account_ledger_entries");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/add_account_ledger_entries", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/add_account_ledger_entries

Add Ledger Entries to Accounts to create or update Managed Claims

Adds Ledger Entries to one or more Accounts. Ledger Entries are the mechanism for creating and updating Managed Claims — claims whose amount is derived from the Ledger rather than set directly.

Each entry in the request array must include an accountReference to identify which Account it belongs to. The platform processes entries and automatically creates or updates the corresponding Claims.

Entry type is determined by which details field you include — do not set a type field explicitly: | Details field | Entry type | Creates / affects | |---|---|---| | invoiceDetails | Invoice | Creates a new Managed Claim | | feeDetails | Fee | Adds fees to an existing Claim | | paymentDetails | Payment | Records a payment against a Claim | | adjustmentDetails | Adjustment | Adjusts the amount of an existing Claim | | chargebackDetails | Chargeback | Records a chargeback against a Claim | | discountDetails | Discount | Applies a discount to an existing Claim | ReportingLedgerEntry (using reportingDetails) is deprecated — do not use.

Body parameter

[
  {
    "accountReference": "ACCOUNT_REFERENCE_002",
    "context": {},
    "invoiceDetails": {
      "amount": 13025,
      "dueDate": "2020-01-01",
      "meta": {}
    },
    "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_2"
  }
]

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
async query boolean false The request is added to the queue without expecting the response
sequential query boolean false The request body items are executed one after another one
body body array[any] true none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "ACCOUNT_REFERENCE_002": {
    "success": true,
    "data": [
      {
        "accountReference": "ACCOUNT_REFERENCE_002",
        "context": {},
        "invoiceDetails": {
          "amount": 13025,
          "dueDate": "2020-01-01",
          "meta": {}
        },
        "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_2"
      }
    ],
    "messageIds": [
      "cddddeb1-f352-46f3-a59d-0008a84e9bd5"
    ],
    "messages": [
      "Successfully added Ledger Entries: INVOICE_LEDGER_ENTRY_REFERENCE_002_2"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Response when adding account ledger entries is successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties any false none Response of any action that adds ledger entries to an account.

allOf

Name Type Required Restrictions Description
»» anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»»» success boolean true none Whether the action was accepted successfully
»»» messages [string] true none none
»»» messageIds [string] true none Identifier of the messages (used for tracing)

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» data [oneOf] false none [A Ledger Entry is a record of a transaction in the Ledger.]

oneOf

Name Type Required Restrictions Description
»»»» anonymous FeeLedgerEntry false none none
»»»»» ledgerEntryReference string true none Reference of the Fee Ledger Entry
»»»»» feeDetails object true none none
»»»»»» type string false none Type of fee
»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» context object true none Describes the specific context of the entry
»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»» ledgerEntryReference string false none Relationship of the fee with another ledger entry

xor

Name Type Required Restrictions Description
»»»» anonymous InvoiceLedgerEntry false none An Invoice Ledger Entry is a type of Ledger Entry that represents a claim in the system.
»»»»» ledgerEntryReference LedgerEntryReference true none Reference of the Ledger Entry (unique per Account)
»»»»» invoiceDetails object true none none
»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»» createdAt LedgerEntryCreatedAt false none Timestamp when the ledger entry was created in milliseconds
»»»»»» dueDate DueDate(date) true none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
»»»»»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» context object true none Describes the specific context of the Ledger Entry
»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»» externalDebtorReference DebtorReference false none Your customer ID for this person or company

xor

Name Type Required Restrictions Description
»»»» anonymous PaymentLedgerEntry false none none
»»»»» ledgerEntryReference string true none Reference of the Payment Ledger Entry
»»»»» paymentDetails object true none none
»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»» paymentProvider string false none Name of the provider used for the transaction
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» context object true none Describes the specific context of the entry
»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»» ledgerEntryReference string false none Defines the target of the payment ledger entry

xor

Name Type Required Restrictions Description
»»»» anonymous AdjustmentLedgerEntry false none none
»»»»» ledgerEntryReference string true none Reference of the Adjustment Ledger Entry
»»»»» adjustmentDetails object true none none
»»»»»» reason string false none Reason for the adjustment
»»»»»» amount RelativeAmount true none Monetary value in cents (positive or negative number)
»»»»»» dueDate DueDate(date) false none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» context object true none Describes the specific context of the entry
»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»» ledgerEntryReference string false none Defines the target of the payment ledger entry

xor

Name Type Required Restrictions Description
»»»» anonymous ChargebackLedgerEntry false none none
»»»»» ledgerEntryReference string true none Reference of the Chargeback Ledger Entry
»»»»» chargebackDetails object true none none
»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» context object true none Describes the specific context of the entry
»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»» ledgerEntryReference string true none Defines the target of the chargeback ledger entry

xor

Name Type Required Restrictions Description
»»»» anonymous DiscountLedgerEntry false none none
»»»»» ledgerEntryReference string true none Reference of the Discount Ledger Entry
»»»»» discountDetails object true none none
»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» context object true none Describes the specific context of the entry
»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»» ledgerEntryReference string true none Defines the target of the discount ledger entry

xor

Name Type Required Restrictions Description
»»»» anonymous ReportingLedgerEntry false none none
»»»»» ledgerEntryReference string true none Reference of the Reporting Ledger Entry
»»»»» reportingDetails object true none none
»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» context object true none Describes the specific context of the entry
»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

addAccountProducts

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/add_account_products \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/add_account_products HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '[
  {
    "accountReference": "ACCOUNT_REFERENCE_002",
    "productReference": "PRODUCT_REFERENCE_002_2",
    "type": "Computer",
    "name": "MacBook Air",
    "code": "2022"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/add_account_products',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/add_account_products',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/add_account_products', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/add_account_products', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/add_account_products");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/add_account_products", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/add_account_products

Add Products to one or more Accounts

Adds Products to one or more Accounts. The request body is an array where each item includes the accountReference and the Product data.

A Product represents a service or item (e.g. a loan, insurance policy, or subscription) that provides context for the Claims under the Account. Products are referenced by productReference in Claims and Ledger Entries to enable grouping, filtering, and reporting.

Required fields per item: accountReference, productReference. Optional fields: type, name, code, paymentReference, meta.

Body parameter

[
  {
    "accountReference": "ACCOUNT_REFERENCE_002",
    "productReference": "PRODUCT_REFERENCE_002_2",
    "type": "Computer",
    "name": "MacBook Air",
    "code": "2022"
  }
]

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
async query boolean false The request is added to the queue without expecting the response
sequential query boolean false The request body items are executed one after another one
body body array[any] true none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "ACCOUNT_REFERENCE_002": {
    "success": true,
    "data": [
      {
        "accountReference": "ACCOUNT_REFERENCE_002",
        "productReference": "PRODUCT_REFERENCE_002_2",
        "type": "Computer",
        "name": "MacBook Air",
        "code": "2022",
        "meta": {}
      }
    ],
    "messageIds": [
      "931120dd-06bf-4ec9-9f44-2167585e76d1"
    ],
    "messages": [
      "Successfully added Product PRODUCT_REFERENCE_002_2"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Request for add/update account product is successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties any false none none

allOf

Name Type Required Restrictions Description
»» anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»»» success boolean true none Whether the action was accepted successfully
»»» messages [string] true none none
»»» messageIds [string] true none Identifier of the messages (used for tracing)

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» data [Product] false none [A product is a service or item used to give context to the Claim or Ledger Entry]
»»»» productReference ProductReference true none Identifier for a product in your system. It is used for grouping purposes.
»»»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
»»»» type string false none Type of product
»»»» name string false none Product name
»»»» code string false none Product code
»»»» meta Metadata false none Additional information related to the entity.

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

updateAccountProducts

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/update_account_products \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/update_account_products HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '[
  {
    "accountReference": "ACCOUNT_REFERENCE_002",
    "productReference": "PRODUCT_REFERENCE_002_2",
    "type": "Computer",
    "name": "MacBook Air",
    "code": "2022"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/update_account_products',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/update_account_products',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/update_account_products', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/update_account_products', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/update_account_products");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/update_account_products", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/update_account_products

Update existing Products on one or more Accounts

Updates existing Products on one or more Accounts. The request body is an array where each item includes the accountReference and the updated Product data identified by productReference.

Only the fields provided in the request are updated. The productReference is used to identify which existing Product to modify. Use add_account_products to create new Products.

Body parameter

[
  {
    "accountReference": "ACCOUNT_REFERENCE_002",
    "productReference": "PRODUCT_REFERENCE_002_2",
    "type": "Computer",
    "name": "MacBook Air",
    "code": "2022"
  }
]

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
async query boolean false The request is added to the queue without expecting the response
sequential query boolean false The request body items are executed one after another one
body body array[any] true none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "ACCOUNT_REFERENCE_002": {
    "success": true,
    "data": [
      {
        "accountReference": "ACCOUNT_REFERENCE_002",
        "productReference": "PRODUCT_REFERENCE_002_2",
        "type": "Computer",
        "name": "MacBook Air",
        "code": "2022",
        "meta": {}
      }
    ],
    "messageIds": [
      "931120dd-06bf-4ec9-9f44-2167585e76d1"
    ],
    "messages": [
      "Successfully added Product PRODUCT_REFERENCE_002_2"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Request for add/update account product is successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties any false none none

allOf

Name Type Required Restrictions Description
»» anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»»» success boolean true none Whether the action was accepted successfully
»»» messages [string] true none none
»»» messageIds [string] true none Identifier of the messages (used for tracing)

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» data [Product] false none [A product is a service or item used to give context to the Claim or Ledger Entry]
»»»» productReference ProductReference true none Identifier for a product in your system. It is used for grouping purposes.
»»»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
»»»» type string false none Type of product
»»»» name string false none Product name
»»»» code string false none Product code
»»»» meta Metadata false none Additional information related to the entity.

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

addAccountDebtors

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/add_account_debtors \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/add_account_debtors HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '[
  {
    "accountReference": "ACCOUNT_REFERENCE_002",
    "debtorReference": "EXTERNAL_DEBTOR_REF_002",
    "contactInformation": {
      "country": "DE",
      "email": "first.last@acme.com"
    },
    "firstName": "First_2",
    "lastName": "Last_2"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/add_account_debtors',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/add_account_debtors',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/add_account_debtors', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/add_account_debtors', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/add_account_debtors");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/add_account_debtors", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/add_account_debtors

Add Debtors to one or more Accounts

Adds Debtors to one or more Accounts. The request body is an array where each item includes the accountReference and the Debtor data.

A Debtor is the person or company that owes the money described by the Account. Natural persons require firstName and lastName; legal entities require companyName. The debtorReference is your own identifier for this person or company and must be unique per client.

contactInformation is required and must include at least country (ISO 3166-1 alpha-2, e.g. DE). Other contact fields (email, mobileNumber, address) are optional but recommended for communications.

Body parameter

[
  {
    "accountReference": "ACCOUNT_REFERENCE_002",
    "debtorReference": "EXTERNAL_DEBTOR_REF_002",
    "contactInformation": {
      "country": "DE",
      "email": "first.last@acme.com"
    },
    "firstName": "First_2",
    "lastName": "Last_2"
  }
]

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
async query boolean false The request is added to the queue without expecting the response
sequential query boolean false The request body items are executed one after another one
body body array[any] true none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": [
      {
        "birthday": "1980-06-28",
        "gender": "M",
        "firstName": "John",
        "lastName": "White",
        "middleName": "Benedict",
        "title": "Doctor",
        "companyName": "Acme Brick Co.",
        "debtorReference": "EXTERNAL_DEBTOR_REF_002",
        "SSN": "AAA-GG-SSSS",
        "type": "natural",
        "contactInformation": {
          "country": "DE",
          "city": "Delbrück",
          "mobileNumber": "+495555555555",
          "postalCode": 33129,
          "houseNumber": "24A",
          "addressLine1": "Boikweg 24",
          "addressLine2": "c/o Acme",
          "addressLine3": "first floor",
          "landLine": "+495555555555",
          "state": "Dortmund",
          "email": "testEmail@example.com",
          "additionalContactInformation": [
            {
              "email": "testEmail@example.com"
            }
          ]
        }
      }
    ]
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": [
      {
        "birthday": "1980-06-28",
        "gender": "M",
        "firstName": "John",
        "lastName": "White",
        "middleName": "Benedict",
        "title": "Doctor",
        "companyName": "Acme Brick Co.",
        "debtorReference": "EXTERNAL_DEBTOR_REF_002",
        "SSN": "AAA-GG-SSSS",
        "type": "natural",
        "contactInformation": {
          "country": "DE",
          "city": "Delbrück",
          "mobileNumber": "+495555555555",
          "postalCode": 33129,
          "houseNumber": "24A",
          "addressLine1": "Boikweg 24",
          "addressLine2": "c/o Acme",
          "addressLine3": "first floor",
          "landLine": "+495555555555",
          "state": "Dortmund",
          "email": "testEmail@example.com",
          "additionalContactInformation": [
            {
              "email": "testEmail@example.com"
            }
          ]
        }
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Response for debtor add/update account debtor request is successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties any false none none

allOf

Name Type Required Restrictions Description
»» anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»»» success boolean true none Whether the action was accepted successfully
»»» messages [string] true none none
»»» messageIds [string] true none Identifier of the messages (used for tracing)

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» data [allOf] false none [The Debtor is the entity that owes the money. It can be a person (natural) or a company (legal).
Notes:
- If the debtor is a person (natural), then firstName and lastName are required.
- If the debtor is a company (legal), then companyName is required.
]

allOf

Name Type Required Restrictions Description
»»»» anonymous BaseDebtor false none none
»»»»» birthday string(date) false none Birthday of the debtor
»»»»» gender string false none Gender of the debtor
»»»»» firstName string false none First name of the debtor (required if type is 'natural')
»»»»» lastName string false none Last name of the debtor (required if type is 'natural')
»»»»» middleName string false none Middle name of the debtor
»»»»» title string false none Title of the debtor
»»»»» companyName string false none Company Name of the debtor (required if type is 'legal')
»»»»» debtorReference DebtorReference false none Your customer ID for this person or company
»»»»» SSN string false none National Identification Number of the debtor
»»»»» type string false none Type of the debtor (default: natural)
»»»»» contactInformation BaseContactInformation false none none
»»»»»» country string false none 2-digit country code (ISO 3166-1). This is required for the localization and payment providers.
»»»»»» city string false none City
»»»»»» mobileNumber string false none Mobile number in E.164 format (e.g. +49555555555)
»»»»»» postalCode string false none Postal Code
»»»»»» houseNumber string false none House number as part of the address
»»»»»» addressLine1 string false none Address Line 1
»»»»»» addressLine2 string false none Address Line 2
»»»»»» addressLine3 string false none Address Line 3
»»»»»» landLine string false none Landline number in E.164 format (e.g. +49555555555)
»»»»»» state string false none State
»»»»»» email string false none Email Address
»»»»»» additionalContactInformation [oneOf] false none none

oneOf

Name Type Required Restrictions Description
»»»»»»» anonymous object false none none
»»»»»»»» email string true none Email Address

xor

Name Type Required Restrictions Description
»»»»»»» anonymous object false none none
»»»»»»»» mobileNumber string true none Mobile number in E.164 format (e.g. +49555555555)

xor

Name Type Required Restrictions Description
»»»»»»» anonymous object false none none
»»»»»»»» landLine string true none Landline number in E.164 format (e.g. +49555555555)

xor

Name Type Required Restrictions Description
»»»»»»» anonymous object false none none
»»»»»»»» workPhoneNumber string true none Work phone number in E.164 format (e.g. +49555555555)

and

Name Type Required Restrictions Description
»»»» anonymous object false none none
»»»»» contactInformation any true none Contact information of the debtor, used for communication purposes.

allOf

Name Type Required Restrictions Description
»»»»»» anonymous BaseContactInformation false none none

and

Name Type Required Restrictions Description
»»»»»» anonymous object false none none

Enumerated Values

Property Value
type natural
type legal

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

updateAccountDebtors

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/update_account_debtors \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/update_account_debtors HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '[
  {
    "accountReference": "ACCOUNT_REFERENCE_002",
    "debtorReference": "EXTERNAL_DEBTOR_REF_002",
    "contactInformation": {
      "country": "DE",
      "email": "first.last@acme.com"
    },
    "firstName": "First_2",
    "lastName": "Last_2"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/update_account_debtors',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/update_account_debtors',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/update_account_debtors', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/update_account_debtors', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/update_account_debtors");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/update_account_debtors", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/update_account_debtors

Update existing Debtors on one or more Accounts

Updates existing Debtors on one or more Accounts. The request body is an array where each item includes the accountReference and the updated Debtor data identified by debtorReference.

Only the fields provided are updated; omitted fields are left unchanged. Use add_account_debtors to add new Debtors that do not yet exist on the Account.

Body parameter

[
  {
    "accountReference": "ACCOUNT_REFERENCE_002",
    "debtorReference": "EXTERNAL_DEBTOR_REF_002",
    "contactInformation": {
      "country": "DE",
      "email": "first.last@acme.com"
    },
    "firstName": "First_2",
    "lastName": "Last_2"
  }
]

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
async query boolean false The request is added to the queue without expecting the response
sequential query boolean false The request body items are executed one after another one
body body array[any] true none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Request was successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»» success boolean true none Whether the action was accepted successfully
»» messages [string] true none none
»» messageIds [string] true none Identifier of the messages (used for tracing)

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

getAccountClaims

Code samples

# You can also use wget
curl -X GET /v1/{clientId}/get_account_claims?accountReference=ACCOUNT_REFERENCE_002 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

GET /v1/{clientId}/get_account_claims?accountReference=ACCOUNT_REFERENCE_002 HTTP/1.1

Accept: application/json
Authorization: Bearer <access_token>


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/get_account_claims?accountReference=ACCOUNT_REFERENCE_002',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.get '/v1/{clientId}/get_account_claims',
  params: {
  'accountReference' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('/v1/{clientId}/get_account_claims', params={
  'accountReference': 'ACCOUNT_REFERENCE_002'
}, headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/v1/{clientId}/get_account_claims', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/get_account_claims?accountReference=ACCOUNT_REFERENCE_002");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/v1/{clientId}/get_account_claims", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/{clientId}/get_account_claims

Retrieve paginated Claims for an Account, with optional status filter

Retrieves the Claims associated with a given Account, identified by accountReference. Supports filtering by status (ACTIVE or RESOLVED) and pagination via paginationId and limit.

A Claim is an outstanding payment owed under the Account. Active Claims have an existing debt; Resolved Claims no longer have an outstanding balance (e.g. paid, sold, discarded). The response returns a page of Claims and a paginationId to fetch the next page — it is null when there are no more results.

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
accountReference query string true The unique reference identifying the Account in your system
status query string false Claim Status filter
paginationId query string false Opaque pagination cursor returned in the previous response. Pass this value to fetch the next page of Claims. Omit on the first request. The response returns null when no further pages exist.
limit query integer false amount of events per page, default is 1000

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Enumerated Values

Parameter Value
status ACTIVE
status RESOLVED

Example responses

200 Response

[
  {
    "amount": 13025,
    "currency": "EUR",
    "product": {
      "productReference": "PRODUCT_REFERENCE_1",
      "paymentReference": "paymentReference1",
      "type": "Computer",
      "name": "Macbook Pro",
      "code": "111-22222-3333",
      "meta": {
        "sourceSystem": "system1"
      }
    },
    "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
    "productReference": "PRODUCT_REFERENCE_1",
    "creditorReference": "string",
    "totalFees": 13025,
    "currentDueDate": "2019-06-28",
    "originalDueDate": "2019-06-28",
    "scores": [
      {
        "type": "INTERNAL",
        "value": "risky",
        "meta": {
          "sourceSystem": "system1"
        }
      }
    ],
    "reason": "string",
    "paymentReference": "paymentReference1",
    "accountNumber": "string",
    "accountReference": "ACCOUNT_REFERENCE_002",
    "meta": {
      "sourceSystem": "system1"
    },
    "fees": [
      {
        "name": "Interest",
        "amount": 13025
      }
    ],
    "linkGroupId": null,
    "primaryDebtor": {
      "birthday": "1980-06-28",
      "gender": "M",
      "firstName": "John",
      "lastName": "White",
      "middleName": "Benedict",
      "title": "Doctor",
      "companyName": "Acme Brick Co.",
      "debtorReference": "EXTERNAL_DEBTOR_REF_002",
      "SSN": "AAA-GG-SSSS",
      "type": "natural",
      "contactInformation": {
        "country": "DE",
        "city": "Delbrück",
        "mobileNumber": "+495555555555",
        "postalCode": 33129,
        "houseNumber": "24A",
        "addressLine1": "Boikweg 24",
        "addressLine2": "c/o Acme",
        "addressLine3": "first floor",
        "landLine": "+495555555555",
        "state": "Dortmund",
        "email": "testEmail@example.com",
        "additionalContactInformation": [
          {
            "email": "testEmail@example.com"
          }
        ]
      }
    },
    "claimReference": "string",
    "status": "ACTIVE"
  }
]

Responses

Status Meaning Description Schema
200 OK Request of get_account_claims is Successfull Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Enumerated Values

Property Value
type INTERNAL
type EXTERNAL
type COLLECTION
type BEHAVIORAL
type natural
type legal
status ACTIVE
status RESOLVED

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

SetAccountScores

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/set_account_scores \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/set_account_scores HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '[
  {
    "accountReference": "ACCOUNT_REFERENCE_002",
    "type": "EXTERNAL",
    "value": "SCORE1",
    "meta": {}
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/set_account_scores',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/set_account_scores',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/set_account_scores', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/set_account_scores', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/set_account_scores");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/set_account_scores", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/set_account_scores

Set or overwrite risk/behavioural scores on one or more Accounts

The intention of the endpoint is to set the scores for the Account. Scores provide additional contextual signals about the Account that can be used to drive collection strategy logic (e.g. risk segmentation, behavioral scoring). Each score has a type (INTERNAL, EXTERNAL, COLLECTION, or BEHAVIORAL) and a value. Multiple scores of different types can be set per Account. Existing scores of the same type are overwritten.

Body parameter

[
  {
    "accountReference": "ACCOUNT_REFERENCE_002",
    "type": "EXTERNAL",
    "value": "SCORE1",
    "meta": {}
  }
]

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
sequential query boolean false The request body items are executed one after another one
async query boolean false The request is added to the queue without expecting the response
body body array[any] true none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "property1": {
    "messages": [
      "Successfully set the score of EXTERNAL"
    ],
    "success": true,
    "data": [
      {
        "accountReference": "ACCOUNT_REFERENCE_002",
        "type": "EXTERNAL",
        "value": "SCORE1",
        "meta": {}
      }
    ],
    "messageIds": [
      "0fdf533f-e453-4b64-9e4a-e1e2a2b81bf4"
    ]
  },
  "property2": {
    "messages": [
      "Successfully set the score of EXTERNAL"
    ],
    "success": true,
    "data": [
      {
        "accountReference": "ACCOUNT_REFERENCE_002",
        "type": "EXTERNAL",
        "value": "SCORE1",
        "meta": {}
      }
    ],
    "messageIds": [
      "0fdf533f-e453-4b64-9e4a-e1e2a2b81bf4"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Request for set_account_score is successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties any false none Response of the set_account_score endpoint

allOf

Name Type Required Restrictions Description
»» anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»»» success boolean true none Whether the action was accepted successfully
»»» messages [string] true none none
»»» messageIds [string] true none Identifier of the messages (used for tracing)

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» data [AccountScore] false none [An account score is a score that is calculated for a specific account. It can be used to determine the risk of a debtor or any other information that is relevant for the account.]
»»»» type string true none Type of score
»»»» value any true none none

oneOf

Name Type Required Restrictions Description
»»»»» anonymous string false none The score's value

xor

Name Type Required Restrictions Description
»»»»» anonymous object false none composed value

xor

Name Type Required Restrictions Description
»»»»» anonymous null false none No value

continued

Name Type Required Restrictions Description
»»»» meta Metadata false none Additional information related to the entity.

Enumerated Values

Property Value
type INTERNAL
type EXTERNAL
type COLLECTION
type BEHAVIORAL

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

MatchAccountPayment

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/match_account_payment \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/match_account_payment HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '[
  {
    "accountReference": "ACCOUNT_REFERENCE_002",
    "currency": "EUR",
    "totalAmount": 100000,
    "matchStrategy": "ORDERED_INVOICES_WITH_FEES_THEN_ACCOUNT_ENTRIES",
    "providerName": "trustly",
    "trackingId": "TRACKING_ID_2",
    "paymentReference": "PAYMENT_REFERENCE_2",
    "context": {
      "productReference": "PRODUCT_REFERENCE_2"
    },
    "meta": {}
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/match_account_payment',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/match_account_payment',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/match_account_payment', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/match_account_payment', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/match_account_payment");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/match_account_payment", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/match_account_payment

Apply a payment to an Account and distribute it across Claims using a matching strategy

The intention of the endpoint is to register a payment for an account. The payment amount will be matched to the different claims of the account using the indicated matching strategy.

Body parameter

[
  {
    "accountReference": "ACCOUNT_REFERENCE_002",
    "currency": "EUR",
    "totalAmount": 100000,
    "matchStrategy": "ORDERED_INVOICES_WITH_FEES_THEN_ACCOUNT_ENTRIES",
    "providerName": "trustly",
    "trackingId": "TRACKING_ID_2",
    "paymentReference": "PAYMENT_REFERENCE_2",
    "context": {
      "productReference": "PRODUCT_REFERENCE_2"
    },
    "meta": {}
  }
]

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
sequential query boolean false The request body items are executed one after another one
async query boolean false The request is added to the queue without expecting the response
body body array[any] true none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": [
      {
        "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_1",
        "invoiceDetails": {
          "amount": 100000,
          "dueDate": "2022-01-08",
          "paymentReference": "INVOICE_PAYMENT_REFERENCE_1"
        },
        "context": {
          "productReference": "PRODUCT_REFERENCE_1"
        }
      }
    ]
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": [
      {
        "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_1",
        "invoiceDetails": {
          "amount": 100000,
          "dueDate": "2022-01-08",
          "paymentReference": "INVOICE_PAYMENT_REFERENCE_1"
        },
        "context": {
          "productReference": "PRODUCT_REFERENCE_1"
        }
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Response for matching the payment with the account Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties any false none none

allOf

Name Type Required Restrictions Description
»» anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»»» success boolean true none Whether the action was accepted successfully
»»» messages [string] true none none
»»» messageIds [string] true none Identifier of the messages (used for tracing)

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» data [oneOf] false none [A Ledger Entry is a record of a transaction in the Ledger.]

oneOf

Name Type Required Restrictions Description
»»»» anonymous FeeLedgerEntry false none none
»»»»» ledgerEntryReference string true none Reference of the Fee Ledger Entry
»»»»» feeDetails object true none none
»»»»»» type string false none Type of fee
»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» context object true none Describes the specific context of the entry
»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»» ledgerEntryReference string false none Relationship of the fee with another ledger entry

xor

Name Type Required Restrictions Description
»»»» anonymous InvoiceLedgerEntry false none An Invoice Ledger Entry is a type of Ledger Entry that represents a claim in the system.
»»»»» ledgerEntryReference LedgerEntryReference true none Reference of the Ledger Entry (unique per Account)
»»»»» invoiceDetails object true none none
»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»» createdAt LedgerEntryCreatedAt false none Timestamp when the ledger entry was created in milliseconds
»»»»»» dueDate DueDate(date) true none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
»»»»»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» context object true none Describes the specific context of the Ledger Entry
»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»» externalDebtorReference DebtorReference false none Your customer ID for this person or company

xor

Name Type Required Restrictions Description
»»»» anonymous PaymentLedgerEntry false none none
»»»»» ledgerEntryReference string true none Reference of the Payment Ledger Entry
»»»»» paymentDetails object true none none
»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»» paymentProvider string false none Name of the provider used for the transaction
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» context object true none Describes the specific context of the entry
»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»» ledgerEntryReference string false none Defines the target of the payment ledger entry

xor

Name Type Required Restrictions Description
»»»» anonymous AdjustmentLedgerEntry false none none
»»»»» ledgerEntryReference string true none Reference of the Adjustment Ledger Entry
»»»»» adjustmentDetails object true none none
»»»»»» reason string false none Reason for the adjustment
»»»»»» amount RelativeAmount true none Monetary value in cents (positive or negative number)
»»»»»» dueDate DueDate(date) false none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» context object true none Describes the specific context of the entry
»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»» ledgerEntryReference string false none Defines the target of the payment ledger entry

xor

Name Type Required Restrictions Description
»»»» anonymous ChargebackLedgerEntry false none none
»»»»» ledgerEntryReference string true none Reference of the Chargeback Ledger Entry
»»»»» chargebackDetails object true none none
»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» context object true none Describes the specific context of the entry
»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»» ledgerEntryReference string true none Defines the target of the chargeback ledger entry

xor

Name Type Required Restrictions Description
»»»» anonymous DiscountLedgerEntry false none none
»»»»» ledgerEntryReference string true none Reference of the Discount Ledger Entry
»»»»» discountDetails object true none none
»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» context object true none Describes the specific context of the entry
»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»»» ledgerEntryReference string true none Defines the target of the discount ledger entry

xor

Name Type Required Restrictions Description
»»»» anonymous ReportingLedgerEntry false none none
»»»»» ledgerEntryReference string true none Reference of the Reporting Ledger Entry
»»»»» reportingDetails object true none none
»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»»» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» context object true none Describes the specific context of the entry
»»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

updateAccountLedgerEntriesAmounts

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/update_account_ledger_entries_amounts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/update_account_ledger_entries_amounts HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '[
  {
    "accountReference": "ACCOUNT_REFERENCE_002",
    "ledgerEntries": [
      {
        "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_1",
        "amount": 10000,
        "reason": "CHARGEBACK",
        "meta": {}
      },
      {
        "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_2",
        "amount": 0,
        "reason": "PAYMENT",
        "meta": {}
      }
    ]
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/update_account_ledger_entries_amounts',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/update_account_ledger_entries_amounts',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/update_account_ledger_entries_amounts', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/update_account_ledger_entries_amounts', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/update_account_ledger_entries_amounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/update_account_ledger_entries_amounts", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/update_account_ledger_entries_amounts

Update Ledger Entry amounts to a target value, creating typed adjustment entries

The intention of the endpoint is to update the amounts of the Account ledger entries. This is an abstraction over adding directly the Ledger Entries to the Account, the objective is to simplify the process of updating the amounts of the ledger entries, using the target amount in the request, instead of the individual entries. Notes: - The calculations are executed first, and the claims related to those invoices will be updated only once. - The reason field is mandatory, and it will be used to identify the reason of the update, PAYMENT and CHARGEBACK are special values that will affect the creation of the ledger entries, creating Payment Ledger Entries and Chargeback Ledger Entries, any other reason is mapped to Adjustment Ledger Entries. - The last value in the array is the one that will be used to update the claim refered by the ledgerEntryReference, but the previous values are used to give context of the changes.

Body parameter

[
  {
    "accountReference": "ACCOUNT_REFERENCE_002",
    "ledgerEntries": [
      {
        "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_1",
        "amount": 10000,
        "reason": "CHARGEBACK",
        "meta": {}
      },
      {
        "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_2",
        "amount": 0,
        "reason": "PAYMENT",
        "meta": {}
      }
    ]
  }
]

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
sequential query boolean false The request body items are executed one after another one
async query boolean false The request is added to the queue without expecting the response
body body UpdateAccountLedgerEntriesAmountsInput true none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": [
      {
        "accountReference": "ACCOUNT_REFERENCE_002",
        "ledgerEntries": [
          {
            "ledgerEntryReference": "string",
            "amount": 13025,
            "reason": "PAYMENT",
            "meta": {
              "sourceSystem": "system1"
            }
          }
        ]
      }
    ]
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": [
      {
        "accountReference": "ACCOUNT_REFERENCE_002",
        "ledgerEntries": [
          {
            "ledgerEntryReference": "string",
            "amount": 13025,
            "reason": "PAYMENT",
            "meta": {
              "sourceSystem": "system1"
            }
          }
        ]
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Request for update_account_ledger_entries_amounts is successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties any false none none

allOf

Name Type Required Restrictions Description
»» anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»»» success boolean true none Whether the action was accepted successfully
»»» messages [string] true none none
»»» messageIds [string] true none Identifier of the messages (used for tracing)

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» data [UpdateAccountLedgerEntriesAmountsInput] false none [Input for update_account_ledger_entries_amounts endpoint.]
»»»» accountReference AccountReference true none Account reference in your system
»»»» ledgerEntries [object] true none none
»»»»» ledgerEntryReference string true none Reference of the Ledger Entry (Invoice or Fee)
»»»»» amount integer true none Amount in cents
»»»»» reason string true none Reason for the amount update. Special values: PAYMENT creates a Payment Ledger Entry; CHARGEBACK creates a Chargeback Ledger Entry. Any other string (e.g. INVALID, WRITE_OFF) creates an Adjustment Ledger Entry.
»»»»» meta Metadata true none Additional information related to the entity.

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

getDebtorAccountsAndClaims

Code samples

# You can also use wget
curl -X GET /v1/{clientId}/get_debtor_accounts_and_claims?debtorReference=string \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

GET /v1/{clientId}/get_debtor_accounts_and_claims?debtorReference=string HTTP/1.1

Accept: application/json
Authorization: Bearer <access_token>


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/get_debtor_accounts_and_claims?debtorReference=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.get '/v1/{clientId}/get_debtor_accounts_and_claims',
  params: {
  'debtorReference' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('/v1/{clientId}/get_debtor_accounts_and_claims', params={
  'debtorReference': 'string'
}, headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/v1/{clientId}/get_debtor_accounts_and_claims', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/get_debtor_accounts_and_claims?debtorReference=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/v1/{clientId}/get_debtor_accounts_and_claims", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/{clientId}/get_debtor_accounts_and_claims

Retrieve all Accounts and their Claims for a given Debtor reference

The intention of the endpoint is to retrieve information about a debtor's accounts and claims.

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
debtorReference query string true Identifier of the debtor

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

[
  [
    {
      "accountReference": "ACCOUNT_REFERENCE_002",
      "meta": {
        "sourceSystem": "system1"
      },
      "paymentReference": "paymentReference1",
      "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
      "currency": "EUR",
      "claims": [
        {
          "amount": 13025,
          "currency": "EUR",
          "product": {
            "productReference": "PRODUCT_REFERENCE_1",
            "paymentReference": "paymentReference1",
            "type": "Computer",
            "name": "Macbook Pro",
            "code": "111-22222-3333",
            "meta": {
              "sourceSystem": "system1"
            }
          },
          "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
          "productReference": "PRODUCT_REFERENCE_1",
          "creditorReference": "string",
          "totalFees": 13025,
          "currentDueDate": "2019-06-28",
          "originalDueDate": "2019-06-28",
          "scores": [
            {
              "type": "INTERNAL",
              "value": "risky",
              "meta": {
                "sourceSystem": "system1"
              }
            }
          ],
          "reason": "string",
          "paymentReference": "paymentReference1",
          "accountNumber": "string",
          "accountReference": "ACCOUNT_REFERENCE_002",
          "meta": {
            "sourceSystem": "system1"
          },
          "fees": [
            {
              "name": "Interest",
              "amount": 13025
            }
          ],
          "linkGroupId": null,
          "primaryDebtor": {
            "birthday": "1980-06-28",
            "gender": "M",
            "firstName": "John",
            "lastName": "White",
            "middleName": "Benedict",
            "title": "Doctor",
            "companyName": "Acme Brick Co.",
            "debtorReference": "EXTERNAL_DEBTOR_REF_002",
            "SSN": "AAA-GG-SSSS",
            "type": "natural",
            "contactInformation": {
              "country": "DE",
              "city": "Delbrück",
              "mobileNumber": "+495555555555",
              "postalCode": 33129,
              "houseNumber": "24A",
              "addressLine1": "Boikweg 24",
              "addressLine2": "c/o Acme",
              "addressLine3": "first floor",
              "landLine": "+495555555555",
              "state": "Dortmund",
              "email": "testEmail@example.com",
              "additionalContactInformation": [
                {
                  "email": "testEmail@example.com"
                }
              ]
            }
          }
        }
      ],
      "debtors": [
        {
          "birthday": "1980-06-28",
          "gender": "M",
          "firstName": "John",
          "lastName": "White",
          "middleName": "Benedict",
          "title": "Doctor",
          "companyName": "Acme Brick Co.",
          "debtorReference": "EXTERNAL_DEBTOR_REF_002",
          "SSN": "AAA-GG-SSSS",
          "type": "natural",
          "contactInformation": {
            "country": "DE",
            "city": "Delbrück",
            "mobileNumber": "+495555555555",
            "postalCode": 33129,
            "houseNumber": "24A",
            "addressLine1": "Boikweg 24",
            "addressLine2": "c/o Acme",
            "addressLine3": "first floor",
            "landLine": "+495555555555",
            "state": "Dortmund",
            "email": "testEmail@example.com",
            "additionalContactInformation": [
              {
                "email": "testEmail@example.com"
              }
            ]
          }
        }
      ]
    }
  ]
]

Responses

Status Meaning Description Schema
200 OK Request for get_debtor_accounts_and_claims is successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [DebtorAccountsAndClaims] false none none

allOf

Name Type Required Restrictions Description
» anonymous object false none none
»» accountReference AccountReference true none Account reference in your system
»» meta Metadata false none Additional information related to the entity.
»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
»» portfolioReference PortfolioReference false none An optional grouping field for reporting and filtering purposes.
»» currency Currency true none 3-digit currency code (ISO 4217)

and

Name Type Required Restrictions Description
» anonymous object false none none
»» claims [allOf] true none none

allOf

Name Type Required Restrictions Description
»»» anonymous BaseClaim false none A claim is an outstanding payment that is owed. You can always update this balance if multiple payments are missed and you want to aggregate the amounts.
»»»» amount Amount false none Monetary value in cents (natural number)
»»»» currency Currency false none 3-digit currency code (ISO 4217)
»»»» product Product false none A product is a service or item used to give context to the Claim or Ledger Entry
»»»»» productReference ProductReference true none Identifier for a product in your system. It is used for grouping purposes.
»»»»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
»»»»» type string false none Type of product
»»»»» name string false none Product name
»»»»» code string false none Product code
»»»»» meta Metadata false none Additional information related to the entity.
»»»» portfolioReference PortfolioReference false none An optional grouping field for reporting and filtering purposes.
»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»» creditorReference string false none Reference of the person/company to whom money is owed
»»»» totalFees Amount false none Monetary value in cents (natural number)
»»»» currentDueDate DueDate(date) false none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
»»»» originalDueDate OriginalDueDate(date) false none Original due date in your system. This is the day when it went past due. DPD 0.
»»»» scores [ClaimScore] false none List of scores
»»»»» type string true none Type of score
»»»»» value any true none none

oneOf

Name Type Required Restrictions Description
»»»»»» anonymous string false none The score's value

xor

Name Type Required Restrictions Description
»»»»»» anonymous object false none composed value

xor

Name Type Required Restrictions Description
»»»»»» anonymous null false none No value

continued

Name Type Required Restrictions Description
»»»»» meta Metadata false none Additional information related to the entity.
»»»» reason string false none Reason for updating a claim (the reason must not be part of the Entity)
»»»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
»»»» accountNumber any false none none

allOf

Name Type Required Restrictions Description
»»»»» anonymous AccountReference false none Account reference in your system

and

Name Type Required Restrictions Description
»»»»» anonymous number false none Account number in your system (DEPRECATED, use accountReference)

continued

Name Type Required Restrictions Description
»»»» accountReference AccountReference false none Account reference in your system
»»»» meta Metadata false none Additional information related to the entity.
»»»» fees [Fee] false none List of fees. If neither fees nor totalFees are provided - we treat totalFees as 0. Using this field overwrites the totalFees value if you provided it as well.
»»»»» name string true none Name of the fee.
»»»»» amount Amount true none Monetary value in cents (natural number)
»»»» linkGroupId any false none Group id to link claims together

oneOf

Name Type Required Restrictions Description
»»»»» anonymous null false none none

xor

Name Type Required Restrictions Description
»»»»» anonymous string(uuid) false none none

continued

Name Type Required Restrictions Description
»»»» primaryDebtor BaseDebtor false none none
»»»»» birthday string(date) false none Birthday of the debtor
»»»»» gender string false none Gender of the debtor
»»»»» firstName string false none First name of the debtor (required if type is 'natural')
»»»»» lastName string false none Last name of the debtor (required if type is 'natural')
»»»»» middleName string false none Middle name of the debtor
»»»»» title string false none Title of the debtor
»»»»» companyName string false none Company Name of the debtor (required if type is 'legal')
»»»»» debtorReference DebtorReference false none Your customer ID for this person or company
»»»»» SSN string false none National Identification Number of the debtor
»»»»» type string false none Type of the debtor (default: natural)
»»»»» contactInformation BaseContactInformation false none none
»»»»»» country string false none 2-digit country code (ISO 3166-1). This is required for the localization and payment providers.
»»»»»» city string false none City
»»»»»» mobileNumber string false none Mobile number in E.164 format (e.g. +49555555555)
»»»»»» postalCode string false none Postal Code
»»»»»» houseNumber string false none House number as part of the address
»»»»»» addressLine1 string false none Address Line 1
»»»»»» addressLine2 string false none Address Line 2
»»»»»» addressLine3 string false none Address Line 3
»»»»»» landLine string false none Landline number in E.164 format (e.g. +49555555555)
»»»»»» state string false none State
»»»»»» email string false none Email Address
»»»»»» additionalContactInformation [oneOf] false none none

oneOf

Name Type Required Restrictions Description
»»»»»»» anonymous object false none none
»»»»»»»» email string true none Email Address

xor

Name Type Required Restrictions Description
»»»»»»» anonymous object false none none
»»»»»»»» mobileNumber string true none Mobile number in E.164 format (e.g. +49555555555)

xor

Name Type Required Restrictions Description
»»»»»»» anonymous object false none none
»»»»»»»» landLine string true none Landline number in E.164 format (e.g. +49555555555)

xor

Name Type Required Restrictions Description
»»»»»»» anonymous object false none none
»»»»»»»» workPhoneNumber string true none Work phone number in E.164 format (e.g. +49555555555)

and

Name Type Required Restrictions Description
»»» anonymous object false none none
»»»» primaryDebtor any true none The Debtor is the entity that owes the money. It can be a person (natural) or a company (legal).
Notes:
- If the debtor is a person (natural), then firstName and lastName are required.
- If the debtor is a company (legal), then companyName is required.

allOf

Name Type Required Restrictions Description
»»»»» anonymous BaseDebtor false none none

and

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» contactInformation any true none Contact information of the debtor, used for communication purposes.

allOf

Name Type Required Restrictions Description
»»»»»»» anonymous BaseContactInformation false none none

and

Name Type Required Restrictions Description
»»»»»»» anonymous object false none none

and

Name Type Required Restrictions Description
» anonymous object false none none
»» debtors [allOf] true none [The Debtor is the entity that owes the money. It can be a person (natural) or a company (legal).
Notes:
- If the debtor is a person (natural), then firstName and lastName are required.
- If the debtor is a company (legal), then companyName is required.
]

Enumerated Values

Property Value
type INTERNAL
type EXTERNAL
type COLLECTION
type BEHAVIORAL
type natural
type legal

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Claim

A Claim is an outstanding payment owed under an Account. Each Claim has an amount, currency, due dates, and a primary Debtor. Claims can be created directly or managed via the Ledger. They transition through states: Active (debt exists) and Resolved (debt no longer exists, e.g. paid, sold, or discarded).

createClaims

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/create_claims \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/create_claims HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '{
  "CLAIM_REF_002_1": {
    "amount": 1000,
    "currency": "EUR",
    "currentDueDate": "2019-02-15",
    "originalDueDate": "2019-09-09",
    "productReference": "PRODUCT_REFERENCE_002",
    "accountReference": "ACCOUNT_REFERENCE_002",
    "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
    "totalFees": 0,
    "primaryDebtor": {
      "debtorReference": "EXTERNAL_DEBTOR_REF_002",
      "firstName": "F_N",
      "lastName": "L_N",
      "contactInformation": {
        "country": "DE",
        "email": "first.last@acme.com"
      }
    },
    "meta": {}
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/create_claims',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/create_claims',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/create_claims', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/create_claims', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/create_claims");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/create_claims", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/create_claims

Create new Claims in Receeve (fails if Claim already exists)

The intetion of this endpoint is to create Claims in Receeve. Notes: - This endpoint throws an error if the Claim already exists (even if it was previously deleted). Use recreate_claims to reopen a deleted Claim, or import_claims for an upsert (create-or-update) behaviour. - Claims created with this endpoint are not managed by the Ledger. To create Ledger-managed Claims, use add_account_ledger_entries instead. - The request body is a map where each key is your claimReference and the value is the Claim object. Required fields: amount, currency, currentDueDate, originalDueDate, accountReference, primaryDebtor.

Body parameter

{
  "CLAIM_REF_002_1": {
    "amount": 1000,
    "currency": "EUR",
    "currentDueDate": "2019-02-15",
    "originalDueDate": "2019-09-09",
    "productReference": "PRODUCT_REFERENCE_002",
    "accountReference": "ACCOUNT_REFERENCE_002",
    "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
    "totalFees": 0,
    "primaryDebtor": {
      "debtorReference": "EXTERNAL_DEBTOR_REF_002",
      "firstName": "F_N",
      "lastName": "L_N",
      "contactInformation": {
        "country": "DE",
        "email": "first.last@acme.com"
      }
    },
    "meta": {}
  }
}

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
sequential query boolean false The request body items are executed one after another one
async query boolean false The request is added to the queue without expecting the response
body body object true none
» additionalProperties body any false Input for create_claims endpoint.

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": {
      "amount": 13025,
      "currency": "EUR",
      "product": {
        "productReference": "PRODUCT_REFERENCE_1",
        "paymentReference": "paymentReference1",
        "type": "Computer",
        "name": "Macbook Pro",
        "code": "111-22222-3333",
        "meta": {
          "sourceSystem": "system1"
        }
      },
      "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
      "productReference": "PRODUCT_REFERENCE_1",
      "creditorReference": "string",
      "totalFees": 13025,
      "currentDueDate": "2019-06-28",
      "originalDueDate": "2019-06-28",
      "scores": [
        {
          "type": "INTERNAL",
          "value": "risky",
          "meta": {
            "sourceSystem": "system1"
          }
        }
      ],
      "reason": "string",
      "paymentReference": "paymentReference1",
      "accountNumber": "string",
      "accountReference": "ACCOUNT_REFERENCE_002",
      "meta": {
        "sourceSystem": "system1"
      },
      "fees": [
        {
          "name": "Interest",
          "amount": 13025
        }
      ],
      "linkGroupId": null,
      "primaryDebtor": {
        "birthday": "1980-06-28",
        "gender": "M",
        "firstName": "John",
        "lastName": "White",
        "middleName": "Benedict",
        "title": "Doctor",
        "companyName": "Acme Brick Co.",
        "debtorReference": "EXTERNAL_DEBTOR_REF_002",
        "SSN": "AAA-GG-SSSS",
        "type": "natural",
        "contactInformation": {
          "country": "DE",
          "city": "Delbrück",
          "mobileNumber": "+495555555555",
          "postalCode": 33129,
          "houseNumber": "24A",
          "addressLine1": "Boikweg 24",
          "addressLine2": "c/o Acme",
          "addressLine3": "first floor",
          "landLine": "+495555555555",
          "state": "Dortmund",
          "email": "testEmail@example.com",
          "additionalContactInformation": [
            {
              "email": "testEmail@example.com"
            }
          ]
        }
      }
    }
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": {
      "amount": 13025,
      "currency": "EUR",
      "product": {
        "productReference": "PRODUCT_REFERENCE_1",
        "paymentReference": "paymentReference1",
        "type": "Computer",
        "name": "Macbook Pro",
        "code": "111-22222-3333",
        "meta": {
          "sourceSystem": "system1"
        }
      },
      "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
      "productReference": "PRODUCT_REFERENCE_1",
      "creditorReference": "string",
      "totalFees": 13025,
      "currentDueDate": "2019-06-28",
      "originalDueDate": "2019-06-28",
      "scores": [
        {
          "type": "INTERNAL",
          "value": "risky",
          "meta": {
            "sourceSystem": "system1"
          }
        }
      ],
      "reason": "string",
      "paymentReference": "paymentReference1",
      "accountNumber": "string",
      "accountReference": "ACCOUNT_REFERENCE_002",
      "meta": {
        "sourceSystem": "system1"
      },
      "fees": [
        {
          "name": "Interest",
          "amount": 13025
        }
      ],
      "linkGroupId": null,
      "primaryDebtor": {
        "birthday": "1980-06-28",
        "gender": "M",
        "firstName": "John",
        "lastName": "White",
        "middleName": "Benedict",
        "title": "Doctor",
        "companyName": "Acme Brick Co.",
        "debtorReference": "EXTERNAL_DEBTOR_REF_002",
        "SSN": "AAA-GG-SSSS",
        "type": "natural",
        "contactInformation": {
          "country": "DE",
          "city": "Delbrück",
          "mobileNumber": "+495555555555",
          "postalCode": 33129,
          "houseNumber": "24A",
          "addressLine1": "Boikweg 24",
          "addressLine2": "c/o Acme",
          "addressLine3": "first floor",
          "landLine": "+495555555555",
          "state": "Dortmund",
          "email": "testEmail@example.com",
          "additionalContactInformation": [
            {
              "email": "testEmail@example.com"
            }
          ]
        }
      }
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Response of creating a set of claims Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties any false none none

allOf

Name Type Required Restrictions Description
»» anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»»» success boolean true none Whether the action was accepted successfully
»»» messages [string] true none none
»»» messageIds [string] true none Identifier of the messages (used for tracing)

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» data any false none Used when creating or importing claims

allOf

Name Type Required Restrictions Description
»»»» anonymous BaseClaim false none A claim is an outstanding payment that is owed. You can always update this balance if multiple payments are missed and you want to aggregate the amounts.
»»»»» amount Amount false none Monetary value in cents (natural number)
»»»»» currency Currency false none 3-digit currency code (ISO 4217)
»»»»» product Product false none A product is a service or item used to give context to the Claim or Ledger Entry
»»»»»» productReference ProductReference true none Identifier for a product in your system. It is used for grouping purposes.
»»»»»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
»»»»»» type string false none Type of product
»»»»»» name string false none Product name
»»»»»» code string false none Product code
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» portfolioReference PortfolioReference false none An optional grouping field for reporting and filtering purposes.
»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»» creditorReference string false none Reference of the person/company to whom money is owed
»»»»» totalFees Amount false none Monetary value in cents (natural number)
»»»»» currentDueDate DueDate(date) false none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
»»»»» originalDueDate OriginalDueDate(date) false none Original due date in your system. This is the day when it went past due. DPD 0.
»»»»» scores [ClaimScore] false none List of scores
»»»»»» type string true none Type of score
»»»»»» value any true none none

oneOf

Name Type Required Restrictions Description
»»»»»»» anonymous string false none The score's value

xor

Name Type Required Restrictions Description
»»»»»»» anonymous object false none composed value

xor

Name Type Required Restrictions Description
»»»»»»» anonymous null false none No value

continued

Name Type Required Restrictions Description
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» reason string false none Reason for updating a claim (the reason must not be part of the Entity)
»»»»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
»»»»» accountNumber any false none none

allOf

Name Type Required Restrictions Description
»»»»»» anonymous AccountReference false none Account reference in your system

and

Name Type Required Restrictions Description
»»»»»» anonymous number false none Account number in your system (DEPRECATED, use accountReference)

continued

Name Type Required Restrictions Description
»»»»» accountReference AccountReference false none Account reference in your system
»»»»» meta Metadata false none Additional information related to the entity.
»»»»» fees [Fee] false none List of fees. If neither fees nor totalFees are provided - we treat totalFees as 0. Using this field overwrites the totalFees value if you provided it as well.
»»»»»» name string true none Name of the fee.
»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»» linkGroupId any false none Group id to link claims together

oneOf

Name Type Required Restrictions Description
»»»»»» anonymous null false none none

xor

Name Type Required Restrictions Description
»»»»»» anonymous string(uuid) false none none

continued

Name Type Required Restrictions Description
»»»»» primaryDebtor BaseDebtor false none none
»»»»»» birthday string(date) false none Birthday of the debtor
»»»»»» gender string false none Gender of the debtor
»»»»»» firstName string false none First name of the debtor (required if type is 'natural')
»»»»»» lastName string false none Last name of the debtor (required if type is 'natural')
»»»»»» middleName string false none Middle name of the debtor
»»»»»» title string false none Title of the debtor
»»»»»» companyName string false none Company Name of the debtor (required if type is 'legal')
»»»»»» debtorReference DebtorReference false none Your customer ID for this person or company
»»»»»» SSN string false none National Identification Number of the debtor
»»»»»» type string false none Type of the debtor (default: natural)
»»»»»» contactInformation BaseContactInformation false none none
»»»»»»» country string false none 2-digit country code (ISO 3166-1). This is required for the localization and payment providers.
»»»»»»» city string false none City
»»»»»»» mobileNumber string false none Mobile number in E.164 format (e.g. +49555555555)
»»»»»»» postalCode string false none Postal Code
»»»»»»» houseNumber string false none House number as part of the address
»»»»»»» addressLine1 string false none Address Line 1
»»»»»»» addressLine2 string false none Address Line 2
»»»»»»» addressLine3 string false none Address Line 3
»»»»»»» landLine string false none Landline number in E.164 format (e.g. +49555555555)
»»»»»»» state string false none State
»»»»»»» email string false none Email Address
»»»»»»» additionalContactInformation [oneOf] false none none

oneOf

Name Type Required Restrictions Description
»»»»»»»» anonymous object false none none
»»»»»»»»» email string true none Email Address

xor

Name Type Required Restrictions Description
»»»»»»»» anonymous object false none none
»»»»»»»»» mobileNumber string true none Mobile number in E.164 format (e.g. +49555555555)

xor

Name Type Required Restrictions Description
»»»»»»»» anonymous object false none none
»»»»»»»»» landLine string true none Landline number in E.164 format (e.g. +49555555555)

xor

Name Type Required Restrictions Description
»»»»»»»» anonymous object false none none
»»»»»»»»» workPhoneNumber string true none Work phone number in E.164 format (e.g. +49555555555)

and

Name Type Required Restrictions Description
»»»» anonymous object false none none
»»»»» originalDueDate OriginalDueDate(date) true none Original due date in your system. This is the day when it went past due. DPD 0.
»»»»» currentDueDate DueDate(date) true none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.

and

Name Type Required Restrictions Description
»»»» anonymous any false none none

anyOf

Name Type Required Restrictions Description
»»»»» anonymous object false none The accountReference is optional, but primaryDebtor and currency are required
»»»»»» primaryDebtor any true none The Debtor is the entity that owes the money. It can be a person (natural) or a company (legal).
Notes:
- If the debtor is a person (natural), then firstName and lastName are required.
- If the debtor is a company (legal), then companyName is required.

allOf

Name Type Required Restrictions Description
»»»»»»» anonymous BaseDebtor false none none

and

Name Type Required Restrictions Description
»»»»»»» anonymous object false none none
»»»»»»»» contactInformation any true none Contact information of the debtor, used for communication purposes.

allOf

Name Type Required Restrictions Description
»»»»»»»»» anonymous BaseContactInformation false none none

and

Name Type Required Restrictions Description
»»»»»»»»» anonymous object false none none

or

Name Type Required Restrictions Description
»»»»» anonymous object false none The primaryDebtor and the currency of the Account is used if not specified in the Claim

Enumerated Values

Property Value
type INTERNAL
type EXTERNAL
type COLLECTION
type BEHAVIORAL
type natural
type legal

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

recreateClaims

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/recreate_claims \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/recreate_claims HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '{
  "CLAIM_REF_002_1": {
    "amount": 1000,
    "currency": "EUR",
    "currentDueDate": "2019-02-15",
    "originalDueDate": "2019-09-09",
    "productReference": "PRODUCT_REFERENCE_002",
    "accountReference": "ACCOUNT_REFERENCE_002",
    "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
    "totalFees": 0,
    "primaryDebtor": {
      "debtorReference": "EXTERNAL_DEBTOR_REF_002",
      "firstName": "F_N",
      "lastName": "L_N",
      "contactInformation": {
        "country": "DE",
        "email": "first.last@acme.com"
      }
    },
    "meta": {}
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/recreate_claims',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/recreate_claims',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/recreate_claims', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/recreate_claims', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/recreate_claims");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/recreate_claims", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/recreate_claims

Reopen previously deleted Claims and restart their collection lifecycle

The intetion of this endpoint is to recreate Claims in Receeve. Notes: - This endpoint throws an error if the Claim is not in a deleted state. Use create_claims for brand-new Claims that have never existed. - Recreated Claims are not managed by the Ledger. - Recreating a Claim restarts its entire lifecycle, including the Collections Strategy — the strategy will begin from the first step again as if the Claim were new. - The request body is a map where each key is the claimReference and the value is the full Claim object (same schema as create_claims). Required fields per Claim: amount, currency, currentDueDate, originalDueDate, and either (primaryDebtor + currency) or accountReference.

Body parameter

{
  "CLAIM_REF_002_1": {
    "amount": 1000,
    "currency": "EUR",
    "currentDueDate": "2019-02-15",
    "originalDueDate": "2019-09-09",
    "productReference": "PRODUCT_REFERENCE_002",
    "accountReference": "ACCOUNT_REFERENCE_002",
    "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
    "totalFees": 0,
    "primaryDebtor": {
      "debtorReference": "EXTERNAL_DEBTOR_REF_002",
      "firstName": "F_N",
      "lastName": "L_N",
      "contactInformation": {
        "country": "DE",
        "email": "first.last@acme.com"
      }
    },
    "meta": {}
  }
}

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
sequential query boolean false The request body items are executed one after another one
async query boolean false The request is added to the queue without expecting the response
body body object true none
» additionalProperties body any false Used when creating or importing claims
»» anonymous body BaseClaim false A claim is an outstanding payment that is owed. You can always update this balance if multiple payments are missed and you want to aggregate the amounts.
»»» amount body Amount false Monetary value in cents (natural number)
»»» currency body Currency false 3-digit currency code (ISO 4217)
»»» product body Product false A product is a service or item used to give context to the Claim or Ledger Entry
»»»» productReference body ProductReference true Identifier for a product in your system. It is used for grouping purposes.
»»»» paymentReference body PaymentReference false Payment reference used in online transactions.
»»»» type body string false Type of product
»»»» name body string false Product name
»»»» code body string false Product code
»»»» meta body Metadata false Additional information related to the entity.
»»» portfolioReference body PortfolioReference false An optional grouping field for reporting and filtering purposes.
»»» productReference body ProductReference false Identifier for a product in your system. It is used for grouping purposes.
»»» creditorReference body string false Reference of the person/company to whom money is owed
»»» totalFees body Amount false Monetary value in cents (natural number)
»»» currentDueDate body DueDate(date) false Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
»»» originalDueDate body OriginalDueDate(date) false Original due date in your system. This is the day when it went past due. DPD 0.
»»» scores body [ClaimScore] false List of scores
»»»» type body string true Type of score
»»»» value body any true none
»»»»» anonymous body string false The score's value
»»»»» anonymous body object false composed value
»»»»» anonymous body null false No value
»»»» meta body Metadata false Additional information related to the entity.
»»» reason body string false Reason for updating a claim (the reason must not be part of the Entity)
»»» paymentReference body PaymentReference false Payment reference used in online transactions.
»»» accountNumber body any false none
»»»» anonymous body AccountReference false Account reference in your system
»»»» anonymous body number false Account number in your system (DEPRECATED, use accountReference)
»»» accountReference body AccountReference false Account reference in your system
»»» meta body Metadata false Additional information related to the entity.
»»» fees body [Fee] false List of fees. If neither fees nor totalFees are provided - we treat totalFees as 0. Using this field overwrites the totalFees value if you provided it as well.
»»»» name body string true Name of the fee.
»»»» amount body Amount true Monetary value in cents (natural number)
»»» linkGroupId body any false Group id to link claims together
»»»» anonymous body null false none
»»»» anonymous body string(uuid) false none
»»» primaryDebtor body BaseDebtor false none
»»»» birthday body string(date) false Birthday of the debtor
»»»» gender body string false Gender of the debtor
»»»» firstName body string false First name of the debtor (required if type is 'natural')
»»»» lastName body string false Last name of the debtor (required if type is 'natural')
»»»» middleName body string false Middle name of the debtor
»»»» title body string false Title of the debtor
»»»» companyName body string false Company Name of the debtor (required if type is 'legal')
»»»» debtorReference body DebtorReference false Your customer ID for this person or company
»»»» SSN body string false National Identification Number of the debtor
»»»» type body string false Type of the debtor (default: natural)
»»»» contactInformation body BaseContactInformation false none
»»»»» country body string false 2-digit country code (ISO 3166-1). This is required for the localization and payment providers.
»»»»» city body string false City
»»»»» mobileNumber body string false Mobile number in E.164 format (e.g. +49555555555)
»»»»» postalCode body string false Postal Code
»»»»» houseNumber body string false House number as part of the address
»»»»» addressLine1 body string false Address Line 1
»»»»» addressLine2 body string false Address Line 2
»»»»» addressLine3 body string false Address Line 3
»»»»» landLine body string false Landline number in E.164 format (e.g. +49555555555)
»»»»» state body string false State
»»»»» email body string false Email Address
»»»»» additionalContactInformation body [oneOf] false none
»»»»»» anonymous body object false none
»»»»»»» email body string true Email Address
»»»»»» anonymous body object false none
»»»»»»» mobileNumber body string true Mobile number in E.164 format (e.g. +49555555555)
»»»»»» anonymous body object false none
»»»»»»» landLine body string true Landline number in E.164 format (e.g. +49555555555)
»»»»»» anonymous body object false none
»»»»»»» workPhoneNumber body string true Work phone number in E.164 format (e.g. +49555555555)
»» anonymous body object false none
»»» originalDueDate body OriginalDueDate(date) true Original due date in your system. This is the day when it went past due. DPD 0.
»»» currentDueDate body DueDate(date) true Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
»» anonymous body any false none
»»» anonymous body object false The accountReference is optional, but primaryDebtor and currency are required
»»»» primaryDebtor body any true The Debtor is the entity that owes the money. It can be a person (natural) or a company (legal).
»»»»» anonymous body BaseDebtor false none
»»»»» anonymous body object false none
»»»»»» contactInformation body any true Contact information of the debtor, used for communication purposes.
»»»»»»» anonymous body BaseContactInformation false none
»»»»»»» anonymous body object false none
»»» anonymous body object false The primaryDebtor and the currency of the Account is used if not specified in the Claim

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

»»»» paymentReference: Payment reference used in online transactions. It is a text reference that can be used to map the money transactions to other external systems.

»»» paymentReference: Payment reference used in online transactions. It is a text reference that can be used to map the money transactions to other external systems.

»»»» primaryDebtor: The Debtor is the entity that owes the money. It can be a person (natural) or a company (legal). Notes: - If the debtor is a person (natural), then firstName and lastName are required. - If the debtor is a company (legal), then companyName is required.

Enumerated Values

Parameter Value
»»»» type INTERNAL
»»»» type EXTERNAL
»»»» type COLLECTION
»»»» type BEHAVIORAL
»»»» type natural
»»»» type legal

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": {
      "amount": 13025,
      "currency": "EUR",
      "product": {
        "productReference": "PRODUCT_REFERENCE_1",
        "paymentReference": "paymentReference1",
        "type": "Computer",
        "name": "Macbook Pro",
        "code": "111-22222-3333",
        "meta": {
          "sourceSystem": "system1"
        }
      },
      "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
      "productReference": "PRODUCT_REFERENCE_1",
      "creditorReference": "string",
      "totalFees": 13025,
      "currentDueDate": "2019-06-28",
      "originalDueDate": "2019-06-28",
      "scores": [
        {
          "type": "INTERNAL",
          "value": "risky",
          "meta": {
            "sourceSystem": "system1"
          }
        }
      ],
      "reason": "string",
      "paymentReference": "paymentReference1",
      "accountNumber": "string",
      "accountReference": "ACCOUNT_REFERENCE_002",
      "meta": {
        "sourceSystem": "system1"
      },
      "fees": [
        {
          "name": "Interest",
          "amount": 13025
        }
      ],
      "linkGroupId": null,
      "primaryDebtor": {
        "birthday": "1980-06-28",
        "gender": "M",
        "firstName": "John",
        "lastName": "White",
        "middleName": "Benedict",
        "title": "Doctor",
        "companyName": "Acme Brick Co.",
        "debtorReference": "EXTERNAL_DEBTOR_REF_002",
        "SSN": "AAA-GG-SSSS",
        "type": "natural",
        "contactInformation": {
          "country": "DE",
          "city": "Delbrück",
          "mobileNumber": "+495555555555",
          "postalCode": 33129,
          "houseNumber": "24A",
          "addressLine1": "Boikweg 24",
          "addressLine2": "c/o Acme",
          "addressLine3": "first floor",
          "landLine": "+495555555555",
          "state": "Dortmund",
          "email": "testEmail@example.com",
          "additionalContactInformation": [
            {
              "email": "testEmail@example.com"
            }
          ]
        }
      }
    }
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": {
      "amount": 13025,
      "currency": "EUR",
      "product": {
        "productReference": "PRODUCT_REFERENCE_1",
        "paymentReference": "paymentReference1",
        "type": "Computer",
        "name": "Macbook Pro",
        "code": "111-22222-3333",
        "meta": {
          "sourceSystem": "system1"
        }
      },
      "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
      "productReference": "PRODUCT_REFERENCE_1",
      "creditorReference": "string",
      "totalFees": 13025,
      "currentDueDate": "2019-06-28",
      "originalDueDate": "2019-06-28",
      "scores": [
        {
          "type": "INTERNAL",
          "value": "risky",
          "meta": {
            "sourceSystem": "system1"
          }
        }
      ],
      "reason": "string",
      "paymentReference": "paymentReference1",
      "accountNumber": "string",
      "accountReference": "ACCOUNT_REFERENCE_002",
      "meta": {
        "sourceSystem": "system1"
      },
      "fees": [
        {
          "name": "Interest",
          "amount": 13025
        }
      ],
      "linkGroupId": null,
      "primaryDebtor": {
        "birthday": "1980-06-28",
        "gender": "M",
        "firstName": "John",
        "lastName": "White",
        "middleName": "Benedict",
        "title": "Doctor",
        "companyName": "Acme Brick Co.",
        "debtorReference": "EXTERNAL_DEBTOR_REF_002",
        "SSN": "AAA-GG-SSSS",
        "type": "natural",
        "contactInformation": {
          "country": "DE",
          "city": "Delbrück",
          "mobileNumber": "+495555555555",
          "postalCode": 33129,
          "houseNumber": "24A",
          "addressLine1": "Boikweg 24",
          "addressLine2": "c/o Acme",
          "addressLine3": "first floor",
          "landLine": "+495555555555",
          "state": "Dortmund",
          "email": "testEmail@example.com",
          "additionalContactInformation": [
            {
              "email": "testEmail@example.com"
            }
          ]
        }
      }
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Response of recreating a set of claims Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties any false none none

allOf

Name Type Required Restrictions Description
»» anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»»» success boolean true none Whether the action was accepted successfully
»»» messages [string] true none none
»»» messageIds [string] true none Identifier of the messages (used for tracing)

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» data any false none Used when creating or importing claims

allOf

Name Type Required Restrictions Description
»»»» anonymous BaseClaim false none A claim is an outstanding payment that is owed. You can always update this balance if multiple payments are missed and you want to aggregate the amounts.
»»»»» amount Amount false none Monetary value in cents (natural number)
»»»»» currency Currency false none 3-digit currency code (ISO 4217)
»»»»» product Product false none A product is a service or item used to give context to the Claim or Ledger Entry
»»»»»» productReference ProductReference true none Identifier for a product in your system. It is used for grouping purposes.
»»»»»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
»»»»»» type string false none Type of product
»»»»»» name string false none Product name
»»»»»» code string false none Product code
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» portfolioReference PortfolioReference false none An optional grouping field for reporting and filtering purposes.
»»»»» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
»»»»» creditorReference string false none Reference of the person/company to whom money is owed
»»»»» totalFees Amount false none Monetary value in cents (natural number)
»»»»» currentDueDate DueDate(date) false none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
»»»»» originalDueDate OriginalDueDate(date) false none Original due date in your system. This is the day when it went past due. DPD 0.
»»»»» scores [ClaimScore] false none List of scores
»»»»»» type string true none Type of score
»»»»»» value any true none none

oneOf

Name Type Required Restrictions Description
»»»»»»» anonymous string false none The score's value

xor

Name Type Required Restrictions Description
»»»»»»» anonymous object false none composed value

xor

Name Type Required Restrictions Description
»»»»»»» anonymous null false none No value

continued

Name Type Required Restrictions Description
»»»»»» meta Metadata false none Additional information related to the entity.
»»»»» reason string false none Reason for updating a claim (the reason must not be part of the Entity)
»»»»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
»»»»» accountNumber any false none none

allOf

Name Type Required Restrictions Description
»»»»»» anonymous AccountReference false none Account reference in your system

and

Name Type Required Restrictions Description
»»»»»» anonymous number false none Account number in your system (DEPRECATED, use accountReference)

continued

Name Type Required Restrictions Description
»»»»» accountReference AccountReference false none Account reference in your system
»»»»» meta Metadata false none Additional information related to the entity.
»»»»» fees [Fee] false none List of fees. If neither fees nor totalFees are provided - we treat totalFees as 0. Using this field overwrites the totalFees value if you provided it as well.
»»»»»» name string true none Name of the fee.
»»»»»» amount Amount true none Monetary value in cents (natural number)
»»»»» linkGroupId any false none Group id to link claims together

oneOf

Name Type Required Restrictions Description
»»»»»» anonymous null false none none

xor

Name Type Required Restrictions Description
»»»»»» anonymous string(uuid) false none none

continued

Name Type Required Restrictions Description
»»»»» primaryDebtor BaseDebtor false none none
»»»»»» birthday string(date) false none Birthday of the debtor
»»»»»» gender string false none Gender of the debtor
»»»»»» firstName string false none First name of the debtor (required if type is 'natural')
»»»»»» lastName string false none Last name of the debtor (required if type is 'natural')
»»»»»» middleName string false none Middle name of the debtor
»»»»»» title string false none Title of the debtor
»»»»»» companyName string false none Company Name of the debtor (required if type is 'legal')
»»»»»» debtorReference DebtorReference false none Your customer ID for this person or company
»»»»»» SSN string false none National Identification Number of the debtor
»»»»»» type string false none Type of the debtor (default: natural)
»»»»»» contactInformation BaseContactInformation false none none
»»»»»»» country string false none 2-digit country code (ISO 3166-1). This is required for the localization and payment providers.
»»»»»»» city string false none City
»»»»»»» mobileNumber string false none Mobile number in E.164 format (e.g. +49555555555)
»»»»»»» postalCode string false none Postal Code
»»»»»»» houseNumber string false none House number as part of the address
»»»»»»» addressLine1 string false none Address Line 1
»»»»»»» addressLine2 string false none Address Line 2
»»»»»»» addressLine3 string false none Address Line 3
»»»»»»» landLine string false none Landline number in E.164 format (e.g. +49555555555)
»»»»»»» state string false none State
»»»»»»» email string false none Email Address
»»»»»»» additionalContactInformation [oneOf] false none none

oneOf

Name Type Required Restrictions Description
»»»»»»»» anonymous object false none none
»»»»»»»»» email string true none Email Address

xor

Name Type Required Restrictions Description
»»»»»»»» anonymous object false none none
»»»»»»»»» mobileNumber string true none Mobile number in E.164 format (e.g. +49555555555)

xor

Name Type Required Restrictions Description
»»»»»»»» anonymous object false none none
»»»»»»»»» landLine string true none Landline number in E.164 format (e.g. +49555555555)

xor

Name Type Required Restrictions Description
»»»»»»»» anonymous object false none none
»»»»»»»»» workPhoneNumber string true none Work phone number in E.164 format (e.g. +49555555555)

and

Name Type Required Restrictions Description
»»»» anonymous object false none none
»»»»» originalDueDate OriginalDueDate(date) true none Original due date in your system. This is the day when it went past due. DPD 0.
»»»»» currentDueDate DueDate(date) true none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.

and

Name Type Required Restrictions Description
»»»» anonymous any false none none

anyOf

Name Type Required Restrictions Description
»»»»» anonymous object false none The accountReference is optional, but primaryDebtor and currency are required
»»»»»» primaryDebtor any true none The Debtor is the entity that owes the money. It can be a person (natural) or a company (legal).
Notes:
- If the debtor is a person (natural), then firstName and lastName are required.
- If the debtor is a company (legal), then companyName is required.

allOf

Name Type Required Restrictions Description
»»»»»»» anonymous BaseDebtor false none none

and

Name Type Required Restrictions Description
»»»»»»» anonymous object false none none
»»»»»»»» contactInformation any true none Contact information of the debtor, used for communication purposes.

allOf

Name Type Required Restrictions Description
»»»»»»»»» anonymous BaseContactInformation false none none

and

Name Type Required Restrictions Description
»»»»»»»»» anonymous object false none none

or

Name Type Required Restrictions Description
»»»»» anonymous object false none The primaryDebtor and the currency of the Account is used if not specified in the Claim

Enumerated Values

Property Value
type INTERNAL
type EXTERNAL
type COLLECTION
type BEHAVIORAL
type natural
type legal

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

updateClaims

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/update_claims \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/update_claims HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '{
  "CLAIM_REF_002_1": {
    "amount": 5000
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/update_claims',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/update_claims',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/update_claims', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/update_claims', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/update_claims");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/update_claims", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/update_claims

Partially update existing Claims (fails if Claim does not exist)

The intetion of this endpoint is to update existing Claims in Receeve. Notes: - This endpoint throws an error if the Claim does not exist. Use import_claims for upsert behaviour (create-or-update). - Claims updated with this endpoint are not managed by the Ledger. To update the amounts of Ledger-managed Claims, use update_account_ledger_entries_amounts instead. - The payload uses the same schema as create_claims but all fields are optional — only the fields present in the request will be updated. - The optional forceAmountCheck query parameter, when true, forces the claim status to be re-evaluated after an amount update.

Body parameter

{
  "CLAIM_REF_002_1": {
    "amount": 5000
  }
}

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
sequential query boolean false The request body items are executed one after another one
async query boolean false The request is added to the queue without expecting the response
forceAmountCheck query boolean false When true, forces re-evaluation of the Claim status after an amount update (e.g. to auto-resolve a Claim whose amount has been set to zero). Defaults to false.
body body object true none
» additionalProperties body any false Input for update_claims endpoint.
»» anonymous body BaseClaim false A claim is an outstanding payment that is owed. You can always update this balance if multiple payments are missed and you want to aggregate the amounts.
»»» amount body Amount false Monetary value in cents (natural number)
»»» currency body Currency false 3-digit currency code (ISO 4217)
»»» product body Product false A product is a service or item used to give context to the Claim or Ledger Entry
»»»» productReference body ProductReference true Identifier for a product in your system. It is used for grouping purposes.
»»»» paymentReference body PaymentReference false Payment reference used in online transactions.
»»»» type body string false Type of product
»»»» name body string false Product name
»»»» code body string false Product code
»»»» meta body Metadata false Additional information related to the entity.
»»» portfolioReference body PortfolioReference false An optional grouping field for reporting and filtering purposes.
»»» productReference body ProductReference false Identifier for a product in your system. It is used for grouping purposes.
»»» creditorReference body string false Reference of the person/company to whom money is owed
»»» totalFees body Amount false Monetary value in cents (natural number)
»»» currentDueDate body DueDate(date) false Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
»»» originalDueDate body OriginalDueDate(date) false Original due date in your system. This is the day when it went past due. DPD 0.
»»» scores body [ClaimScore] false List of scores
»»»» type body string true Type of score
»»»» value body any true none
»»»»» anonymous body string false The score's value
»»»»» anonymous body object false composed value
»»»»» anonymous body null false No value
»»»» meta body Metadata false Additional information related to the entity.
»»» reason body string false Reason for updating a claim (the reason must not be part of the Entity)
»»» paymentReference body PaymentReference false Payment reference used in online transactions.
»»» accountNumber body any false none
»»»» anonymous body AccountReference false Account reference in your system
»»»» anonymous body number false Account number in your system (DEPRECATED, use accountReference)
»»» accountReference body AccountReference false Account reference in your system
»»» meta body Metadata false Additional information related to the entity.
»»» fees body [Fee] false List of fees. If neither fees nor totalFees are provided - we treat totalFees as 0. Using this field overwrites the totalFees value if you provided it as well.
»»»» name body string true Name of the fee.
»»»» amount body Amount true Monetary value in cents (natural number)
»»» linkGroupId body any false Group id to link claims together
»»»» anonymous body null false none
»»»» anonymous body string(uuid) false none
»»» primaryDebtor body BaseDebtor false none
»»»» birthday body string(date) false Birthday of the debtor
»»»» gender body string false Gender of the debtor
»»»» firstName body string false First name of the debtor (required if type is 'natural')
»»»» lastName body string false Last name of the debtor (required if type is 'natural')
»»»» middleName body string false Middle name of the debtor
»»»» title body string false Title of the debtor
»»»» companyName body string false Company Name of the debtor (required if type is 'legal')
»»»» debtorReference body DebtorReference false Your customer ID for this person or company
»»»» SSN body string false National Identification Number of the debtor
»»»» type body string false Type of the debtor (default: natural)
»»»» contactInformation body BaseContactInformation false none
»»»»» country body string false 2-digit country code (ISO 3166-1). This is required for the localization and payment providers.
»»»»» city body string false City
»»»»» mobileNumber body string false Mobile number in E.164 format (e.g. +49555555555)
»»»»» postalCode body string false Postal Code
»»»»» houseNumber body string false House number as part of the address
»»»»» addressLine1 body string false Address Line 1
»»»»» addressLine2 body string false Address Line 2
»»»»» addressLine3 body string false Address Line 3
»»»»» landLine body string false Landline number in E.164 format (e.g. +49555555555)
»»»»» state body string false State
»»»»» email body string false Email Address
»»»»» additionalContactInformation body [oneOf] false none
»»»»»» anonymous body object false none
»»»»»»» email body string true Email Address
»»»»»» anonymous body object false none
»»»»»»» mobileNumber body string true Mobile number in E.164 format (e.g. +49555555555)
»»»»»» anonymous body object false none
»»»»»»» landLine body string true Landline number in E.164 format (e.g. +49555555555)
»»»»»» anonymous body object false none
»»»»»»» workPhoneNumber body string true Work phone number in E.164 format (e.g. +49555555555)
»» anonymous body object false Additional modifiers when updating claims
»»» options body object false none
»»»» forceAmountCheck body boolean false When true, forces re-evaluation of the Claim status after an amount update (e.g. to auto-resolve a Claim whose amount has been set to zero).

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

»»»» paymentReference: Payment reference used in online transactions. It is a text reference that can be used to map the money transactions to other external systems.

»»» paymentReference: Payment reference used in online transactions. It is a text reference that can be used to map the money transactions to other external systems.

Enumerated Values

Parameter Value
»»»» type INTERNAL
»»»» type EXTERNAL
»»»» type COLLECTION
»»»» type BEHAVIORAL
»»»» type natural
»»»» type legal

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Request was successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»» success boolean true none Whether the action was accepted successfully
»» messages [string] true none none
»» messageIds [string] true none Identifier of the messages (used for tracing)

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

importClaims

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/import_claims \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/import_claims HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '{
  "API_CLAIM_REF_002": {
    "amount": 3002,
    "totalFees": 40,
    "currency": "EUR",
    "currentDueDate": "2019-02-15",
    "originalDueDate": "2019-09-09",
    "productReference": "PRODUCT_REFERENCE_002",
    "accountReference": "ACCOUNT_REFERENCE_002",
    "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
    "primaryDebtor": {
      "debtorReference": "EXTERNAL_DEBTOR_REF_002",
      "firstName": "F_N",
      "lastName": "L_N",
      "contactInformation": {
        "country": "DE",
        "email": "first.last@acme.com"
      }
    },
    "meta": {
      "claimMeta1": "value1",
      "claimMeta2": "value2"
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/import_claims',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/import_claims',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/import_claims', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/import_claims', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/import_claims");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/import_claims", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/import_claims

Upsert Claims — creates if not exists, updates if already exists

Upserts one or more Claims. Notes: - If the Claim does not exist it is created; if it already exists it is updated. This is the recommended endpoint for bulk integrations where you cannot track whether a Claim was previously submitted. - Claims managed by this endpoint are not Ledger-managed. To manage Claims via the Ledger, use add_account_ledger_entries. - Unlike update_claims, this endpoint requires the full Claim payload on every call — partial updates are not supported here. Required fields per Claim: amount, currency, currentDueDate, originalDueDate, and either (primaryDebtor + currency) or accountReference.

Body parameter

{
  "API_CLAIM_REF_002": {
    "amount": 3002,
    "totalFees": 40,
    "currency": "EUR",
    "currentDueDate": "2019-02-15",
    "originalDueDate": "2019-09-09",
    "productReference": "PRODUCT_REFERENCE_002",
    "accountReference": "ACCOUNT_REFERENCE_002",
    "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
    "primaryDebtor": {
      "debtorReference": "EXTERNAL_DEBTOR_REF_002",
      "firstName": "F_N",
      "lastName": "L_N",
      "contactInformation": {
        "country": "DE",
        "email": "first.last@acme.com"
      }
    },
    "meta": {
      "claimMeta1": "value1",
      "claimMeta2": "value2"
    }
  }
}

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
sequential query boolean false The request body items are executed one after another one
async query boolean false The request is added to the queue without expecting the response
body body object true none
» additionalProperties body any false Input for import_claims endpoint (upsert — create or update).
»» anonymous body any false Used when creating or importing claims
»»» anonymous body BaseClaim false A claim is an outstanding payment that is owed. You can always update this balance if multiple payments are missed and you want to aggregate the amounts.
»»»» amount body Amount false Monetary value in cents (natural number)
»»»» currency body Currency false 3-digit currency code (ISO 4217)
»»»» product body Product false A product is a service or item used to give context to the Claim or Ledger Entry
»»»»» productReference body ProductReference true Identifier for a product in your system. It is used for grouping purposes.
»»»»» paymentReference body PaymentReference false Payment reference used in online transactions.
»»»»» type body string false Type of product
»»»»» name body string false Product name
»»»»» code body string false Product code
»»»»» meta body Metadata false Additional information related to the entity.
»»»» portfolioReference body PortfolioReference false An optional grouping field for reporting and filtering purposes.
»»»» productReference body ProductReference false Identifier for a product in your system. It is used for grouping purposes.
»»»» creditorReference body string false Reference of the person/company to whom money is owed
»»»» totalFees body Amount false Monetary value in cents (natural number)
»»»» currentDueDate body DueDate(date) false Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
»»»» originalDueDate body OriginalDueDate(date) false Original due date in your system. This is the day when it went past due. DPD 0.
»»»» scores body [ClaimScore] false List of scores
»»»»» type body string true Type of score
»»»»» value body any true none
»»»»»» anonymous body string false The score's value
»»»»»» anonymous body object false composed value
»»»»»» anonymous body null false No value
»»»»» meta body Metadata false Additional information related to the entity.
»»»» reason body string false Reason for updating a claim (the reason must not be part of the Entity)
»»»» paymentReference body PaymentReference false Payment reference used in online transactions.
»»»» accountNumber body any false none
»»»»» anonymous body AccountReference false Account reference in your system
»»»»» anonymous body number false Account number in your system (DEPRECATED, use accountReference)
»»»» accountReference body AccountReference false Account reference in your system
»»»» meta body Metadata false Additional information related to the entity.
»»»» fees body [Fee] false List of fees. If neither fees nor totalFees are provided - we treat totalFees as 0. Using this field overwrites the totalFees value if you provided it as well.
»»»»» name body string true Name of the fee.
»»»»» amount body Amount true Monetary value in cents (natural number)
»»»» linkGroupId body any false Group id to link claims together
»»»»» anonymous body null false none
»»»»» anonymous body string(uuid) false none
»»»» primaryDebtor body BaseDebtor false none
»»»»» birthday body string(date) false Birthday of the debtor
»»»»» gender body string false Gender of the debtor
»»»»» firstName body string false First name of the debtor (required if type is 'natural')
»»»»» lastName body string false Last name of the debtor (required if type is 'natural')
»»»»» middleName body string false Middle name of the debtor
»»»»» title body string false Title of the debtor
»»»»» companyName body string false Company Name of the debtor (required if type is 'legal')
»»»»» debtorReference body DebtorReference false Your customer ID for this person or company
»»»»» SSN body string false National Identification Number of the debtor
»»»»» type body string false Type of the debtor (default: natural)
»»»»» contactInformation body BaseContactInformation false none
»»»»»» country body string false 2-digit country code (ISO 3166-1). This is required for the localization and payment providers.
»»»»»» city body string false City
»»»»»» mobileNumber body string false Mobile number in E.164 format (e.g. +49555555555)
»»»»»» postalCode body string false Postal Code
»»»»»» houseNumber body string false House number as part of the address
»»»»»» addressLine1 body string false Address Line 1
»»»»»» addressLine2 body string false Address Line 2
»»»»»» addressLine3 body string false Address Line 3
»»»»»» landLine body string false Landline number in E.164 format (e.g. +49555555555)
»»»»»» state body string false State
»»»»»» email body string false Email Address
»»»»»» additionalContactInformation body [oneOf] false none
»»»»»»» anonymous body object false none
»»»»»»»» email body string true Email Address
»»»»»»» anonymous body object false none
»»»»»»»» mobileNumber body string true Mobile number in E.164 format (e.g. +49555555555)
»»»»»»» anonymous body object false none
»»»»»»»» landLine body string true Landline number in E.164 format (e.g. +49555555555)
»»»»»»» anonymous body object false none
»»»»»»»» workPhoneNumber body string true Work phone number in E.164 format (e.g. +49555555555)
»»» anonymous body object false none
»»»» originalDueDate body OriginalDueDate(date) true Original due date in your system. This is the day when it went past due. DPD 0.
»»»» currentDueDate body DueDate(date) true Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
»»» anonymous body any false none
»»»» anonymous body object false The accountReference is optional, but primaryDebtor and currency are required
»»»»» primaryDebtor body any true The Debtor is the entity that owes the money. It can be a person (natural) or a company (legal).
»»»»»» anonymous body BaseDebtor false none
»»»»»» anonymous body object false none
»»»»»»» contactInformation body any true Contact information of the debtor, used for communication purposes.
»»»»»»»» anonymous body BaseContactInformation false none
»»»»»»»» anonymous body object false none
»»»» anonymous body object false The primaryDebtor and the currency of the Account is used if not specified in the Claim
»» anonymous body object false Additional modifiers when updating claims
»»» options body object false none
»»»» forceAmountCheck body boolean false When true, forces re-evaluation of the Claim status after an amount update (e.g. to auto-resolve a Claim whose amount has been set to zero).

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

»»»»» paymentReference: Payment reference used in online transactions. It is a text reference that can be used to map the money transactions to other external systems.

»»»» paymentReference: Payment reference used in online transactions. It is a text reference that can be used to map the money transactions to other external systems.

»»»»» primaryDebtor: The Debtor is the entity that owes the money. It can be a person (natural) or a company (legal). Notes: - If the debtor is a person (natural), then firstName and lastName are required. - If the debtor is a company (legal), then companyName is required.

Enumerated Values

Parameter Value
»»»»» type INTERNAL
»»»»» type EXTERNAL
»»»»» type COLLECTION
»»»»» type BEHAVIORAL
»»»»» type natural
»»»»» type legal

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Request was successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»» success boolean true none Whether the action was accepted successfully
»» messages [string] true none none
»» messageIds [string] true none Identifier of the messages (used for tracing)

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

resolveClaims

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/resolve_claims \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/resolve_claims HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '[
  [
    {
      "ref": "API_CLAIM_REF_002_1",
      "reason": "CLAIM_SOLD"
    }
  ]
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/resolve_claims',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/resolve_claims',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/resolve_claims', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/resolve_claims', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/resolve_claims");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/resolve_claims", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/resolve_claims

Resolve active Claims with a reason (e.g. paid, sold, discarded)

The intetion of this endpoint is to resolve active Claims in Receeve. Notes: - Resolving a Claim changes its state to Resolved but does not modify other properties such as amount or due dates. - Each item in the request array requires a ref (the claimReference) and a reason. Valid reasons: CLAIM_PAID, CLAIM_SOLD, FRAUDULENT, CLAIM_DISCARDED, CLAIM_DISCHARGED, CLAIM_INVALIDATED. - To resolve a Claim and zero out its amount in one step, use update_claims and set amount to 0 alongside setting the reason to CLAIM_PAID.

Body parameter

[
  [
    {
      "ref": "API_CLAIM_REF_002_1",
      "reason": "CLAIM_SOLD"
    }
  ]
]

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
sequential query boolean false The request body items are executed one after another one
async query boolean false The request is added to the queue without expecting the response
body body array[object] true none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Request was successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»» success boolean true none Whether the action was accepted successfully
»» messages [string] true none none
»» messageIds [string] true none Identifier of the messages (used for tracing)

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

creditClaims

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/credit_claims \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/credit_claims HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '{
  "API_CLAIM_REF_002_1": {
    "amount": 1000,
    "currency": "EUR",
    "originator": "DCA",
    "date": 1647526514000,
    "descriptionText": "Credit with flat fee reduction",
    "paymentDistributionPriority": "AMOUNT_FIRST"
  },
  "API_CLAIM_REF_002_2": {
    "amount": 1000,
    "fees": 500,
    "currency": "EUR",
    "originator": "DCA",
    "date": 1647526514000,
    "descriptionText": "Credit with flat fee reduction",
    "paymentDistributionPriority": "AMOUNT_FIRST"
  },
  "API_CLAIM_REF_002_3": {
    "amount": 1000,
    "currency": "EUR",
    "originator": "DCA",
    "date": 1647526514000,
    "descriptionText": "Credit with named fee reduction",
    "paymentDistributionPriority": "FEES_FIRST",
    "fees": [
      {
        "name": "Processing Fee",
        "amount": 25
      },
      {
        "name": "Late Fee",
        "amount": 15
      }
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/credit_claims',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/credit_claims',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/credit_claims', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/credit_claims', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/credit_claims");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/credit_claims", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/credit_claims

Decrease a Claim's amount or fees, auto-resolving if balance reaches zero

The intention of this endpoint is to credit claims in Receeve. Notes: - Crediting decreases the Claim's amount and/or totalFees. - If the resulting Claim amount reaches zero, the Claim is automatically resolved. - The request body is a map where each key is the claimReference. - fees can be a number (reduces totalFees directly) or an array of named fee objects: - If a fee with the same name already exists, its amount is subtracted. - If no matching fee name exists, the entry is ignored. - To credit fees only, set amount to 0 and provide fees. - To credit fees first and apply any remaining amount to the Claim balance, omit the fees field and provide only amount. - paymentDistributionPriority controls whether the credit is applied to the amount or fees first (AMOUNT_FIRST or FEES_FIRST).

Body parameter

{
  "API_CLAIM_REF_002_1": {
    "amount": 1000,
    "currency": "EUR",
    "originator": "DCA",
    "date": 1647526514000,
    "descriptionText": "Credit with flat fee reduction",
    "paymentDistributionPriority": "AMOUNT_FIRST"
  },
  "API_CLAIM_REF_002_2": {
    "amount": 1000,
    "fees": 500,
    "currency": "EUR",
    "originator": "DCA",
    "date": 1647526514000,
    "descriptionText": "Credit with flat fee reduction",
    "paymentDistributionPriority": "AMOUNT_FIRST"
  },
  "API_CLAIM_REF_002_3": {
    "amount": 1000,
    "currency": "EUR",
    "originator": "DCA",
    "date": 1647526514000,
    "descriptionText": "Credit with named fee reduction",
    "paymentDistributionPriority": "FEES_FIRST",
    "fees": [
      {
        "name": "Processing Fee",
        "amount": 25
      },
      {
        "name": "Late Fee",
        "amount": 15
      }
    ]
  }
}

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
sequential query boolean false The request body items are executed one after another one
async query boolean false The request is added to the queue without expecting the response
body body object true none
» additionalProperties body CreditClaimInput false none
»» amount body Amount true Monetary value in cents (natural number)
»» fees body any false Optional fee credit. Omit to apply the full amount to the Claim balance. Provide fees to reduce specific fees; set amount to 0 to credit fees only.
»»» anonymous body number false Flat fee reduction in cents — subtracted directly from totalFees.
»»» anonymous body [Fee] false Named fee reductions. Each entry matches by name and subtracts the given amount from that fee. Unmatched names are ignored.
»»»» name body string true Name of the fee.
»»»» amount body Amount true Monetary value in cents (natural number)
»» currency body Currency true 3-digit currency code (ISO 4217)
»» originator body string true Who initiated this credit. CLIENT — the creditor (your system). DCA — a Debt Collection Agency acting on behalf of the creditor.
»» paymentDistributionPriority body string false Controls how the credit amount is distributed when both principal and fees are outstanding. AMOUNT_FIRST reduces the principal balance first, then fees. FEES_FIRST reduces fees first, then the principal balance.
»» date body number false Timestamp of the credit event in milliseconds since Unix epoch (e.g. Date.now() in JavaScript).
»» descriptionText body string false Human-readable note explaining the reason for this credit.

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Enumerated Values

Parameter Value
»» originator DCA
»» originator CLIENT
»» paymentDistributionPriority FEES_FIRST
»» paymentDistributionPriority AMOUNT_FIRST

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": {
      "amount": 13025,
      "fees": 0,
      "currency": "EUR",
      "originator": "DCA",
      "paymentDistributionPriority": "FEES_FIRST",
      "date": 1647526514000,
      "descriptionText": "string"
    }
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": {
      "amount": 13025,
      "fees": 0,
      "currency": "EUR",
      "originator": "DCA",
      "paymentDistributionPriority": "FEES_FIRST",
      "date": 1647526514000,
      "descriptionText": "string"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Response of Credit Claim Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties any false none none

allOf

Name Type Required Restrictions Description
»» anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»»» success boolean true none Whether the action was accepted successfully
»»» messages [string] true none none
»»» messageIds [string] true none Identifier of the messages (used for tracing)

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» data CreditClaimInput false none none
»»»» amount Amount true none Monetary value in cents (natural number)
»»»» fees any false none Optional fee credit. Omit to apply the full amount to the Claim balance. Provide fees to reduce specific fees; set amount to 0 to credit fees only.

oneOf

Name Type Required Restrictions Description
»»»»» anonymous number false none Flat fee reduction in cents — subtracted directly from totalFees.

xor

Name Type Required Restrictions Description
»»»»» anonymous [Fee] false none Named fee reductions. Each entry matches by name and subtracts the given amount from that fee. Unmatched names are ignored.
»»»»»» name string true none Name of the fee.
»»»»»» amount Amount true none Monetary value in cents (natural number)

continued

Name Type Required Restrictions Description
»»»» currency Currency true none 3-digit currency code (ISO 4217)
»»»» originator string true none Who initiated this credit. CLIENT — the creditor (your system). DCA — a Debt Collection Agency acting on behalf of the creditor.
»»»» paymentDistributionPriority string false none Controls how the credit amount is distributed when both principal and fees are outstanding. AMOUNT_FIRST reduces the principal balance first, then fees. FEES_FIRST reduces fees first, then the principal balance.
»»»» date number false none Timestamp of the credit event in milliseconds since Unix epoch (e.g. Date.now() in JavaScript).
»»»» descriptionText string false none Human-readable note explaining the reason for this credit.

Enumerated Values

Property Value
originator DCA
originator CLIENT
paymentDistributionPriority FEES_FIRST
paymentDistributionPriority AMOUNT_FIRST

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

debitClaims

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/debit_claims \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/debit_claims HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '{
  "API_CLAIM_REF_002_1": {
    "amount": 1000,
    "currency": "EUR",
    "originator": "CLIENT",
    "date": 1647526514000,
    "fees": 50
  },
  "API_CLAIM_REF_002_2": {
    "amount": 1500,
    "currency": "EUR",
    "originator": "CLIENT",
    "date": 1647526514000,
    "fees": [
      {
        "name": "Processing Fee",
        "amount": 25
      },
      {
        "name": "Late Fee",
        "amount": 15
      }
    ]
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/debit_claims',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/debit_claims',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/debit_claims', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/debit_claims', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/debit_claims");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/debit_claims", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/debit_claims

Increase a Claim's amount or fees (e.g. add interest or penalty charges)

The intention of this endpoint is to debit claims in Receeve. Notes: - Debiting increases the Claim's amount and/or totalFees. - The request body is a map where each key is the claimReference. - fees can be a number (added directly to totalFees) or an array of named fee objects: - If a fee with the same name already exists, the amounts are added together. - If no matching fee name exists, a new fee entry is created with that name. - To debit fees only without changing the Claim amount, set amount to 0 and provide fees. - Required fields per entry: amount, currency, originator, date.

Body parameter

{
  "API_CLAIM_REF_002_1": {
    "amount": 1000,
    "currency": "EUR",
    "originator": "CLIENT",
    "date": 1647526514000,
    "fees": 50
  },
  "API_CLAIM_REF_002_2": {
    "amount": 1500,
    "currency": "EUR",
    "originator": "CLIENT",
    "date": 1647526514000,
    "fees": [
      {
        "name": "Processing Fee",
        "amount": 25
      },
      {
        "name": "Late Fee",
        "amount": 15
      }
    ]
  }
}

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
sequential query boolean false The request body items are executed one after another one
async query boolean false The request is added to the queue without expecting the response
body body object true none
» additionalProperties body DebitClaimInput false none
»» amount body Amount true Monetary value in cents (natural number)
»» fees body any false Optional fee debit. Omit to add amount to the Claim balance only. Provide fees to increase specific fees; set amount to 0 to debit fees only without changing the principal balance.
»»» anonymous body number false Flat fee addition in cents — added directly to totalFees.
»»» anonymous body [Fee] false Named fee additions. Each entry matches by name and adds the given amount to that fee. If no fee with that name exists, a new fee entry is created.
»»»» name body string true Name of the fee.
»»»» amount body Amount true Monetary value in cents (natural number)
»» currency body Currency true 3-digit currency code (ISO 4217)
»» originator body string true Who initiated this debit. CLIENT — the creditor (your system). DCA — a Debt Collection Agency acting on behalf of the creditor.
»» date body number true Timestamp of the debit event in milliseconds since Unix epoch (e.g. Date.now() in JavaScript).
»» descriptionText body string false Human-readable note explaining the reason for this debit.

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Enumerated Values

Parameter Value
»» originator DCA
»» originator CLIENT

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": {
      "amount": 13025,
      "fees": 0,
      "currency": "EUR",
      "originator": "DCA",
      "date": 1647526514000,
      "descriptionText": "string"
    }
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": {
      "amount": 13025,
      "fees": 0,
      "currency": "EUR",
      "originator": "DCA",
      "date": 1647526514000,
      "descriptionText": "string"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Response of Debit Claim Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties any false none none

allOf

Name Type Required Restrictions Description
»» anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»»» success boolean true none Whether the action was accepted successfully
»»» messages [string] true none none
»»» messageIds [string] true none Identifier of the messages (used for tracing)

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» data DebitClaimInput false none none
»»»» amount Amount true none Monetary value in cents (natural number)
»»»» fees any false none Optional fee debit. Omit to add amount to the Claim balance only. Provide fees to increase specific fees; set amount to 0 to debit fees only without changing the principal balance.

oneOf

Name Type Required Restrictions Description
»»»»» anonymous number false none Flat fee addition in cents — added directly to totalFees.

xor

Name Type Required Restrictions Description
»»»»» anonymous [Fee] false none Named fee additions. Each entry matches by name and adds the given amount to that fee. If no fee with that name exists, a new fee entry is created.
»»»»»» name string true none Name of the fee.
»»»»»» amount Amount true none Monetary value in cents (natural number)

continued

Name Type Required Restrictions Description
»»»» currency Currency true none 3-digit currency code (ISO 4217)
»»»» originator string true none Who initiated this debit. CLIENT — the creditor (your system). DCA — a Debt Collection Agency acting on behalf of the creditor.
»»»» date number true none Timestamp of the debit event in milliseconds since Unix epoch (e.g. Date.now() in JavaScript).
»»»» descriptionText string false none Human-readable note explaining the reason for this debit.

Enumerated Values

Property Value
originator DCA
originator CLIENT

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

setLinkClaims

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/set_link_claims \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/set_link_claims HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '{
  "API_CLAIM_REF_002": "API_CLAIM_REF_001",
  "API_CLAIM_REF_003": "API_CLAIM_REF_001",
  "API_CLAIM_REF_004": null
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/set_link_claims',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/set_link_claims',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/set_link_claims', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/set_link_claims', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/set_link_claims");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/set_link_claims", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/set_link_claims

Link Claims together into a group, or remove an existing link

The intention of this endpoint is to link claims together or break existing links. Notes: - The request body is a map where each key is the claimReference to be linked. - The value is the claimReference of the target Claim to link it to, or null to remove an existing link. - Linked Claims share a linkGroupId, which can be used in strategy and reporting contexts to treat grouped Claims together.

Body parameter

{
  "API_CLAIM_REF_002": "API_CLAIM_REF_001",
  "API_CLAIM_REF_003": "API_CLAIM_REF_001",
  "API_CLAIM_REF_004": null
}

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
async query boolean false The request is added to the queue without expecting the response
body body object true none
» additionalProperties body any false none
»» anonymous body string false none
»» anonymous body null false none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Request was successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»» success boolean true none Whether the action was accepted successfully
»» messages [string] true none none
»» messageIds [string] true none Identifier of the messages (used for tracing)

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Journey

A Journey (Strategy) is the automated collection workflow applied to a Claim. Journeys can be paused, resumed, or stopped. Stopping a Journey ends all processing on the Claim permanently. These endpoints are deprecated — use the strategy execution endpoints where available.

pauseJourneys

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/pause_journeys \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/pause_journeys HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '[
  {
    "ref": "CLAIM_REF_002"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/pause_journeys',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/pause_journeys',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/pause_journeys', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/pause_journeys', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/pause_journeys");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/pause_journeys", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/pause_journeys

(DEPRECATED) Pause the collection Journey for one or more Claims

Body parameter

[
  {
    "ref": "CLAIM_REF_002"
  }
]

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
sequential query boolean false The request body items are executed one after another one
async query boolean false The request is added to the queue without expecting the response
body body array[object] true none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Request was successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»» success boolean true none Whether the action was accepted successfully
»» messages [string] true none none
»» messageIds [string] true none Identifier of the messages (used for tracing)

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

resumeJourneys

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/resume_journeys \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/resume_journeys HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '[
  {
    "ref": "CLAIM_REF_002"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/resume_journeys',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/resume_journeys',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/resume_journeys', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/resume_journeys', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/resume_journeys");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/resume_journeys", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/resume_journeys

(DEPRECATED) Resume a previously paused collection Journey

Body parameter

[
  {
    "ref": "CLAIM_REF_002"
  }
]

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
sequential query boolean false The request body items are executed one after another one
async query boolean false The request is added to the queue without expecting the response
body body array[object] true none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Request was successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»» success boolean true none Whether the action was accepted successfully
»» messages [string] true none none
»» messageIds [string] true none Identifier of the messages (used for tracing)

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

stopJourneys

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/stop_journeys \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/stop_journeys HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '[
  {
    "ref": "CLAIM_REF_002",
    "reason": "CLAIM_PAID",
    "description": "Direct bank transfer received"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/stop_journeys',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/stop_journeys',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/stop_journeys', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/stop_journeys', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/stop_journeys");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/stop_journeys", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/stop_journeys

(DEPRECATED) Permanently stop the collection Journey for one or more Claims

Body parameter

[
  {
    "ref": "CLAIM_REF_002",
    "reason": "CLAIM_PAID",
    "description": "Direct bank transfer received"
  }
]

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
sequential query boolean false The request body items are executed one after another one
async query boolean false The request is added to the queue without expecting the response
body body array[object] true none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Request was successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»» success boolean true none Whether the action was accepted successfully
»» messages [string] true none none
»» messageIds [string] true none Identifier of the messages (used for tracing)

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

LandingPage

The Landing Page is a hosted page presented to the Debtor to view and pay their Claims. Use the get_landing_page_url endpoint to retrieve a time-limited URL for a specific Claim that can be shared with the Debtor.

getLandingPageURL

Code samples

# You can also use wget
curl -X GET /v1/{clientId}/get_landing_page_url?claimReference=CLAIM_REFERENCE_002 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

GET /v1/{clientId}/get_landing_page_url?claimReference=CLAIM_REFERENCE_002 HTTP/1.1

Accept: application/json
Authorization: Bearer <access_token>


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/get_landing_page_url?claimReference=CLAIM_REFERENCE_002',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.get '/v1/{clientId}/get_landing_page_url',
  params: {
  'claimReference' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('/v1/{clientId}/get_landing_page_url', params={
  'claimReference': 'CLAIM_REFERENCE_002'
}, headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/v1/{clientId}/get_landing_page_url', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/get_landing_page_url?claimReference=CLAIM_REFERENCE_002");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/v1/{clientId}/get_landing_page_url", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/{clientId}/get_landing_page_url

Generate a time-limited debtor self-service Landing Page URL for a Claim

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
claimReference query string true The unique reference identifying the Claim in your system
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "URL": "https://domain.com/c/btXXskwXX"
}

Responses

Status Meaning Description Schema
200 OK Request for get_landing_page_url is successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
404 Not Found Not found Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» URL string true none URL of Landing Page

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 404

Name Type Required Restrictions Description
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Event

Events are records of things that happened in the Receeve platform, such as a Claim being created, an email being delivered, or a Promise to Pay being resolved. Use the get_events endpoint to retrieve events by type and date for reporting and reconciliation.

getEvents

Code samples

# You can also use wget
curl -X GET /v1/{clientId}/get_events?eventType=event.claim.created&date=2019-05-28 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

GET /v1/{clientId}/get_events?eventType=event.claim.created&date=2019-05-28 HTTP/1.1

Accept: application/json
Authorization: Bearer <access_token>


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/get_events?eventType=event.claim.created&date=2019-05-28',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.get '/v1/{clientId}/get_events',
  params: {
  'eventType' => 'string',
'date' => 'string(date)'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('/v1/{clientId}/get_events', params={
  'eventType': 'event.claim.created',  'date': '2019-05-28'
}, headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/v1/{clientId}/get_events', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/get_events?eventType=event.claim.created&date=2019-05-28");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/v1/{clientId}/get_events", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/{clientId}/get_events

Retrieve platform events by type and date, paginated

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
eventType query string true type of event that happened in Receeve system
date query string(date) true date which to get the events for
limit query integer false amount of events per page, default is 1000
page query integer false number of page to retrieve the events for, default is 1

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "events": [
    {
      "messageId": "51a35d12-9145-4c97-8285-08156681e47",
      "timestamp": "2020-04-17T08:14:29.863Z",
      "details": {
        "messageType": "event.claim.created.v1",
        "claimRef": "ABCDEF123",
        "receeveClaimRef": "ABCDEF123-2020-01-15",
        "amount": 2000,
        "currency": "EUR",
        "dueDate": "2019-06-28"
      }
    }
  ],
  "limit": 1000,
  "page": 1,
  "numberOfPages": 2
}

Responses

Status Meaning Description Schema
200 OK Request for get_events is successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» events [anyOf] true none none

anyOf

Name Type Required Restrictions Description
»» anonymous ClaimCreatedEvent false none none
»»» messageId string true none message identifier in Receeve system
»»» timestamp string true none UTC timestamp
»»» details object true none none
»»»» messageType string true none type of event that happened in Receeve system
»»»» claimRef string true none reference to the Claim in external(your) system
»»»» receeveClaimRef string true none reference to the Claim in Receeve system
»»»» amount integer true none Amount of the claim without fees in cents
»»»» currency Currency true none 3-digit currency code (ISO 4217)
»»»» dueDate DueDate(date) true none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.

or

Name Type Required Restrictions Description
»» anonymous ClaimDebtPaymentProcessingEvent false none none
»»» messageId string true none message identifier in Receeve system
»»» timestamp string true none UTC timestamp
»»» details object true none none
»»»» messageType string true none type of event that happened in Receeve system
»»»» claimRef string true none reference to the Claim in external(your) system
»»»» receeveClaimRef string true none reference to the Claim in Receeve system
»»»» providerName string true none Name of payment provider
»»»» amount integer true none Amount of the payment transaction in cents
»»»» currency Currency true none 3-digit currency code (ISO 4217)
»»»» trackingId string true none Tracking id from payment provider
»»»» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.

continued

Name Type Required Restrictions Description
» limit integer true none amount of events per current page
» page integer true none current page number
» numberOfPages integer true none amount of pages with limit that is given for that request

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Message

Messages are outbound communications (email, SMS, letter) sent to Debtors by the platform. Use get_communication_message_urls to list message URLs for a Claim, then use get_message to fetch the full .eml content of a specific email message.

getMessage

Code samples

# You can also use wget
curl -X GET /v1/{clientId}/get_message?messageURL=%2FOperations%2Femail%2FMessage%2F3b97bd7a-1c07-44d4-b33f-2250f6419e95.eml \
  -H 'Accept: text/plain' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

GET /v1/{clientId}/get_message?messageURL=%2FOperations%2Femail%2FMessage%2F3b97bd7a-1c07-44d4-b33f-2250f6419e95.eml HTTP/1.1

Accept: text/plain
Authorization: Bearer <access_token>


const headers = {
  'Accept':'text/plain',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/get_message?messageURL=%2FOperations%2Femail%2FMessage%2F3b97bd7a-1c07-44d4-b33f-2250f6419e95.eml',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'text/plain',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.get '/v1/{clientId}/get_message',
  params: {
  'messageURL' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'text/plain',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('/v1/{clientId}/get_message', params={
  'messageURL': '/Operations/email/Message/3b97bd7a-1c07-44d4-b33f-2250f6419e95.eml'
}, headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'text/plain',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/v1/{clientId}/get_message', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/get_message?messageURL=%2FOperations%2Femail%2FMessage%2F3b97bd7a-1c07-44d4-b33f-2250f6419e95.eml");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"text/plain"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/v1/{clientId}/get_message", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/{clientId}/get_message

Fetch the full .eml content of an outbound email message

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
messageURL query string true URL of the message

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

"Content-Type: text/plain; charset=utf-8 Message-ID: <f533311e-9dd6-5209-2969-1ad8d3e64636@169.169.169.93> Content-Transfer-Encoding: quoted-printable Date: Thu, 12 Mar 2020 14:19:04 +0000 MIME-Version: 1.0\nSMS Text =E2=82=AC20.42"

400 Response

{
  "error": "string",
  "message": "Missing required request parameters: [Authorization]"
}

Responses

Status Meaning Description Schema
200 OK Request for get_message is successful string
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

getCommunicationMessageURLs

Code samples

# You can also use wget
curl -X GET /v1/{clientId}/get_communication_message_urls?claimReference=CLAIM_REFERENCE_002 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

GET /v1/{clientId}/get_communication_message_urls?claimReference=CLAIM_REFERENCE_002 HTTP/1.1

Accept: application/json
Authorization: Bearer <access_token>


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/get_communication_message_urls?claimReference=CLAIM_REFERENCE_002',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.get '/v1/{clientId}/get_communication_message_urls',
  params: {
  'claimReference' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('/v1/{clientId}/get_communication_message_urls', params={
  'claimReference': 'CLAIM_REFERENCE_002'
}, headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/v1/{clientId}/get_communication_message_urls', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/get_communication_message_urls?claimReference=CLAIM_REFERENCE_002");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/v1/{clientId}/get_communication_message_urls", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/{clientId}/get_communication_message_urls

List outbound message URLs for a Claim, filterable by communication type

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
claimReference query string true The unique reference identifying the Claim in your system
communicationType query string false type of communication that happened in Receeve system. Leave it unspecified to get message URLs related to all communication types.
startDate query string(date) false date from which to start getting the events
limit query integer false amount of events per page, default is 1000
page query integer false number of page to retrieve the events for, default is 1

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Enumerated Values

Parameter Value
communicationType email
communicationType letter
communicationType SMS

Example responses

200 Response

{
  "communicationMessageURLs": [
    {
      "communicationType": "email",
      "messageURL": "/Operations/email/Message/3b97bd7a-1c07-44d4-b33f-2250f6419e95.eml",
      "dateTime": 1621536535901,
      "bundleId": "00000000-0000-0000-0000-000000000000",
      "bundleName": "Default Email Template"
    }
  ],
  "limit": 1000,
  "page": 1,
  "numberOfPages": 2
}

Responses

Status Meaning Description Schema
200 OK Request for get_communication_message_urls is successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» communicationMessageURLs [CommunicationMessageURL] true none none
»» communicationType string true none type of communication that happened in Receeve system
»» messageURL string true none URL of the message
»» dateTime integer true none Timestamp when the communication event occured
»» bundleId string(uuid) true none template id of communication that happened in Receeve system
»» bundleName string true none template display name of communication that happened in Receeve system
» limit integer true none amount of events per current page
» page integer true none current page number
» numberOfPages integer true none amount of pages with limit that is given for that request

Enumerated Values

Property Value
communicationType email
communicationType letter
communicationType SMS

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

PromiseToPay

A Promise to Pay (PTP) is a commitment made by a Debtor to pay an outstanding Claim by a specified date. These endpoints allow you to create, retrieve, update, and delete PTPs for a given Account.

createPromisesToPay

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/create_promises_to_pay \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/create_promises_to_pay HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '{
  "CLAIM_REF_002_1": {
    "amount": 5000,
    "currency": "EUR",
    "dueDate": "2024-06-30"
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/create_promises_to_pay',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/create_promises_to_pay',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/create_promises_to_pay', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/create_promises_to_pay', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/create_promises_to_pay");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/create_promises_to_pay", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/create_promises_to_pay

Create a Promise to Pay — a commitment to pay a minimum amount by a due date

Body parameter

{
  "CLAIM_REF_002_1": {
    "amount": 5000,
    "currency": "EUR",
    "dueDate": "2024-06-30"
  }
}

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
sequential query boolean false The request body items are executed one after another one
async query boolean false The request is added to the queue without expecting the response
body body object true none
» additionalProperties body PromiseToPay false A promise to pay is a commitment from a debtor to pay a certain amount at a certain date.
»» amount body Amount true Monetary value in cents (natural number)
»» currency body Currency true 3-digit currency code (ISO 4217)
»» dueDate body DueDate(date) true Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": {
      "amount": 13025,
      "currency": "EUR",
      "dueDate": "2019-06-28"
    }
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": {
      "amount": 13025,
      "currency": "EUR",
      "dueDate": "2019-06-28"
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Response of creating a set of promises to pay Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties any false none none

allOf

Name Type Required Restrictions Description
»» anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»»» success boolean true none Whether the action was accepted successfully
»»» messages [string] true none none
»»» messageIds [string] true none Identifier of the messages (used for tracing)

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» data PromiseToPay false none A promise to pay is a commitment from a debtor to pay a certain amount at a certain date.
»»»» amount Amount true none Monetary value in cents (natural number)
»»»» currency Currency true none 3-digit currency code (ISO 4217)
»»»» dueDate DueDate(date) true none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

CustomTriggers

Custom Triggers allow you to fire bespoke events on a Claim to drive branching logic within a Collections Strategy. Use these endpoints to send trigger events that the strategy can act on.

executeCustomTriggers

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/execute_custom_triggers \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/execute_custom_triggers HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '{
  "CLAIM_REF_002_1": "callDebtor",
  "CLAIM_REF_002_2": {
    "triggerName": "sendReminder",
    "triggerContext": {
      "loan_type": "House Loan",
      "initial_instalment": 40000
    }
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/execute_custom_triggers',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/execute_custom_triggers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/execute_custom_triggers', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/execute_custom_triggers', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/execute_custom_triggers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/execute_custom_triggers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/execute_custom_triggers

Fire custom Reaction triggers on one or more Claims by name

Body parameter

{
  "CLAIM_REF_002_1": "callDebtor",
  "CLAIM_REF_002_2": {
    "triggerName": "sendReminder",
    "triggerContext": {
      "loan_type": "House Loan",
      "initial_instalment": 40000
    }
  }
}

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
sequential query boolean false The request body items are executed one after another one
async query boolean false The request is added to the queue without expecting the response
body body object true none
» additionalProperties body any false none
»» anonymous body string false Custom Trigger Name
»» anonymous body object false ClaimReference as key and the Custom Trigger Name as the value
»»» triggerName body string true Custom Trigger Name
»»» triggerContext body object false key-value pairs to attach additional information to the trigger

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Request was successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»» success boolean true none Whether the action was accepted successfully
»» messages [string] true none none
»» messageIds [string] true none Identifier of the messages (used for tracing)

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

AccountMandate

An Account Mandate is a payment method authorization (e.g. direct debit, card, or open-banking mandate) stored against an Account. These endpoints manage the lifecycle of mandates — creating, listing, and deleting them — across multiple payment providers (Trustly, Paylands, Ferratum, etc.).

createAccountMandates

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/create_account_mandates \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/create_account_mandates HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '[
  {
    "mandateId": "d34b443e-968e-4647-80ec-292ee38c8b34",
    "accountReference": "ACCOUNT_REFERENCE_002",
    "providerName": "trustly",
    "debtorReference": "EXTERNAL_DEBTOR_REF_002",
    "productReferences": [
      "PRODUCT_REFERENCE_1"
    ]
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/create_account_mandates',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/create_account_mandates',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/create_account_mandates', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/create_account_mandates', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/create_account_mandates");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/create_account_mandates", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/create_account_mandates

Register direct-debit or payment mandates on one or more Accounts

Registers one or more payment mandates on Accounts. A mandate authorises the platform to initiate recurring payments from the debtor via the specified payment provider.

Required fields: mandateId, accountReference, providerName, debtorReference, productReferences.

Provider-specific requirements: - paylandsenBizum and paylandsenCards additionally require clientIpAddress (the debtor's IP address, needed by the Paylands provider). - All other providers (trustly, split, ferratumCheckoutCreditCardV2) use the base fields only.

The mandateRepresentation field is optional and allows storing card or bank account details for display purposes (use MandateCardTypeRepresentation for cards, MandateAccountTypeRepresentation for bank accounts).

Body parameter

[
  {
    "mandateId": "d34b443e-968e-4647-80ec-292ee38c8b34",
    "accountReference": "ACCOUNT_REFERENCE_002",
    "providerName": "trustly",
    "debtorReference": "EXTERNAL_DEBTOR_REF_002",
    "productReferences": [
      "PRODUCT_REFERENCE_1"
    ]
  }
]

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
sequential query boolean false The request body items are executed one after another one
async query boolean false The request is added to the queue without expecting the response
body body AccountMandateInput true none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": [
      {
        "mandateId": "d34b443e-968e-4647-80ec-292ee38c8b34",
        "accountReference": "ACCOUNT_REFERENCE_002",
        "providerName": "ferratumCheckoutCreditCardV2",
        "debtorReference": "EXTERNAL_DEBTOR_REF_002",
        "productReferences": [
          "PRODUCT_REFERENCE_1"
        ],
        "mandateRepresentation": {
          "holderName": "string",
          "bankName": "string",
          "accountNumber": "string"
        }
      }
    ]
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ],
    "data": [
      {
        "mandateId": "d34b443e-968e-4647-80ec-292ee38c8b34",
        "accountReference": "ACCOUNT_REFERENCE_002",
        "providerName": "ferratumCheckoutCreditCardV2",
        "debtorReference": "EXTERNAL_DEBTOR_REF_002",
        "productReferences": [
          "PRODUCT_REFERENCE_1"
        ],
        "mandateRepresentation": {
          "holderName": "string",
          "bankName": "string",
          "accountNumber": "string"
        }
      }
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Response of creating a set of account mandates Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties any false none none

allOf

Name Type Required Restrictions Description
»» anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»»» success boolean true none Whether the action was accepted successfully
»»» messages [string] true none none
»»» messageIds [string] true none Identifier of the messages (used for tracing)

and

Name Type Required Restrictions Description
»» anonymous object false none none
»»» data [oneOf] false none none

oneOf

Name Type Required Restrictions Description
»»»» anonymous any false none none

allOf

Name Type Required Restrictions Description
»»»»» anonymous BaseAccountMandateInput false none none
»»»»»» mandateId string true none mandate id (can be the mandate id of external system)
»»»»»» accountReference AccountReference true none Account reference in your system
»»»»»» providerName string true none Name of payment provider
»»»»»» debtorReference DebtorReference true none Your customer ID for this person or company
»»»»»» productReferences [ProductReference] true none Product References
»»»»»» mandateRepresentation any false none none

oneOf

Name Type Required Restrictions Description
»»»»»»» anonymous MandateAccountTypeRepresentation false none none
»»»»»»»» holderName string false none none
»»»»»»»» bankName string true none none
»»»»»»»» accountNumber string true none none

xor

Name Type Required Restrictions Description
»»»»»»» anonymous MandateCardTypeRepresentation false none none
»»»»»»»» cardIssuer string true none none
»»»»»»»» lastDigits string true none none
»»»»»»»» holderName string false none none
»»»»»»»» expiryMonth string false none none
»»»»»»»» expiryYear string false none none
»»»»»»»» bankName string false none none

and

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» providerName string true none none

xor

Name Type Required Restrictions Description
»»»» anonymous any false none none

allOf

Name Type Required Restrictions Description
»»»»» anonymous BaseAccountMandateInput false none none

and

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» providerName string true none none
»»»»»» clientIpAddress string true none The customer ip address is needed for Paylands mandate to work

xor

Name Type Required Restrictions Description
»»»» anonymous any false none none

allOf

Name Type Required Restrictions Description
»»»»» anonymous BaseAccountMandateInput false none none

and

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» providerName string true none none

xor

Name Type Required Restrictions Description
»»»» anonymous any false none none

allOf

Name Type Required Restrictions Description
»»»»» anonymous BaseAccountMandateInput false none none

and

Name Type Required Restrictions Description
»»»»» anonymous object false none none
»»»»»» providerName string true none none

Enumerated Values

Property Value
providerName ferratumCheckoutCreditCardV2
providerName paylandsenBizum
providerName paylandsenCards
providerName split
providerName trustly

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

deleteAccountMandates

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/delete_account_mandates \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/delete_account_mandates HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '[
  {
    "mandateId": "d34b443e-968e-4647-80ec-292ee38c8b34",
    "accountReference": "ACCOUNT_REFERENCE_002"
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/delete_account_mandates',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/delete_account_mandates',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/delete_account_mandates', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/delete_account_mandates', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/delete_account_mandates");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/delete_account_mandates", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/delete_account_mandates

Remove payment mandates from one or more Accounts

Body parameter

[
  {
    "mandateId": "d34b443e-968e-4647-80ec-292ee38c8b34",
    "accountReference": "ACCOUNT_REFERENCE_002"
  }
]

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
sequential query boolean false The request body items are executed one after another one
async query boolean false The request is added to the queue without expecting the response
body body AccountMandateDeleteInput true none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Request was successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»» success boolean true none Whether the action was accepted successfully
»» messages [string] true none none
»» messageIds [string] true none Identifier of the messages (used for tracing)

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

getAccountMandates

Code samples

# You can also use wget
curl -X GET /v1/{clientId}/get_account_mandates?accountReference=ACCOUNT_REFERENCE_002 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

GET /v1/{clientId}/get_account_mandates?accountReference=ACCOUNT_REFERENCE_002 HTTP/1.1

Accept: application/json
Authorization: Bearer <access_token>


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/get_account_mandates?accountReference=ACCOUNT_REFERENCE_002',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.get '/v1/{clientId}/get_account_mandates',
  params: {
  'accountReference' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('/v1/{clientId}/get_account_mandates', params={
  'accountReference': 'ACCOUNT_REFERENCE_002'
}, headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/v1/{clientId}/get_account_mandates', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/get_account_mandates?accountReference=ACCOUNT_REFERENCE_002");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/v1/{clientId}/get_account_mandates", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/{clientId}/get_account_mandates

Retrieve all active payment mandates for an Account

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
accountReference query string true The unique reference identifying the Account in your system
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

[
  {
    "mandateId": "d34b443e-968e-4647-80ec-292ee38c8b34",
    "accountReference": "ACCOUNT_REFERENCE_002",
    "providerName": "trustly",
    "debtorReference": "EXTERNAL_DEBTOR_REF_002",
    "productReferences": [
      "PRODUCT_REFERENCE_1"
    ],
    "mandateRepresentation": {
      "holderName": "string",
      "bankName": "string",
      "accountNumber": "string"
    }
  }
]

Responses

Status Meaning Description Schema
200 OK Request for get_account_mandates is successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [AccountMandate] false none none
» mandateId string true none mandate id (can be the mandate id of external system)
» accountReference AccountReference true none Account reference in your system
» providerName string true none Name of payment provider
» debtorReference DebtorReference false none Your customer ID for this person or company
» productReferences [ProductReference] false none Product References
» mandateRepresentation any false none none

oneOf

Name Type Required Restrictions Description
»» anonymous MandateAccountTypeRepresentation false none none
»»» holderName string false none none
»»» bankName string true none none
»»» accountNumber string true none none

xor

Name Type Required Restrictions Description
»» anonymous MandateCardTypeRepresentation false none none
»»» cardIssuer string true none none
»»» lastDigits string true none none
»»» holderName string false none none
»»» expiryMonth string false none none
»»» expiryYear string false none none
»»» bankName string false none none

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Files

The Files endpoints allow you to upload documents associated with an Account. Uploaded files are stored securely and can be referenced from other parts of the platform.

uploadFiles

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/upload_files \
  -H 'Content-Type: multipart/form-data' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/upload_files HTTP/1.1

Content-Type: multipart/form-data
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '{}';
const headers = {
  'Content-Type':'multipart/form-data',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/upload_files',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'multipart/form-data',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/upload_files',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'multipart/form-data',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/upload_files', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'multipart/form-data',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/upload_files', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/upload_files");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"multipart/form-data"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/upload_files", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/upload_files

Upload a document file and associate it with an Account or Claim

Body parameter

{}

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
body body object true none
» file body string(binary) true The file to upload
» accountId body string true The account identifier — corresponds to the accountReference used in all other endpoints.
» documentType body string false Type of the document as specified in the backoffice e.g 'CSV', 'Invoice'
» externalClaimRef body string false External claim reference
» productReference body string false Product reference
» anonymous body object false none
» anonymous body object false none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "property1": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  },
  "property2": {
    "success": true,
    "messages": [
      "Successfully processed action"
    ],
    "messageIds": [
      "e66d62ed-2331-4ced-8c03-5e729e984adc"
    ]
  }
}

Responses

Status Meaning Description Schema
200 OK Request was successful Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» additionalProperties ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)
»» success boolean true none Whether the action was accepted successfully
»» messages [string] true none none
»» messageIds [string] true none Identifier of the messages (used for tracing)

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Finance Instalments V2

Finance Instalments V2 endpoints manage instalment plans for Accounts. An instalment plan splits an outstanding balance into a series of scheduled payments. These endpoints cover the full lifecycle: creating, retrieving, updating, and cancelling instalment plans.

getInstalmentPlanDefinitions

Code samples

# You can also use wget
curl -X GET /v1/{clientId}/instalment_plan_definitions \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

GET /v1/{clientId}/instalment_plan_definitions HTTP/1.1

Accept: application/json
Authorization: Bearer <access_token>


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/instalment_plan_definitions',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.get '/v1/{clientId}/instalment_plan_definitions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('/v1/{clientId}/instalment_plan_definitions', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/v1/{clientId}/instalment_plan_definitions', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/instalment_plan_definitions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/v1/{clientId}/instalment_plan_definitions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/{clientId}/instalment_plan_definitions

List available instalment plan templates configured for the client

Retrieve available instalment plan templates for the client. This endpoint returns a list of instalment plan definitions that can be used to create payment plans for debtors.

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
limit query integer false Maximum number of results to return
paginationId query string false Pagination token for retrieving the next page of results
filters query string false JSON string of filters to apply (e.g., {"enabled":true,"types":["CHOICE"]})
fields query string false Comma-separated list of fields to retrieve (e.g., "id,type,description")

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": {
    "results": [
      {
        "id": "string",
        "type": "string",
        "version": "string",
        "enabled": true,
        "selectable": true,
        "description": {},
        "configuration": [
          {}
        ],
        "rules": [
          {}
        ],
        "context": {},
        "computedAt": "2026-03-24T16:45:06Z"
      }
    ],
    "paginationId": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK Successfully retrieved instalment plan definitions with pagination support GetInstalmentPlanDefinitions
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

computeInstalmentPlanDefinition

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/compute_instalment_plan_definition \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/compute_instalment_plan_definition HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '{
  "instalmentPlanDefinitionId": "string",
  "accountReference": "string",
  "externalClaimReferences": [
    "string"
  ],
  "formData": {}
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/compute_instalment_plan_definition',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/compute_instalment_plan_definition',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/compute_instalment_plan_definition', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/compute_instalment_plan_definition', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/compute_instalment_plan_definition");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/compute_instalment_plan_definition", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/compute_instalment_plan_definition

Dynamically compute an instalment plan definition for specific Claims

Dynamic wizard for generating computed instalment plan definitions. Returns different types based on computation results (programmatic, choice, fixedAmounts, percentageAmounts, null).

Body parameter

{
  "instalmentPlanDefinitionId": "string",
  "accountReference": "string",
  "externalClaimReferences": [
    "string"
  ],
  "formData": {}
}

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
async query boolean false The request is added to the queue without expecting the response
body body ComputeInstalmentPlanDefinitionInput true none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": {
    "id": "string",
    "type": "programmatic",
    "version": "string",
    "enabled": true,
    "selectable": true,
    "description": {},
    "computedAt": "2026-03-24T16:45:06Z",
    "rules": [
      {}
    ],
    "configuration": [
      {}
    ],
    "context": {},
    "accountId": "string",
    "clientId": "string",
    "correlationId": "string",
    "parentInstalmentPlanId": "string",
    "TTL": 0
  }
}

Responses

Status Meaning Description Schema
200 OK Successfully computed instalment plan definition (polymorphic response based on computation type) ComputeInstalmentPlanDefinitions
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

createInstalmentPlan

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/create_instalment_plan \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/create_instalment_plan HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '{
  "instalmentPlanDefinitionId": "string",
  "accountReference": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/create_instalment_plan',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/create_instalment_plan',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/create_instalment_plan', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/create_instalment_plan', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/create_instalment_plan");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/create_instalment_plan", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/create_instalment_plan

Create an executable instalment payment plan from a computed definition

Generate actual instalment plans from computed definitions. This endpoint creates an executable payment plan based on a computed definition.

Body parameter

{
  "instalmentPlanDefinitionId": "string",
  "accountReference": "string"
}

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
async query boolean false The request is added to the queue without expecting the response
body body CreateInstalmentPlanInput true none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": {
    "id": "string",
    "definitionId": "string",
    "status": "ACTIVE",
    "createdAt": "2026-03-24T16:45:06Z",
    "updatedAt": "2026-03-24T16:45:06Z",
    "statusCheckedAt": "2026-03-24T16:45:06Z",
    "clientId": "string",
    "accountId": "string",
    "currency": "string",
    "type": "string",
    "totalAmount": 0,
    "paidAmount": 0,
    "externalClaimRef": "string",
    "configuration": [
      {}
    ],
    "scope": {
      "externalClaimReferences": [
        "string"
      ],
      "externalClaimAmounts": [
        {
          "amount": 0,
          "totalFees": 0,
          "fees": [
            {
              "name": "string",
              "amount": 0
            }
          ]
        }
      ]
    },
    "rules": [
      {
        "id": "string",
        "type": "string",
        "description": {},
        "enabled": true,
        "configuration": {}
      }
    ],
    "instalments": [
      {
        "id": "string",
        "dueDate": "2026-03-24",
        "startDate": "2026-03-24",
        "amount": 0,
        "paidAmount": 0,
        "currency": "string",
        "status": "CREATED",
        "createdAt": "2026-03-24T16:45:06Z",
        "updatedAt": "2026-03-24T16:45:06Z"
      }
    ],
    "metadata": {}
  }
}

Responses

Status Meaning Description Schema
200 OK Successfully created instalment plan CreateInstalmentPlans
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

updateInstalmentPlan

Code samples

# You can also use wget
curl -X POST /v1/{clientId}/update_instalment_plan \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

POST /v1/{clientId}/update_instalment_plan HTTP/1.1

Content-Type: application/json
Accept: application/json
Authorization: Bearer <access_token>

const inputBody = '{
  "instalmentPlanId": "string",
  "instalmentPlan": {
    "meta": {},
    "currency": "EUR",
    "status": "ACTIVE",
    "instalments": [
      {
        "id": "string",
        "dueDate": "2026-03-24",
        "startDate": "2026-03-24",
        "amount": 0,
        "paidAmount": 0,
        "currency": "string",
        "status": "CREATED",
        "createdAt": "2026-03-24T16:45:06Z",
        "updatedAt": "2026-03-24T16:45:06Z"
      }
    ],
    "transactions": [
      {
        "id": "string",
        "amount": 0,
        "context": {},
        "createdAt": "2026-03-24T16:45:06Z",
        "updatedAt": "2026-03-24T16:45:06Z",
        "type": "payment"
      }
    ]
  },
  "context": {}
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/update_instalment_plan',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/json',
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.post '/v1/{clientId}/update_instalment_plan',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.post('/v1/{clientId}/update_instalment_plan', headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Content-Type' => 'application/json',
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('POST','/v1/{clientId}/update_instalment_plan', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/update_instalment_plan");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/json"},
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/v1/{clientId}/update_instalment_plan", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

POST /v1/{clientId}/update_instalment_plan

Modify an existing instalment plan's parameters (e.g. currency, metadata)

Modify existing instalment plans with updated parameters. This endpoint allows updating various aspects of an existing instalment plan.

Body parameter

{
  "instalmentPlanId": "string",
  "instalmentPlan": {
    "meta": {},
    "currency": "EUR",
    "status": "ACTIVE",
    "instalments": [
      {
        "id": "string",
        "dueDate": "2026-03-24",
        "startDate": "2026-03-24",
        "amount": 0,
        "paidAmount": 0,
        "currency": "string",
        "status": "CREATED",
        "createdAt": "2026-03-24T16:45:06Z",
        "updatedAt": "2026-03-24T16:45:06Z"
      }
    ],
    "transactions": [
      {
        "id": "string",
        "amount": 0,
        "context": {},
        "createdAt": "2026-03-24T16:45:06Z",
        "updatedAt": "2026-03-24T16:45:06Z",
        "type": "payment"
      }
    ]
  },
  "context": {}
}

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
async query boolean false The request is added to the queue without expecting the response
body body UpdateInstalmentPlanInput true none

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "success": true,
  "message": "Instalment plan updated successfully"
}

Responses

Status Meaning Description Schema
200 OK Successfully updated instalment plan Inline
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» success boolean false none none
» message string false none none

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

getInstalmentPlans

Code samples

# You can also use wget
curl -X GET /v1/{clientId}/instalment_plans?accountReference=string \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <access_token>' \
  -H 'Authorization: Bearer <access_token>'

GET /v1/{clientId}/instalment_plans?accountReference=string HTTP/1.1

Accept: application/json
Authorization: Bearer <access_token>


const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer <access_token>',
  'Authorization':'Bearer <access_token>'
};

fetch('/v1/{clientId}/instalment_plans?accountReference=string',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer <access_token>',
  'Authorization' => 'Bearer <access_token>'
}

result = RestClient.get '/v1/{clientId}/instalment_plans',
  params: {
  'accountReference' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer <access_token>',
  'Authorization': 'Bearer <access_token>'
}

r = requests.get('/v1/{clientId}/instalment_plans', params={
  'accountReference': 'string'
}, headers = headers)

print(r.json())

<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer <access_token>',
    'Authorization' => 'Bearer <access_token>',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
    $response = $client->request('GET','/v1/{clientId}/instalment_plans', array(
        'headers' => $headers,
        'json' => $request_body,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

 // ...

URL obj = new URL("/v1/{clientId}/instalment_plans?accountReference=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer <access_token>"},
        "Authorization": []string{"Bearer <access_token>"},
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/v1/{clientId}/instalment_plans", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

GET /v1/{clientId}/instalment_plans

Retrieve instalment plans for an Account, with filtering and pagination

Retrieve instalment plans for a specific client and account. Supports filtering by status, specific plan IDs, field selection, and pagination.

Parameters

Name In Type Required Description
clientId path string(uuid) true A receeve system identifier that will be assigned automatically.
Authorization header string true Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.
triggerName query string false This is name of Custom Trigger that should be triggered when this API is called.
accountReference query string true Account reference in the client's system
limit query integer false Maximum number of results to return
paginationId query string false Pagination token for retrieving the next page of results
filters query string false JSON string of filters to apply (e.g., {"status":["CREATED"],"id":["uuid1","uuid2"]})
fields query string false Comma-separated list of fields to retrieve (e.g., "id,status,accountId")

Detailed descriptions

clientId: A receeve system identifier that will be assigned automatically. It will be used for situations like Support related interventions or data segmentation.

Authorization: Bearer token obtained from the POST /v1/oauth2/token endpoint. Pass it as Bearer <access_token>. Tokens expire after 3600 seconds.

Example responses

200 Response

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": {
    "results": [
      {
        "id": "string",
        "definitionId": "string",
        "status": "ACTIVE",
        "createdAt": "2026-03-24T16:45:06Z",
        "updatedAt": "2026-03-24T16:45:06Z",
        "statusCheckedAt": "2026-03-24T16:45:06Z",
        "clientId": "string",
        "accountId": "string",
        "currency": "string",
        "type": "string",
        "totalAmount": 0,
        "paidAmount": 0,
        "externalClaimRef": "string",
        "configuration": [
          {}
        ],
        "scope": {
          "externalClaimReferences": [
            "string"
          ],
          "externalClaimAmounts": [
            {
              "amount": 0,
              "totalFees": 0,
              "fees": [
                {
                  "name": "string",
                  "amount": 0
                }
              ]
            }
          ]
        },
        "rules": [
          {
            "id": "string",
            "type": "string",
            "description": {},
            "enabled": true,
            "configuration": {}
          }
        ],
        "instalments": [
          {
            "id": "string",
            "dueDate": "2026-03-24",
            "startDate": "2026-03-24",
            "amount": 0,
            "paidAmount": 0,
            "currency": "string",
            "status": "CREATED",
            "createdAt": "2026-03-24T16:45:06Z",
            "updatedAt": "2026-03-24T16:45:06Z"
          }
        ],
        "metadata": {}
      }
    ],
    "paginationId": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK Successfully retrieved instalment plans with pagination support GetInstalmentPlans
400 Bad Request Incorrectly formed request Inline
401 Unauthorized Unauthorized Inline
403 Forbidden Access is denied Inline
429 Too Many Requests Request was throttled Inline
500 Internal Server Error Internal error occured Inline

Response Schema

Status Code 400

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 401

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 403

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 429

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Status Code 500

Name Type Required Restrictions Description
» error string false none none
» message string false none none

Schemas

AccountReference

"ACCOUNT_REFERENCE_002"

Account reference in your system

Properties

Name Type Required Restrictions Description
anonymous string false none Account reference in your system

PaymentReference

"paymentReference1"

Payment reference used in online transactions. It is a text reference that can be used to map the money transactions to other external systems.

Properties

Name Type Required Restrictions Description
anonymous string false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.

ClaimResolutionReason

"CLAIM_PAID"

The reason for the claim resolution.

Properties

Name Type Required Restrictions Description
anonymous string false none The reason for the claim resolution.

Enumerated Values

Property Value
anonymous CLAIM_SOLD
anonymous CLAIM_PAID
anonymous FRAUDULENT
anonymous CLAIM_DISCARDED
anonymous CLAIM_DISCHARGED
anonymous CLAIM_INVALIDATED

PortfolioReference

"EXTERNAL_PORTFOLIO_REFERENCE_002"

An optional grouping field for reporting and filtering purposes.

Properties

Name Type Required Restrictions Description
anonymous string false none An optional grouping field for reporting and filtering purposes.

ProductReference

"PRODUCT_REFERENCE_1"

Identifier for a product in your system. It is used for grouping purposes.

Properties

Name Type Required Restrictions Description
anonymous string false none Identifier for a product in your system. It is used for grouping purposes.

DebtorReference

"EXTERNAL_DEBTOR_REF_002"

Your customer ID for this person or company

Properties

Name Type Required Restrictions Description
anonymous string false none Your customer ID for this person or company

Currency

"EUR"

3-digit currency code (ISO 4217)

Properties

Name Type Required Restrictions Description
anonymous string false none 3-digit currency code (ISO 4217)

Amount

13025

Monetary value in cents (natural number)

Properties

Name Type Required Restrictions Description
anonymous integer false none Monetary value in cents (natural number)

RelativeAmount

-13025

Monetary value in cents (positive or negative number)

Properties

Name Type Required Restrictions Description
anonymous integer false none Monetary value in cents (positive or negative number)

DueDate

"2019-06-28"

Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.

Properties

Name Type Required Restrictions Description
anonymous string(date) false none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.

OriginalDueDate

"2019-06-28"

Original due date in your system. This is the day when it went past due. DPD 0.

Properties

Name Type Required Restrictions Description
anonymous string(date) false none Original due date in your system. This is the day when it went past due. DPD 0.

Metadata

{
  "sourceSystem": "system1"
}

Additional information related to the entity.

Properties

None

LedgerEntryReference

"INVOICE_LEDGER_ENTRY_REFERENCE_002"

Reference of the Ledger Entry (unique per Account)

Properties

Name Type Required Restrictions Description
anonymous string false none Reference of the Ledger Entry (unique per Account)

LedgerEntryCreatedAt

1621536535901

Timestamp when the ledger entry was created in milliseconds

Properties

Name Type Required Restrictions Description
anonymous integer false none Timestamp when the ledger entry was created in milliseconds

EntityWithAccountReference

{
  "accountReference": "ACCOUNT_REFERENCE_002"
}

Schema definition used in composition with other Entities, that have a reference to an Account

Properties

Name Type Required Restrictions Description
accountReference AccountReference true none Account reference in your system

Fee

{
  "name": "Interest",
  "amount": 13025
}

Additional expected payment amount.

Properties

Name Type Required Restrictions Description
name string true none Name of the fee.
amount Amount true none Monetary value in cents (natural number)

Account

{
  "currency": "EUR",
  "paymentReference": "paymentReference1",
  "meta": {
    "invoiceExternalNumber": 111
  },
  "scores": [
    {
      "type": "INTERNAL",
      "value": "V1"
    }
  ],
  "debtors": [
    {
      "lastName": "LAST_NAME_1",
      "firstName": "FIRST_NAME_1",
      "debtorReference": "EXTERNAL_DEBTOR_REF_001",
      "contactInformation": {
        "country": "DE",
        "email": "first.last@acme.com"
      }
    }
  ],
  "products": [
    {
      "productReference": "PRODUCT_REFERENCE_1",
      "paymentReference": "PRODUCT_PAYMENT_REFERENCE_1"
    },
    {
      "productReference": "PRODUCT_REFERENCE_2",
      "paymentReference": "PRODUCT_PAYMENT_REFERENCE_2"
    }
  ],
  "ledgerEntries": [
    {
      "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_1",
      "invoiceDetails": {
        "amount": 100000,
        "dueDate": "2022-01-08",
        "paymentReference": "INVOICE_PAYMENT_REFERENCE_1"
      },
      "context": {
        "productReference": "PRODUCT_REFERENCE_1"
      }
    }
  ]
}

A formal business arrangement providing for regular dealings or services (such as banking, advertising, or store credit) and involving the establishment and maintenance of an Account.

Properties

Name Type Required Restrictions Description
meta Metadata false none Additional information related to the entity.
paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
portfolioReference PortfolioReference false none An optional grouping field for reporting and filtering purposes.
currency Currency false none 3-digit currency code (ISO 4217)
scores [AccountScore] false none List of provided scores related with the Account.
debtors [Debtor] false none List of debtors related with the Account.
products [Product] false none List of products related with the Account.
ledgerEntries [LedgerEntry] false none Ledger used to create Managed Claims.

Debtor

{
  "birthday": "1980-06-28",
  "gender": "M",
  "firstName": "John",
  "lastName": "White",
  "middleName": "Benedict",
  "title": "Doctor",
  "companyName": "Acme Brick Co.",
  "debtorReference": "EXTERNAL_DEBTOR_REF_002",
  "SSN": "AAA-GG-SSSS",
  "type": "natural",
  "contactInformation": {
    "country": "DE",
    "city": "Delbrück",
    "mobileNumber": "+495555555555",
    "postalCode": 33129,
    "houseNumber": "24A",
    "addressLine1": "Boikweg 24",
    "addressLine2": "c/o Acme",
    "addressLine3": "first floor",
    "landLine": "+495555555555",
    "state": "Dortmund",
    "email": "testEmail@example.com",
    "additionalContactInformation": [
      {
        "email": "testEmail@example.com"
      }
    ]
  }
}

The Debtor is the entity that owes the money. It can be a person (natural) or a company (legal). Notes: - If the debtor is a person (natural), then firstName and lastName are required. - If the debtor is a company (legal), then companyName is required.

Properties

allOf

Name Type Required Restrictions Description
anonymous BaseDebtor false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» contactInformation ContactInformation true none Contact information of the debtor, used for communication purposes.

ContactInformation

{
  "country": "DE",
  "city": "Delbrück",
  "mobileNumber": "+495555555555",
  "postalCode": 33129,
  "houseNumber": "24A",
  "addressLine1": "Boikweg 24",
  "addressLine2": "c/o Acme",
  "addressLine3": "first floor",
  "landLine": "+495555555555",
  "state": "Dortmund",
  "email": "testEmail@example.com",
  "additionalContactInformation": [
    {
      "email": "testEmail@example.com"
    }
  ]
}

Contact information of the debtor, used for communication purposes.

Properties

allOf

Name Type Required Restrictions Description
anonymous BaseContactInformation false none none

and

Name Type Required Restrictions Description
anonymous object false none none

BaseContactInformation

{
  "country": "DE",
  "city": "Delbrück",
  "mobileNumber": "+495555555555",
  "postalCode": 33129,
  "houseNumber": "24A",
  "addressLine1": "Boikweg 24",
  "addressLine2": "c/o Acme",
  "addressLine3": "first floor",
  "landLine": "+495555555555",
  "state": "Dortmund",
  "email": "testEmail@example.com",
  "additionalContactInformation": [
    {
      "email": "testEmail@example.com"
    }
  ]
}

Properties

Name Type Required Restrictions Description
country string false none 2-digit country code (ISO 3166-1). This is required for the localization and payment providers.
city string false none City
mobileNumber string false none Mobile number in E.164 format (e.g. +49555555555)
postalCode string false none Postal Code
houseNumber string false none House number as part of the address
addressLine1 string false none Address Line 1
addressLine2 string false none Address Line 2
addressLine3 string false none Address Line 3
landLine string false none Landline number in E.164 format (e.g. +49555555555)
state string false none State
email string false none Email Address
additionalContactInformation [oneOf] false none none

oneOf

Name Type Required Restrictions Description
» anonymous object false none none
»» email string true none Email Address

xor

Name Type Required Restrictions Description
» anonymous object false none none
»» mobileNumber string true none Mobile number in E.164 format (e.g. +49555555555)

xor

Name Type Required Restrictions Description
» anonymous object false none none
»» landLine string true none Landline number in E.164 format (e.g. +49555555555)

xor

Name Type Required Restrictions Description
» anonymous object false none none
»» workPhoneNumber string true none Work phone number in E.164 format (e.g. +49555555555)

BaseDebtor

{
  "birthday": "1980-06-28",
  "gender": "M",
  "firstName": "John",
  "lastName": "White",
  "middleName": "Benedict",
  "title": "Doctor",
  "companyName": "Acme Brick Co.",
  "debtorReference": "EXTERNAL_DEBTOR_REF_002",
  "SSN": "AAA-GG-SSSS",
  "type": "natural",
  "contactInformation": {
    "country": "DE",
    "city": "Delbrück",
    "mobileNumber": "+495555555555",
    "postalCode": 33129,
    "houseNumber": "24A",
    "addressLine1": "Boikweg 24",
    "addressLine2": "c/o Acme",
    "addressLine3": "first floor",
    "landLine": "+495555555555",
    "state": "Dortmund",
    "email": "testEmail@example.com",
    "additionalContactInformation": [
      {
        "email": "testEmail@example.com"
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
birthday string(date) false none Birthday of the debtor
gender string false none Gender of the debtor
firstName string false none First name of the debtor (required if type is 'natural')
lastName string false none Last name of the debtor (required if type is 'natural')
middleName string false none Middle name of the debtor
title string false none Title of the debtor
companyName string false none Company Name of the debtor (required if type is 'legal')
debtorReference DebtorReference false none Your customer ID for this person or company
SSN string false none National Identification Number of the debtor
type string false none Type of the debtor (default: natural)
contactInformation BaseContactInformation false none none

Enumerated Values

Property Value
type natural
type legal

Product

{
  "productReference": "PRODUCT_REFERENCE_1",
  "paymentReference": "paymentReference1",
  "type": "Computer",
  "name": "Macbook Pro",
  "code": "111-22222-3333",
  "meta": {
    "sourceSystem": "system1"
  }
}

A product is a service or item used to give context to the Claim or Ledger Entry

Properties

Name Type Required Restrictions Description
productReference ProductReference true none Identifier for a product in your system. It is used for grouping purposes.
paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
type string false none Type of product
name string false none Product name
code string false none Product code
meta Metadata false none Additional information related to the entity.

BaseClaim

{
  "amount": 13025,
  "currency": "EUR",
  "product": {
    "productReference": "PRODUCT_REFERENCE_1",
    "paymentReference": "paymentReference1",
    "type": "Computer",
    "name": "Macbook Pro",
    "code": "111-22222-3333",
    "meta": {
      "sourceSystem": "system1"
    }
  },
  "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
  "productReference": "PRODUCT_REFERENCE_1",
  "creditorReference": "string",
  "totalFees": 13025,
  "currentDueDate": "2019-06-28",
  "originalDueDate": "2019-06-28",
  "scores": [
    {
      "type": "INTERNAL",
      "value": "risky",
      "meta": {
        "sourceSystem": "system1"
      }
    }
  ],
  "reason": "string",
  "paymentReference": "paymentReference1",
  "accountNumber": "string",
  "accountReference": "ACCOUNT_REFERENCE_002",
  "meta": {
    "sourceSystem": "system1"
  },
  "fees": [
    {
      "name": "Interest",
      "amount": 13025
    }
  ],
  "linkGroupId": null,
  "primaryDebtor": {
    "birthday": "1980-06-28",
    "gender": "M",
    "firstName": "John",
    "lastName": "White",
    "middleName": "Benedict",
    "title": "Doctor",
    "companyName": "Acme Brick Co.",
    "debtorReference": "EXTERNAL_DEBTOR_REF_002",
    "SSN": "AAA-GG-SSSS",
    "type": "natural",
    "contactInformation": {
      "country": "DE",
      "city": "Delbrück",
      "mobileNumber": "+495555555555",
      "postalCode": 33129,
      "houseNumber": "24A",
      "addressLine1": "Boikweg 24",
      "addressLine2": "c/o Acme",
      "addressLine3": "first floor",
      "landLine": "+495555555555",
      "state": "Dortmund",
      "email": "testEmail@example.com",
      "additionalContactInformation": [
        {
          "email": "testEmail@example.com"
        }
      ]
    }
  }
}

A claim is an outstanding payment that is owed. You can always update this balance if multiple payments are missed and you want to aggregate the amounts.

Properties

Name Type Required Restrictions Description
amount Amount false none Monetary value in cents (natural number)
currency Currency false none 3-digit currency code (ISO 4217)
product Product false none A product is a service or item used to give context to the Claim or Ledger Entry
portfolioReference PortfolioReference false none An optional grouping field for reporting and filtering purposes.
productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
creditorReference string false none Reference of the person/company to whom money is owed
totalFees Amount false none Monetary value in cents (natural number)
currentDueDate DueDate false none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
originalDueDate OriginalDueDate false none Original due date in your system. This is the day when it went past due. DPD 0.
scores [ClaimScore] false none List of scores
reason string false none Reason for updating a claim (the reason must not be part of the Entity)
paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
accountNumber any false none none

allOf

Name Type Required Restrictions Description
» anonymous AccountReference false none Account reference in your system

and

Name Type Required Restrictions Description
» anonymous number false none Account number in your system (DEPRECATED, use accountReference)

continued

Name Type Required Restrictions Description
accountReference AccountReference false none Account reference in your system
meta Metadata false none Additional information related to the entity.
fees [Fee] false none List of fees. If neither fees nor totalFees are provided - we treat totalFees as 0. Using this field overwrites the totalFees value if you provided it as well.
linkGroupId any false none Group id to link claims together

oneOf

Name Type Required Restrictions Description
» anonymous null false none none

xor

Name Type Required Restrictions Description
» anonymous string(uuid) false none none

continued

Name Type Required Restrictions Description
primaryDebtor BaseDebtor false none none

Claim

{
  "amount": 13025,
  "currency": "EUR",
  "product": {
    "productReference": "PRODUCT_REFERENCE_1",
    "paymentReference": "paymentReference1",
    "type": "Computer",
    "name": "Macbook Pro",
    "code": "111-22222-3333",
    "meta": {
      "sourceSystem": "system1"
    }
  },
  "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
  "productReference": "PRODUCT_REFERENCE_1",
  "creditorReference": "string",
  "totalFees": 13025,
  "currentDueDate": "2019-06-28",
  "originalDueDate": "2019-06-28",
  "scores": [
    {
      "type": "INTERNAL",
      "value": "risky",
      "meta": {
        "sourceSystem": "system1"
      }
    }
  ],
  "reason": "string",
  "paymentReference": "paymentReference1",
  "accountNumber": "string",
  "accountReference": "ACCOUNT_REFERENCE_002",
  "meta": {
    "sourceSystem": "system1"
  },
  "fees": [
    {
      "name": "Interest",
      "amount": 13025
    }
  ],
  "linkGroupId": null,
  "primaryDebtor": {
    "birthday": "1980-06-28",
    "gender": "M",
    "firstName": "John",
    "lastName": "White",
    "middleName": "Benedict",
    "title": "Doctor",
    "companyName": "Acme Brick Co.",
    "debtorReference": "EXTERNAL_DEBTOR_REF_002",
    "SSN": "AAA-GG-SSSS",
    "type": "natural",
    "contactInformation": {
      "country": "DE",
      "city": "Delbrück",
      "mobileNumber": "+495555555555",
      "postalCode": 33129,
      "houseNumber": "24A",
      "addressLine1": "Boikweg 24",
      "addressLine2": "c/o Acme",
      "addressLine3": "first floor",
      "landLine": "+495555555555",
      "state": "Dortmund",
      "email": "testEmail@example.com",
      "additionalContactInformation": [
        {
          "email": "testEmail@example.com"
        }
      ]
    }
  }
}

Properties

allOf

Name Type Required Restrictions Description
anonymous BaseClaim false none A claim is an outstanding payment that is owed. You can always update this balance if multiple payments are missed and you want to aggregate the amounts.

and

Name Type Required Restrictions Description
anonymous object false none none
» primaryDebtor Debtor true none The Debtor is the entity that owes the money. It can be a person (natural) or a company (legal).
Notes:
- If the debtor is a person (natural), then firstName and lastName are required.
- If the debtor is a company (legal), then companyName is required.

ClaimScore

{
  "type": "INTERNAL",
  "value": "risky",
  "meta": {
    "sourceSystem": "system1"
  }
}

An Claim Score is a score that is calculated for a specific claim.

Properties

Name Type Required Restrictions Description
type string true none Type of score
value any true none none

oneOf

Name Type Required Restrictions Description
» anonymous string false none The score's value

xor

Name Type Required Restrictions Description
» anonymous object false none composed value

xor

Name Type Required Restrictions Description
» anonymous null false none No value

continued

Name Type Required Restrictions Description
meta Metadata false none Additional information related to the entity.

Enumerated Values

Property Value
type INTERNAL
type EXTERNAL
type COLLECTION
type BEHAVIORAL

AccountScore

{
  "type": "INTERNAL",
  "value": "risky",
  "meta": {
    "sourceSystem": "system1"
  }
}

An account score is a score that is calculated for a specific account. It can be used to determine the risk of a debtor or any other information that is relevant for the account.

Properties

Name Type Required Restrictions Description
type string true none Type of score
value any true none none

oneOf

Name Type Required Restrictions Description
» anonymous string false none The score's value

xor

Name Type Required Restrictions Description
» anonymous object false none composed value

xor

Name Type Required Restrictions Description
» anonymous null false none No value

continued

Name Type Required Restrictions Description
meta Metadata false none Additional information related to the entity.

Enumerated Values

Property Value
type INTERNAL
type EXTERNAL
type COLLECTION
type BEHAVIORAL

LedgerEntry

{
  "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_1",
  "invoiceDetails": {
    "amount": 100000,
    "dueDate": "2022-01-08",
    "paymentReference": "INVOICE_PAYMENT_REFERENCE_1"
  },
  "context": {
    "productReference": "PRODUCT_REFERENCE_1"
  }
}

A Ledger Entry is a record of a transaction in the Ledger.

Properties

oneOf

Name Type Required Restrictions Description
anonymous FeeLedgerEntry false none none

xor

Name Type Required Restrictions Description
anonymous InvoiceLedgerEntry false none An Invoice Ledger Entry is a type of Ledger Entry that represents a claim in the system.

xor

Name Type Required Restrictions Description
anonymous PaymentLedgerEntry false none none

xor

Name Type Required Restrictions Description
anonymous AdjustmentLedgerEntry false none none

xor

Name Type Required Restrictions Description
anonymous ChargebackLedgerEntry false none none

xor

Name Type Required Restrictions Description
anonymous DiscountLedgerEntry false none none

xor

Name Type Required Restrictions Description
anonymous ReportingLedgerEntry false none none

InvoiceLedgerEntry

{
  "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002",
  "invoiceDetails": {
    "amount": 13025,
    "createdAt": 1621536535901,
    "dueDate": "2019-06-28",
    "paymentReference": "paymentReference1",
    "meta": {
      "sourceSystem": "system1"
    }
  },
  "context": {
    "productReference": "PRODUCT_REFERENCE_1",
    "externalDebtorReference": "EXTERNAL_DEBTOR_REF_002"
  }
}

An Invoice Ledger Entry is a type of Ledger Entry that represents a claim in the system.

Properties

Name Type Required Restrictions Description
ledgerEntryReference LedgerEntryReference true none Reference of the Ledger Entry (unique per Account)
invoiceDetails object true none none
» amount Amount true none Monetary value in cents (natural number)
» createdAt LedgerEntryCreatedAt false none Timestamp when the ledger entry was created in milliseconds
» dueDate DueDate true none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
» meta Metadata false none Additional information related to the entity.
context object true none Describes the specific context of the Ledger Entry
» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
» externalDebtorReference DebtorReference false none Your customer ID for this person or company

FeeLedgerEntry

{
  "ledgerEntryReference": "string",
  "feeDetails": {
    "type": "COLLECTION_FEE",
    "amount": 13025,
    "createdAt": 1621536535901,
    "meta": {
      "sourceSystem": "system1"
    }
  },
  "context": {
    "productReference": "PRODUCT_REFERENCE_1",
    "ledgerEntryReference": "string"
  }
}

Properties

Name Type Required Restrictions Description
ledgerEntryReference string true none Reference of the Fee Ledger Entry
feeDetails object true none none
» type string false none Type of fee
» amount Amount true none Monetary value in cents (natural number)
» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
» meta Metadata false none Additional information related to the entity.
context object true none Describes the specific context of the entry
» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
» ledgerEntryReference string false none Relationship of the fee with another ledger entry

PaymentLedgerEntry

{
  "ledgerEntryReference": "string",
  "paymentDetails": {
    "amount": 13025,
    "paymentReference": "paymentReference1",
    "createdAt": 1621536535901,
    "paymentProvider": "string",
    "meta": {
      "sourceSystem": "system1"
    }
  },
  "context": {
    "productReference": "PRODUCT_REFERENCE_1",
    "ledgerEntryReference": "string"
  }
}

Properties

Name Type Required Restrictions Description
ledgerEntryReference string true none Reference of the Payment Ledger Entry
paymentDetails object true none none
» amount Amount true none Monetary value in cents (natural number)
» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
» paymentProvider string false none Name of the provider used for the transaction
» meta Metadata false none Additional information related to the entity.
context object true none Describes the specific context of the entry
» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
» ledgerEntryReference string false none Defines the target of the payment ledger entry

ChargebackLedgerEntry

{
  "ledgerEntryReference": "string",
  "chargebackDetails": {
    "amount": 13025,
    "createdAt": 1621536535901,
    "meta": {
      "sourceSystem": "system1"
    }
  },
  "context": {
    "productReference": "PRODUCT_REFERENCE_1",
    "ledgerEntryReference": "string"
  }
}

Properties

Name Type Required Restrictions Description
ledgerEntryReference string true none Reference of the Chargeback Ledger Entry
chargebackDetails object true none none
» amount Amount true none Monetary value in cents (natural number)
» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
» meta Metadata false none Additional information related to the entity.
context object true none Describes the specific context of the entry
» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
» ledgerEntryReference string true none Defines the target of the chargeback ledger entry

DiscountLedgerEntry

{
  "ledgerEntryReference": "string",
  "discountDetails": {
    "amount": 13025,
    "createdAt": 1621536535901,
    "meta": {
      "sourceSystem": "system1"
    }
  },
  "context": {
    "productReference": "PRODUCT_REFERENCE_1",
    "ledgerEntryReference": "string"
  }
}

Properties

Name Type Required Restrictions Description
ledgerEntryReference string true none Reference of the Discount Ledger Entry
discountDetails object true none none
» amount Amount true none Monetary value in cents (natural number)
» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
» meta Metadata false none Additional information related to the entity.
context object true none Describes the specific context of the entry
» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
» ledgerEntryReference string true none Defines the target of the discount ledger entry

AdjustmentLedgerEntry

{
  "ledgerEntryReference": "string",
  "adjustmentDetails": {
    "reason": "INVALID",
    "amount": -13025,
    "dueDate": "2019-06-28",
    "createdAt": 1621536535901,
    "meta": {
      "sourceSystem": "system1"
    }
  },
  "context": {
    "productReference": "PRODUCT_REFERENCE_1",
    "ledgerEntryReference": "string"
  }
}

Properties

Name Type Required Restrictions Description
ledgerEntryReference string true none Reference of the Adjustment Ledger Entry
adjustmentDetails object true none none
» reason string false none Reason for the adjustment
» amount RelativeAmount true none Monetary value in cents (positive or negative number)
» dueDate DueDate false none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.
» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
» meta Metadata false none Additional information related to the entity.
context object true none Describes the specific context of the entry
» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
» ledgerEntryReference string false none Defines the target of the payment ledger entry

ReportingLedgerEntry

{
  "ledgerEntryReference": "string",
  "reportingDetails": {
    "amount": 13025,
    "createdAt": 1621536535901,
    "meta": {
      "sourceSystem": "system1"
    }
  },
  "context": {
    "productReference": "PRODUCT_REFERENCE_1"
  }
}

Properties

Name Type Required Restrictions Description
ledgerEntryReference string true none Reference of the Reporting Ledger Entry
reportingDetails object true none none
» amount Amount true none Monetary value in cents (natural number)
» createdAt integer false none Timestamp when the ledger entry was created in milliseconds
» meta Metadata false none Additional information related to the entity.
context object true none Describes the specific context of the entry
» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.

PromiseToPay

{
  "amount": 13025,
  "currency": "EUR",
  "dueDate": "2019-06-28"
}

A promise to pay is a commitment from a debtor to pay a certain amount at a certain date.

Properties

Name Type Required Restrictions Description
amount Amount true none Monetary value in cents (natural number)
currency Currency true none 3-digit currency code (ISO 4217)
dueDate DueDate true none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.

AccountMandate

{
  "mandateId": "d34b443e-968e-4647-80ec-292ee38c8b34",
  "accountReference": "ACCOUNT_REFERENCE_002",
  "providerName": "trustly",
  "debtorReference": "EXTERNAL_DEBTOR_REF_002",
  "productReferences": [
    "PRODUCT_REFERENCE_1"
  ],
  "mandateRepresentation": {
    "holderName": "string",
    "bankName": "string",
    "accountNumber": "string"
  }
}

Properties

Name Type Required Restrictions Description
mandateId string true none mandate id (can be the mandate id of external system)
accountReference AccountReference true none Account reference in your system
providerName string true none Name of payment provider
debtorReference DebtorReference false none Your customer ID for this person or company
productReferences [ProductReference] false none Product References
mandateRepresentation any false none none

oneOf

Name Type Required Restrictions Description
» anonymous MandateAccountTypeRepresentation false none none

xor

Name Type Required Restrictions Description
» anonymous MandateCardTypeRepresentation false none none

MandateCardTypeRepresentation

{
  "cardIssuer": "VISA",
  "lastDigits": "1404",
  "holderName": "string",
  "expiryMonth": 5,
  "expiryYear": 2023,
  "bankName": "string"
}

Properties

Name Type Required Restrictions Description
cardIssuer string true none none
lastDigits string true none none
holderName string false none none
expiryMonth string false none none
expiryYear string false none none
bankName string false none none

MandateAccountTypeRepresentation

{
  "holderName": "string",
  "bankName": "string",
  "accountNumber": "string"
}

Properties

Name Type Required Restrictions Description
holderName string false none none
bankName string true none none
accountNumber string true none none

CreateAccountInput

{
  "currency": "EUR",
  "paymentReference": "paymentReference1",
  "meta": {
    "invoiceExternalNumber": 111
  },
  "scores": [
    {
      "type": "INTERNAL",
      "value": "V1"
    }
  ],
  "debtors": [
    {
      "lastName": "LAST_NAME_1",
      "firstName": "FIRST_NAME_1",
      "debtorReference": "EXTERNAL_DEBTOR_REF_001",
      "contactInformation": {
        "country": "DE",
        "email": "first.last@acme.com"
      }
    }
  ],
  "products": [
    {
      "productReference": "PRODUCT_REFERENCE_1",
      "paymentReference": "PRODUCT_PAYMENT_REFERENCE_1"
    },
    {
      "productReference": "PRODUCT_REFERENCE_2",
      "paymentReference": "PRODUCT_PAYMENT_REFERENCE_2"
    }
  ],
  "ledgerEntries": [
    {
      "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_1",
      "invoiceDetails": {
        "amount": 100000,
        "dueDate": "2022-01-08",
        "paymentReference": "INVOICE_PAYMENT_REFERENCE_1"
      },
      "context": {
        "productReference": "PRODUCT_REFERENCE_1"
      }
    }
  ]
}

Input for create_account endpoint.

Properties

allOf

Name Type Required Restrictions Description
anonymous Account false none A formal business arrangement providing for regular dealings or services (such as banking, advertising, or store credit) and involving the establishment and maintenance of an Account.

and

Name Type Required Restrictions Description
anonymous object false none none
» currency Currency true none 3-digit currency code (ISO 4217)

UpdateClaimOptions

{
  "options": {
    "forceAmountCheck": false
  }
}

Additional modifiers when updating claims

Properties

Name Type Required Restrictions Description
options object false none none
» forceAmountCheck boolean false none When true, forces re-evaluation of the Claim status after an amount update (e.g. to auto-resolve a Claim whose amount has been set to zero).

CreateClaimInput

{
  "amount": 13025,
  "currency": "EUR",
  "product": {
    "productReference": "PRODUCT_REFERENCE_1",
    "paymentReference": "paymentReference1",
    "type": "Computer",
    "name": "Macbook Pro",
    "code": "111-22222-3333",
    "meta": {
      "sourceSystem": "system1"
    }
  },
  "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
  "productReference": "PRODUCT_REFERENCE_1",
  "creditorReference": "string",
  "totalFees": 13025,
  "currentDueDate": "2019-06-28",
  "originalDueDate": "2019-06-28",
  "scores": [
    {
      "type": "INTERNAL",
      "value": "risky",
      "meta": {
        "sourceSystem": "system1"
      }
    }
  ],
  "reason": "string",
  "paymentReference": "paymentReference1",
  "accountNumber": "string",
  "accountReference": "ACCOUNT_REFERENCE_002",
  "meta": {
    "sourceSystem": "system1"
  },
  "fees": [
    {
      "name": "Interest",
      "amount": 13025
    }
  ],
  "linkGroupId": null,
  "primaryDebtor": {
    "birthday": "1980-06-28",
    "gender": "M",
    "firstName": "John",
    "lastName": "White",
    "middleName": "Benedict",
    "title": "Doctor",
    "companyName": "Acme Brick Co.",
    "debtorReference": "EXTERNAL_DEBTOR_REF_002",
    "SSN": "AAA-GG-SSSS",
    "type": "natural",
    "contactInformation": {
      "country": "DE",
      "city": "Delbrück",
      "mobileNumber": "+495555555555",
      "postalCode": 33129,
      "houseNumber": "24A",
      "addressLine1": "Boikweg 24",
      "addressLine2": "c/o Acme",
      "addressLine3": "first floor",
      "landLine": "+495555555555",
      "state": "Dortmund",
      "email": "testEmail@example.com",
      "additionalContactInformation": [
        {
          "email": "testEmail@example.com"
        }
      ]
    }
  }
}

Input for create_claims endpoint.

Properties

None

UpdateClaimInput

{
  "amount": 13025,
  "currency": "EUR",
  "product": {
    "productReference": "PRODUCT_REFERENCE_1",
    "paymentReference": "paymentReference1",
    "type": "Computer",
    "name": "Macbook Pro",
    "code": "111-22222-3333",
    "meta": {
      "sourceSystem": "system1"
    }
  },
  "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
  "productReference": "PRODUCT_REFERENCE_1",
  "creditorReference": "string",
  "totalFees": 13025,
  "currentDueDate": "2019-06-28",
  "originalDueDate": "2019-06-28",
  "scores": [
    {
      "type": "INTERNAL",
      "value": "risky",
      "meta": {
        "sourceSystem": "system1"
      }
    }
  ],
  "reason": "string",
  "paymentReference": "paymentReference1",
  "accountNumber": "string",
  "accountReference": "ACCOUNT_REFERENCE_002",
  "meta": {
    "sourceSystem": "system1"
  },
  "fees": [
    {
      "name": "Interest",
      "amount": 13025
    }
  ],
  "linkGroupId": null,
  "primaryDebtor": {
    "birthday": "1980-06-28",
    "gender": "M",
    "firstName": "John",
    "lastName": "White",
    "middleName": "Benedict",
    "title": "Doctor",
    "companyName": "Acme Brick Co.",
    "debtorReference": "EXTERNAL_DEBTOR_REF_002",
    "SSN": "AAA-GG-SSSS",
    "type": "natural",
    "contactInformation": {
      "country": "DE",
      "city": "Delbrück",
      "mobileNumber": "+495555555555",
      "postalCode": 33129,
      "houseNumber": "24A",
      "addressLine1": "Boikweg 24",
      "addressLine2": "c/o Acme",
      "addressLine3": "first floor",
      "landLine": "+495555555555",
      "state": "Dortmund",
      "email": "testEmail@example.com",
      "additionalContactInformation": [
        {
          "email": "testEmail@example.com"
        }
      ]
    }
  },
  "options": {
    "forceAmountCheck": false
  }
}

Input for update_claims endpoint.

Properties

allOf

Name Type Required Restrictions Description
anonymous BaseClaim false none A claim is an outstanding payment that is owed. You can always update this balance if multiple payments are missed and you want to aggregate the amounts.

and

Name Type Required Restrictions Description
anonymous UpdateClaimOptions false none Additional modifiers when updating claims

ImportClaimInput

{
  "amount": 13025,
  "currency": "EUR",
  "product": {
    "productReference": "PRODUCT_REFERENCE_1",
    "paymentReference": "paymentReference1",
    "type": "Computer",
    "name": "Macbook Pro",
    "code": "111-22222-3333",
    "meta": {
      "sourceSystem": "system1"
    }
  },
  "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
  "productReference": "PRODUCT_REFERENCE_1",
  "creditorReference": "string",
  "totalFees": 13025,
  "currentDueDate": "2019-06-28",
  "originalDueDate": "2019-06-28",
  "scores": [
    {
      "type": "INTERNAL",
      "value": "risky",
      "meta": {
        "sourceSystem": "system1"
      }
    }
  ],
  "reason": "string",
  "paymentReference": "paymentReference1",
  "accountNumber": "string",
  "accountReference": "ACCOUNT_REFERENCE_002",
  "meta": {
    "sourceSystem": "system1"
  },
  "fees": [
    {
      "name": "Interest",
      "amount": 13025
    }
  ],
  "linkGroupId": null,
  "primaryDebtor": {
    "birthday": "1980-06-28",
    "gender": "M",
    "firstName": "John",
    "lastName": "White",
    "middleName": "Benedict",
    "title": "Doctor",
    "companyName": "Acme Brick Co.",
    "debtorReference": "EXTERNAL_DEBTOR_REF_002",
    "SSN": "AAA-GG-SSSS",
    "type": "natural",
    "contactInformation": {
      "country": "DE",
      "city": "Delbrück",
      "mobileNumber": "+495555555555",
      "postalCode": 33129,
      "houseNumber": "24A",
      "addressLine1": "Boikweg 24",
      "addressLine2": "c/o Acme",
      "addressLine3": "first floor",
      "landLine": "+495555555555",
      "state": "Dortmund",
      "email": "testEmail@example.com",
      "additionalContactInformation": [
        {
          "email": "testEmail@example.com"
        }
      ]
    }
  },
  "options": {
    "forceAmountCheck": false
  }
}

Input for import_claims endpoint (upsert — create or update).

Properties

allOf

Name Type Required Restrictions Description
anonymous ClaimInput false none Used when creating or importing claims

and

Name Type Required Restrictions Description
anonymous UpdateClaimOptions false none Additional modifiers when updating claims

ClaimInput

{
  "amount": 13025,
  "currency": "EUR",
  "product": {
    "productReference": "PRODUCT_REFERENCE_1",
    "paymentReference": "paymentReference1",
    "type": "Computer",
    "name": "Macbook Pro",
    "code": "111-22222-3333",
    "meta": {
      "sourceSystem": "system1"
    }
  },
  "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
  "productReference": "PRODUCT_REFERENCE_1",
  "creditorReference": "string",
  "totalFees": 13025,
  "currentDueDate": "2019-06-28",
  "originalDueDate": "2019-06-28",
  "scores": [
    {
      "type": "INTERNAL",
      "value": "risky",
      "meta": {
        "sourceSystem": "system1"
      }
    }
  ],
  "reason": "string",
  "paymentReference": "paymentReference1",
  "accountNumber": "string",
  "accountReference": "ACCOUNT_REFERENCE_002",
  "meta": {
    "sourceSystem": "system1"
  },
  "fees": [
    {
      "name": "Interest",
      "amount": 13025
    }
  ],
  "linkGroupId": null,
  "primaryDebtor": {
    "birthday": "1980-06-28",
    "gender": "M",
    "firstName": "John",
    "lastName": "White",
    "middleName": "Benedict",
    "title": "Doctor",
    "companyName": "Acme Brick Co.",
    "debtorReference": "EXTERNAL_DEBTOR_REF_002",
    "SSN": "AAA-GG-SSSS",
    "type": "natural",
    "contactInformation": {
      "country": "DE",
      "city": "Delbrück",
      "mobileNumber": "+495555555555",
      "postalCode": 33129,
      "houseNumber": "24A",
      "addressLine1": "Boikweg 24",
      "addressLine2": "c/o Acme",
      "addressLine3": "first floor",
      "landLine": "+495555555555",
      "state": "Dortmund",
      "email": "testEmail@example.com",
      "additionalContactInformation": [
        {
          "email": "testEmail@example.com"
        }
      ]
    }
  }
}

Used when creating or importing claims

Properties

allOf

Name Type Required Restrictions Description
anonymous BaseClaim false none A claim is an outstanding payment that is owed. You can always update this balance if multiple payments are missed and you want to aggregate the amounts.

and

Name Type Required Restrictions Description
anonymous object false none none
» originalDueDate OriginalDueDate true none Original due date in your system. This is the day when it went past due. DPD 0.
» currentDueDate DueDate true none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.

and

Name Type Required Restrictions Description
anonymous any false none none

anyOf

Name Type Required Restrictions Description
» anonymous object false none The accountReference is optional, but primaryDebtor and currency are required
»» primaryDebtor Debtor true none The Debtor is the entity that owes the money. It can be a person (natural) or a company (legal).
Notes:
- If the debtor is a person (natural), then firstName and lastName are required.
- If the debtor is a company (legal), then companyName is required.

or

Name Type Required Restrictions Description
» anonymous object false none The primaryDebtor and the currency of the Account is used if not specified in the Claim

UpdateAccountLedgerEntriesAmountsInput

{
  "accountReference": "ACCOUNT_REFERENCE_002",
  "ledgerEntries": [
    {
      "ledgerEntryReference": "string",
      "amount": 13025,
      "reason": "PAYMENT",
      "meta": {
        "sourceSystem": "system1"
      }
    }
  ]
}

Input for update_account_ledger_entries_amounts endpoint.

Properties

Name Type Required Restrictions Description
accountReference AccountReference true none Account reference in your system
ledgerEntries [object] true none none
» ledgerEntryReference string true none Reference of the Ledger Entry (Invoice or Fee)
» amount integer true none Amount in cents
» reason string true none Reason for the amount update. Special values: PAYMENT creates a Payment Ledger Entry; CHARGEBACK creates a Chargeback Ledger Entry. Any other string (e.g. INVALID, WRITE_OFF) creates an Adjustment Ledger Entry.
» meta Metadata true none Additional information related to the entity.

MatchAccountPaymentInput

{
  "providerName": "trustly",
  "trackingId": 3889445415,
  "totalAmount": 13025,
  "currency": "EUR",
  "paymentReference": "paymentReference1",
  "meta": {},
  "context": {
    "productReference": "PRODUCT_REFERENCE_1",
    "feeLedgerEntriesOrder": [
      "string"
    ]
  },
  "matchStrategy": "ORDERED_LEDGER_ENTRIES"
}

Input for match_account_payment endpoint.

Properties

Name Type Required Restrictions Description
providerName string false none Name of payment provider
trackingId string false none This is the orderID or other identifier from the payment provider
totalAmount Amount true none Monetary value in cents (natural number)
currency Currency true none 3-digit currency code (ISO 4217)
paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
meta object false none Additional information related to the transaction
context object false none Context used to do the matching of the payment
» productReference ProductReference false none Identifier for a product in your system. It is used for grouping purposes.
» feeLedgerEntriesOrder [string] false none Order of fee ledger entry types used for the payment priority (only for CUSTOM_ORDERED_FEES, ignored otherwise)
matchStrategy string true none Strategy used to distribute the payment amount across Claims.
- ORDERED_LEDGER_ENTRIES — applies the payment to ledger entries in chronological order.
- ORDERED_INVOICES_WITH_FEES_THEN_ACCOUNT_ENTRIES — pays invoices and their associated fees first, then applies any remainder to account-level entries.
- ACCOUNT_ENTRIES_THEN_ORDERED_INVOICES_WITH_FEES — pays account-level entries first, then invoices and fees.
- CUSTOM_ORDERED_FEES — applies fees in the order specified in context.feeLedgerEntriesOrder; requires that field to be set.

Enumerated Values

Property Value
matchStrategy ORDERED_LEDGER_ENTRIES
matchStrategy ORDERED_INVOICES_WITH_FEES_THEN_ACCOUNT_ENTRIES
matchStrategy ACCOUNT_ENTRIES_THEN_ORDERED_INVOICES_WITH_FEES
matchStrategy CUSTOM_ORDERED_FEES

AccountMandateDeleteInput

{
  "accountReference": "ACCOUNT_REFERENCE_002",
  "mandateId": "d34b443e-968e-4647-80ec-292ee38c8b34"
}

Input for delete_account_mandates endpoint.

Properties

Name Type Required Restrictions Description
accountReference AccountReference true none Account reference in your system
mandateId string true none mandate id (can be the mandate id of external system)

BaseAccountMandateInput

{
  "mandateId": "d34b443e-968e-4647-80ec-292ee38c8b34",
  "accountReference": "ACCOUNT_REFERENCE_002",
  "providerName": "trustly",
  "debtorReference": "EXTERNAL_DEBTOR_REF_002",
  "productReferences": [
    "PRODUCT_REFERENCE_1"
  ],
  "mandateRepresentation": {
    "holderName": "string",
    "bankName": "string",
    "accountNumber": "string"
  }
}

Properties

Name Type Required Restrictions Description
mandateId string true none mandate id (can be the mandate id of external system)
accountReference AccountReference true none Account reference in your system
providerName string true none Name of payment provider
debtorReference DebtorReference true none Your customer ID for this person or company
productReferences [ProductReference] true none Product References
mandateRepresentation any false none none

oneOf

Name Type Required Restrictions Description
» anonymous MandateAccountTypeRepresentation false none none

xor

Name Type Required Restrictions Description
» anonymous MandateCardTypeRepresentation false none none

PaylandsAccountMandateInput

{
  "mandateId": "d34b443e-968e-4647-80ec-292ee38c8b34",
  "accountReference": "ACCOUNT_REFERENCE_002",
  "providerName": "paylandsenBizum",
  "debtorReference": "EXTERNAL_DEBTOR_REF_002",
  "productReferences": [
    "PRODUCT_REFERENCE_1"
  ],
  "mandateRepresentation": {
    "holderName": "string",
    "bankName": "string",
    "accountNumber": "string"
  },
  "clientIpAddress": "string"
}

Properties

allOf

Name Type Required Restrictions Description
anonymous BaseAccountMandateInput false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» providerName string true none none
» clientIpAddress string true none The customer ip address is needed for Paylands mandate to work

Enumerated Values

Property Value
providerName paylandsenBizum
providerName paylandsenCards

SplitAccountMandateInput

{
  "mandateId": "d34b443e-968e-4647-80ec-292ee38c8b34",
  "accountReference": "ACCOUNT_REFERENCE_002",
  "providerName": "split",
  "debtorReference": "EXTERNAL_DEBTOR_REF_002",
  "productReferences": [
    "PRODUCT_REFERENCE_1"
  ],
  "mandateRepresentation": {
    "holderName": "string",
    "bankName": "string",
    "accountNumber": "string"
  }
}

Properties

allOf

Name Type Required Restrictions Description
anonymous BaseAccountMandateInput false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» providerName string true none none

Enumerated Values

Property Value
providerName split

TrustlyAccountMandateInput

{
  "mandateId": "d34b443e-968e-4647-80ec-292ee38c8b34",
  "accountReference": "ACCOUNT_REFERENCE_002",
  "providerName": "trustly",
  "debtorReference": "EXTERNAL_DEBTOR_REF_002",
  "productReferences": [
    "PRODUCT_REFERENCE_1"
  ],
  "mandateRepresentation": {
    "holderName": "string",
    "bankName": "string",
    "accountNumber": "string"
  }
}

Properties

allOf

Name Type Required Restrictions Description
anonymous BaseAccountMandateInput false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» providerName string true none none

Enumerated Values

Property Value
providerName trustly

FerratumV2AccountMandateInput

{
  "mandateId": "d34b443e-968e-4647-80ec-292ee38c8b34",
  "accountReference": "ACCOUNT_REFERENCE_002",
  "providerName": "ferratumCheckoutCreditCardV2",
  "debtorReference": "EXTERNAL_DEBTOR_REF_002",
  "productReferences": [
    "PRODUCT_REFERENCE_1"
  ],
  "mandateRepresentation": {
    "holderName": "string",
    "bankName": "string",
    "accountNumber": "string"
  }
}

Properties

allOf

Name Type Required Restrictions Description
anonymous BaseAccountMandateInput false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» providerName string true none none

Enumerated Values

Property Value
providerName ferratumCheckoutCreditCardV2

AccountMandateInput

{
  "mandateId": "d34b443e-968e-4647-80ec-292ee38c8b34",
  "accountReference": "ACCOUNT_REFERENCE_002",
  "providerName": "ferratumCheckoutCreditCardV2",
  "debtorReference": "EXTERNAL_DEBTOR_REF_002",
  "productReferences": [
    "PRODUCT_REFERENCE_1"
  ],
  "mandateRepresentation": {
    "holderName": "string",
    "bankName": "string",
    "accountNumber": "string"
  }
}

Properties

oneOf

Name Type Required Restrictions Description
anonymous FerratumV2AccountMandateInput false none none

xor

Name Type Required Restrictions Description
anonymous PaylandsAccountMandateInput false none none

xor

Name Type Required Restrictions Description
anonymous SplitAccountMandateInput false none none

xor

Name Type Required Restrictions Description
anonymous TrustlyAccountMandateInput false none none

ActionResponse

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ]
}

Response of any action that causes any side effect in the platform (e.g. create, update, delete)

Properties

Name Type Required Restrictions Description
success boolean true none Whether the action was accepted successfully
messages [string] true none none
messageIds [string] true none Identifier of the messages (used for tracing)

DataResponse

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": [
    {
      "accountReference": "ACCOUNT_REFERENCE_002"
    }
  ]
}

Response of any action that returns data

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data [oneOf] false none none

oneOf

Name Type Required Restrictions Description
»» anonymous Debtor false none The Debtor is the entity that owes the money. It can be a person (natural) or a company (legal).
Notes:
- If the debtor is a person (natural), then firstName and lastName are required.
- If the debtor is a company (legal), then companyName is required.

xor

Name Type Required Restrictions Description
»» anonymous Product false none A product is a service or item used to give context to the Claim or Ledger Entry

xor

Name Type Required Restrictions Description
»» anonymous LedgerEntry false none A Ledger Entry is a record of a transaction in the Ledger.

xor

Name Type Required Restrictions Description
»» anonymous AccountScore false none An account score is a score that is calculated for a specific account. It can be used to determine the risk of a debtor or any other information that is relevant for the account.

xor

Name Type Required Restrictions Description
»» anonymous AccountMandateInput false none none

xor

Name Type Required Restrictions Description
»» anonymous UpdateAccountLedgerEntriesAmountsInput false none Input for update_account_ledger_entries_amounts endpoint.

DebtorResponse

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": [
    {
      "birthday": "1980-06-28",
      "gender": "M",
      "firstName": "John",
      "lastName": "White",
      "middleName": "Benedict",
      "title": "Doctor",
      "companyName": "Acme Brick Co.",
      "debtorReference": "EXTERNAL_DEBTOR_REF_002",
      "SSN": "AAA-GG-SSSS",
      "type": "natural",
      "contactInformation": {
        "country": "DE",
        "city": "Delbrück",
        "mobileNumber": "+495555555555",
        "postalCode": 33129,
        "houseNumber": "24A",
        "addressLine1": "Boikweg 24",
        "addressLine2": "c/o Acme",
        "addressLine3": "first floor",
        "landLine": "+495555555555",
        "state": "Dortmund",
        "email": "testEmail@example.com",
        "additionalContactInformation": [
          {
            "email": "testEmail@example.com"
          }
        ]
      }
    }
  ]
}

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data [Debtor] false none [The Debtor is the entity that owes the money. It can be a person (natural) or a company (legal).
Notes:
- If the debtor is a person (natural), then firstName and lastName are required.
- If the debtor is a company (legal), then companyName is required.
]

AccountMetaResponse

{
  "data": {
    "updateAccountMeta002": "updateAccountMetaValue002"
  },
  "success": true,
  "messageIds": [
    "55d2c314-a91e-4f9c-b80e-5ba524777ae1"
  ],
  "messages": [
    "Successfully updated Account meta ACCOUNT_REFERENCE_002"
  ]
}

Response of the update_account_meta endpoint.

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data Metadata false none Additional information related to the entity.

CreateClaims

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": {
    "amount": 13025,
    "currency": "EUR",
    "product": {
      "productReference": "PRODUCT_REFERENCE_1",
      "paymentReference": "paymentReference1",
      "type": "Computer",
      "name": "Macbook Pro",
      "code": "111-22222-3333",
      "meta": {
        "sourceSystem": "system1"
      }
    },
    "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
    "productReference": "PRODUCT_REFERENCE_1",
    "creditorReference": "string",
    "totalFees": 13025,
    "currentDueDate": "2019-06-28",
    "originalDueDate": "2019-06-28",
    "scores": [
      {
        "type": "INTERNAL",
        "value": "risky",
        "meta": {
          "sourceSystem": "system1"
        }
      }
    ],
    "reason": "string",
    "paymentReference": "paymentReference1",
    "accountNumber": "string",
    "accountReference": "ACCOUNT_REFERENCE_002",
    "meta": {
      "sourceSystem": "system1"
    },
    "fees": [
      {
        "name": "Interest",
        "amount": 13025
      }
    ],
    "linkGroupId": null,
    "primaryDebtor": {
      "birthday": "1980-06-28",
      "gender": "M",
      "firstName": "John",
      "lastName": "White",
      "middleName": "Benedict",
      "title": "Doctor",
      "companyName": "Acme Brick Co.",
      "debtorReference": "EXTERNAL_DEBTOR_REF_002",
      "SSN": "AAA-GG-SSSS",
      "type": "natural",
      "contactInformation": {
        "country": "DE",
        "city": "Delbrück",
        "mobileNumber": "+495555555555",
        "postalCode": 33129,
        "houseNumber": "24A",
        "addressLine1": "Boikweg 24",
        "addressLine2": "c/o Acme",
        "addressLine3": "first floor",
        "landLine": "+495555555555",
        "state": "Dortmund",
        "email": "testEmail@example.com",
        "additionalContactInformation": [
          {
            "email": "testEmail@example.com"
          }
        ]
      }
    }
  }
}

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data ClaimInput false none Used when creating or importing claims

RecreateClaims

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": {
    "amount": 13025,
    "currency": "EUR",
    "product": {
      "productReference": "PRODUCT_REFERENCE_1",
      "paymentReference": "paymentReference1",
      "type": "Computer",
      "name": "Macbook Pro",
      "code": "111-22222-3333",
      "meta": {
        "sourceSystem": "system1"
      }
    },
    "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
    "productReference": "PRODUCT_REFERENCE_1",
    "creditorReference": "string",
    "totalFees": 13025,
    "currentDueDate": "2019-06-28",
    "originalDueDate": "2019-06-28",
    "scores": [
      {
        "type": "INTERNAL",
        "value": "risky",
        "meta": {
          "sourceSystem": "system1"
        }
      }
    ],
    "reason": "string",
    "paymentReference": "paymentReference1",
    "accountNumber": "string",
    "accountReference": "ACCOUNT_REFERENCE_002",
    "meta": {
      "sourceSystem": "system1"
    },
    "fees": [
      {
        "name": "Interest",
        "amount": 13025
      }
    ],
    "linkGroupId": null,
    "primaryDebtor": {
      "birthday": "1980-06-28",
      "gender": "M",
      "firstName": "John",
      "lastName": "White",
      "middleName": "Benedict",
      "title": "Doctor",
      "companyName": "Acme Brick Co.",
      "debtorReference": "EXTERNAL_DEBTOR_REF_002",
      "SSN": "AAA-GG-SSSS",
      "type": "natural",
      "contactInformation": {
        "country": "DE",
        "city": "Delbrück",
        "mobileNumber": "+495555555555",
        "postalCode": 33129,
        "houseNumber": "24A",
        "addressLine1": "Boikweg 24",
        "addressLine2": "c/o Acme",
        "addressLine3": "first floor",
        "landLine": "+495555555555",
        "state": "Dortmund",
        "email": "testEmail@example.com",
        "additionalContactInformation": [
          {
            "email": "testEmail@example.com"
          }
        ]
      }
    }
  }
}

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data ClaimInput false none Used when creating or importing claims

CreatePromisesToPay

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": {
    "amount": 13025,
    "currency": "EUR",
    "dueDate": "2019-06-28"
  }
}

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data PromiseToPay false none A promise to pay is a commitment from a debtor to pay a certain amount at a certain date.

CreateAccountMandates

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": [
    {
      "mandateId": "d34b443e-968e-4647-80ec-292ee38c8b34",
      "accountReference": "ACCOUNT_REFERENCE_002",
      "providerName": "ferratumCheckoutCreditCardV2",
      "debtorReference": "EXTERNAL_DEBTOR_REF_002",
      "productReferences": [
        "PRODUCT_REFERENCE_1"
      ],
      "mandateRepresentation": {
        "holderName": "string",
        "bankName": "string",
        "accountNumber": "string"
      }
    }
  ]
}

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data [AccountMandateInput] false none none

LedgerEntryResponse

{
  "success": true,
  "data": [
    {
      "accountReference": "ACCOUNT_REFERENCE_002",
      "context": {},
      "invoiceDetails": {
        "amount": 13025,
        "dueDate": "2020-01-01",
        "meta": {}
      },
      "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_2"
    }
  ],
  "messageIds": [
    "cddddeb1-f352-46f3-a59d-0008a84e9bd5"
  ],
  "messages": [
    "Successfully added Ledger Entries: INVOICE_LEDGER_ENTRY_REFERENCE_002_2"
  ]
}

Response of any action that adds ledger entries to an account.

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data [LedgerEntry] false none [A Ledger Entry is a record of a transaction in the Ledger.]

AccountScoreResponse

{
  "messages": [
    "Successfully set the score of EXTERNAL"
  ],
  "success": true,
  "data": [
    {
      "accountReference": "ACCOUNT_REFERENCE_002",
      "type": "EXTERNAL",
      "value": "SCORE1",
      "meta": {}
    }
  ],
  "messageIds": [
    "0fdf533f-e453-4b64-9e4a-e1e2a2b81bf4"
  ]
}

Response of the set_account_score endpoint

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data [AccountScore] false none [An account score is a score that is calculated for a specific account. It can be used to determine the risk of a debtor or any other information that is relevant for the account.]

CreateAccounts

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": {
    "currency": "EUR",
    "paymentReference": "paymentReference1",
    "meta": {
      "invoiceExternalNumber": 111
    },
    "scores": [
      {
        "type": "INTERNAL",
        "value": "V1"
      }
    ],
    "debtors": [
      {
        "lastName": "LAST_NAME_1",
        "firstName": "FIRST_NAME_1",
        "debtorReference": "EXTERNAL_DEBTOR_REF_001",
        "contactInformation": {
          "country": "DE",
          "email": "first.last@acme.com"
        }
      }
    ],
    "products": [
      {
        "productReference": "PRODUCT_REFERENCE_1",
        "paymentReference": "PRODUCT_PAYMENT_REFERENCE_1"
      },
      {
        "productReference": "PRODUCT_REFERENCE_2",
        "paymentReference": "PRODUCT_PAYMENT_REFERENCE_2"
      }
    ],
    "ledgerEntries": [
      {
        "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_1",
        "invoiceDetails": {
          "amount": 100000,
          "dueDate": "2022-01-08",
          "paymentReference": "INVOICE_PAYMENT_REFERENCE_1"
        },
        "context": {
          "productReference": "PRODUCT_REFERENCE_1"
        }
      }
    ]
  }
}

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data Account false none A formal business arrangement providing for regular dealings or services (such as banking, advertising, or store credit) and involving the establishment and maintenance of an Account.

MatchAccountPayment

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": [
    {
      "ledgerEntryReference": "INVOICE_LEDGER_ENTRY_REFERENCE_002_1",
      "invoiceDetails": {
        "amount": 100000,
        "dueDate": "2022-01-08",
        "paymentReference": "INVOICE_PAYMENT_REFERENCE_1"
      },
      "context": {
        "productReference": "PRODUCT_REFERENCE_1"
      }
    }
  ]
}

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data [LedgerEntry] false none [A Ledger Entry is a record of a transaction in the Ledger.]

AccountProductResponse

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": [
    {
      "productReference": "PRODUCT_REFERENCE_1",
      "paymentReference": "paymentReference1",
      "type": "Computer",
      "name": "Macbook Pro",
      "code": "111-22222-3333",
      "meta": {
        "sourceSystem": "system1"
      }
    }
  ]
}

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data [Product] false none [A product is a service or item used to give context to the Claim or Ledger Entry]

ClaimResponse

{
  "amount": 13025,
  "currency": "EUR",
  "product": {
    "productReference": "PRODUCT_REFERENCE_1",
    "paymentReference": "paymentReference1",
    "type": "Computer",
    "name": "Macbook Pro",
    "code": "111-22222-3333",
    "meta": {
      "sourceSystem": "system1"
    }
  },
  "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
  "productReference": "PRODUCT_REFERENCE_1",
  "creditorReference": "string",
  "totalFees": 13025,
  "currentDueDate": "2019-06-28",
  "originalDueDate": "2019-06-28",
  "scores": [
    {
      "type": "INTERNAL",
      "value": "risky",
      "meta": {
        "sourceSystem": "system1"
      }
    }
  ],
  "reason": "string",
  "paymentReference": "paymentReference1",
  "accountNumber": "string",
  "accountReference": "ACCOUNT_REFERENCE_002",
  "meta": {
    "sourceSystem": "system1"
  },
  "fees": [
    {
      "name": "Interest",
      "amount": 13025
    }
  ],
  "linkGroupId": null,
  "primaryDebtor": {
    "birthday": "1980-06-28",
    "gender": "M",
    "firstName": "John",
    "lastName": "White",
    "middleName": "Benedict",
    "title": "Doctor",
    "companyName": "Acme Brick Co.",
    "debtorReference": "EXTERNAL_DEBTOR_REF_002",
    "SSN": "AAA-GG-SSSS",
    "type": "natural",
    "contactInformation": {
      "country": "DE",
      "city": "Delbrück",
      "mobileNumber": "+495555555555",
      "postalCode": 33129,
      "houseNumber": "24A",
      "addressLine1": "Boikweg 24",
      "addressLine2": "c/o Acme",
      "addressLine3": "first floor",
      "landLine": "+495555555555",
      "state": "Dortmund",
      "email": "testEmail@example.com",
      "additionalContactInformation": [
        {
          "email": "testEmail@example.com"
        }
      ]
    }
  },
  "claimReference": "string",
  "status": "ACTIVE"
}

Properties

allOf

Name Type Required Restrictions Description
anonymous Claim false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» claimReference string true none The current claim's reference
» status string true none none

Enumerated Values

Property Value
status ACTIVE
status RESOLVED

ClaimCreatedEvent

{
  "messageId": "51a35d12-9145-4c97-8285-08156681e47",
  "timestamp": "2020-04-17T08:14:29.863Z",
  "details": {
    "messageType": "event.claim.created.v1",
    "claimRef": "ABCDEF123",
    "receeveClaimRef": "ABCDEF123-2020-01-15",
    "amount": 2000,
    "currency": "EUR",
    "dueDate": "2019-06-28"
  }
}

Properties

Name Type Required Restrictions Description
messageId string true none message identifier in Receeve system
timestamp string true none UTC timestamp
details object true none none
» messageType string true none type of event that happened in Receeve system
» claimRef string true none reference to the Claim in external(your) system
» receeveClaimRef string true none reference to the Claim in Receeve system
» amount integer true none Amount of the claim without fees in cents
» currency Currency true none 3-digit currency code (ISO 4217)
» dueDate DueDate true none Current due date in your system. Use originalDueDate unless you purchased the debt and need this distinction.

ClaimDebtPaymentProcessingEvent

{
  "messageId": "51a35d12-9145-4c97-8285-08156681e47",
  "timestamp": "2020-04-17T08:14:29.863Z",
  "details": {
    "messageType": "event.claimDebtPayment.processing.v1",
    "claimRef": "ABCDEF123",
    "receeveClaimRef": "ABCDEF123-2020-01-15",
    "providerName": "Trustly",
    "amount": 2000,
    "currency": "EUR",
    "trackingId": "TRACKINGID123",
    "paymentReference": "paymentReference1"
  }
}

Properties

Name Type Required Restrictions Description
messageId string true none message identifier in Receeve system
timestamp string true none UTC timestamp
details object true none none
» messageType string true none type of event that happened in Receeve system
» claimRef string true none reference to the Claim in external(your) system
» receeveClaimRef string true none reference to the Claim in Receeve system
» providerName string true none Name of payment provider
» amount integer true none Amount of the payment transaction in cents
» currency Currency true none 3-digit currency code (ISO 4217)
» trackingId string true none Tracking id from payment provider
» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.

UpdateAccountLedgerEntriesAmounts

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": [
    {
      "accountReference": "ACCOUNT_REFERENCE_002",
      "ledgerEntries": [
        {
          "ledgerEntryReference": "string",
          "amount": 13025,
          "reason": "PAYMENT",
          "meta": {
            "sourceSystem": "system1"
          }
        }
      ]
    }
  ]
}

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data [UpdateAccountLedgerEntriesAmountsInput] false none [Input for update_account_ledger_entries_amounts endpoint.]

CreditClaimActionResponse

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": {
    "amount": 13025,
    "fees": 0,
    "currency": "EUR",
    "originator": "DCA",
    "paymentDistributionPriority": "FEES_FIRST",
    "date": 1647526514000,
    "descriptionText": "string"
  }
}

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data CreditClaimInput false none none

DebitClaimActionResponse

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": {
    "amount": 13025,
    "fees": 0,
    "currency": "EUR",
    "originator": "DCA",
    "date": 1647526514000,
    "descriptionText": "string"
  }
}

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data DebitClaimInput false none none

CreditClaimInput

{
  "amount": 13025,
  "fees": 0,
  "currency": "EUR",
  "originator": "DCA",
  "paymentDistributionPriority": "FEES_FIRST",
  "date": 1647526514000,
  "descriptionText": "string"
}

Properties

Name Type Required Restrictions Description
amount Amount true none Monetary value in cents (natural number)
fees any false none Optional fee credit. Omit to apply the full amount to the Claim balance. Provide fees to reduce specific fees; set amount to 0 to credit fees only.

oneOf

Name Type Required Restrictions Description
» anonymous number false none Flat fee reduction in cents — subtracted directly from totalFees.

xor

Name Type Required Restrictions Description
» anonymous [Fee] false none Named fee reductions. Each entry matches by name and subtracts the given amount from that fee. Unmatched names are ignored.

continued

Name Type Required Restrictions Description
currency Currency true none 3-digit currency code (ISO 4217)
originator string true none Who initiated this credit. CLIENT — the creditor (your system). DCA — a Debt Collection Agency acting on behalf of the creditor.
paymentDistributionPriority string false none Controls how the credit amount is distributed when both principal and fees are outstanding. AMOUNT_FIRST reduces the principal balance first, then fees. FEES_FIRST reduces fees first, then the principal balance.
date number false none Timestamp of the credit event in milliseconds since Unix epoch (e.g. Date.now() in JavaScript).
descriptionText string false none Human-readable note explaining the reason for this credit.

Enumerated Values

Property Value
originator DCA
originator CLIENT
paymentDistributionPriority FEES_FIRST
paymentDistributionPriority AMOUNT_FIRST

DebitClaimInput

{
  "amount": 13025,
  "fees": 0,
  "currency": "EUR",
  "originator": "DCA",
  "date": 1647526514000,
  "descriptionText": "string"
}

Properties

Name Type Required Restrictions Description
amount Amount true none Monetary value in cents (natural number)
fees any false none Optional fee debit. Omit to add amount to the Claim balance only. Provide fees to increase specific fees; set amount to 0 to debit fees only without changing the principal balance.

oneOf

Name Type Required Restrictions Description
» anonymous number false none Flat fee addition in cents — added directly to totalFees.

xor

Name Type Required Restrictions Description
» anonymous [Fee] false none Named fee additions. Each entry matches by name and adds the given amount to that fee. If no fee with that name exists, a new fee entry is created.

continued

Name Type Required Restrictions Description
currency Currency true none 3-digit currency code (ISO 4217)
originator string true none Who initiated this debit. CLIENT — the creditor (your system). DCA — a Debt Collection Agency acting on behalf of the creditor.
date number true none Timestamp of the debit event in milliseconds since Unix epoch (e.g. Date.now() in JavaScript).
descriptionText string false none Human-readable note explaining the reason for this debit.

Enumerated Values

Property Value
originator DCA
originator CLIENT

CommunicationMessageURL

{
  "communicationType": "email",
  "messageURL": "/Operations/email/Message/3b97bd7a-1c07-44d4-b33f-2250f6419e95.eml",
  "dateTime": 1621536535901,
  "bundleId": "00000000-0000-0000-0000-000000000000",
  "bundleName": "Default Email Template"
}

Properties

Name Type Required Restrictions Description
communicationType string true none type of communication that happened in Receeve system
messageURL string true none URL of the message
dateTime integer true none Timestamp when the communication event occured
bundleId string(uuid) true none template id of communication that happened in Receeve system
bundleName string true none template display name of communication that happened in Receeve system

Enumerated Values

Property Value
communicationType email
communicationType letter
communicationType SMS

DebtorAccountsAndClaims

[
  {
    "accountReference": "ACCOUNT_REFERENCE_002",
    "meta": {
      "sourceSystem": "system1"
    },
    "paymentReference": "paymentReference1",
    "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
    "currency": "EUR",
    "claims": [
      {
        "amount": 13025,
        "currency": "EUR",
        "product": {
          "productReference": "PRODUCT_REFERENCE_1",
          "paymentReference": "paymentReference1",
          "type": "Computer",
          "name": "Macbook Pro",
          "code": "111-22222-3333",
          "meta": {
            "sourceSystem": "system1"
          }
        },
        "portfolioReference": "EXTERNAL_PORTFOLIO_REFERENCE_002",
        "productReference": "PRODUCT_REFERENCE_1",
        "creditorReference": "string",
        "totalFees": 13025,
        "currentDueDate": "2019-06-28",
        "originalDueDate": "2019-06-28",
        "scores": [
          {
            "type": "INTERNAL",
            "value": "risky",
            "meta": {
              "sourceSystem": "system1"
            }
          }
        ],
        "reason": "string",
        "paymentReference": "paymentReference1",
        "accountNumber": "string",
        "accountReference": "ACCOUNT_REFERENCE_002",
        "meta": {
          "sourceSystem": "system1"
        },
        "fees": [
          {
            "name": "Interest",
            "amount": 13025
          }
        ],
        "linkGroupId": null,
        "primaryDebtor": {
          "birthday": "1980-06-28",
          "gender": "M",
          "firstName": "John",
          "lastName": "White",
          "middleName": "Benedict",
          "title": "Doctor",
          "companyName": "Acme Brick Co.",
          "debtorReference": "EXTERNAL_DEBTOR_REF_002",
          "SSN": "AAA-GG-SSSS",
          "type": "natural",
          "contactInformation": {
            "country": "DE",
            "city": "Delbrück",
            "mobileNumber": "+495555555555",
            "postalCode": 33129,
            "houseNumber": "24A",
            "addressLine1": "Boikweg 24",
            "addressLine2": "c/o Acme",
            "addressLine3": "first floor",
            "landLine": "+495555555555",
            "state": "Dortmund",
            "email": "testEmail@example.com",
            "additionalContactInformation": [
              {
                "email": "testEmail@example.com"
              }
            ]
          }
        }
      }
    ],
    "debtors": [
      {
        "birthday": "1980-06-28",
        "gender": "M",
        "firstName": "John",
        "lastName": "White",
        "middleName": "Benedict",
        "title": "Doctor",
        "companyName": "Acme Brick Co.",
        "debtorReference": "EXTERNAL_DEBTOR_REF_002",
        "SSN": "AAA-GG-SSSS",
        "type": "natural",
        "contactInformation": {
          "country": "DE",
          "city": "Delbrück",
          "mobileNumber": "+495555555555",
          "postalCode": 33129,
          "houseNumber": "24A",
          "addressLine1": "Boikweg 24",
          "addressLine2": "c/o Acme",
          "addressLine3": "first floor",
          "landLine": "+495555555555",
          "state": "Dortmund",
          "email": "testEmail@example.com",
          "additionalContactInformation": [
            {
              "email": "testEmail@example.com"
            }
          ]
        }
      }
    ]
  }
]

Properties

allOf

Name Type Required Restrictions Description
anonymous object false none none
» accountReference AccountReference true none Account reference in your system
» meta Metadata false none Additional information related to the entity.
» paymentReference PaymentReference false none Payment reference used in online transactions.
It is a text reference that can be used to map the money transactions to other external systems.
» portfolioReference PortfolioReference false none An optional grouping field for reporting and filtering purposes.
» currency Currency true none 3-digit currency code (ISO 4217)

and

Name Type Required Restrictions Description
anonymous object false none none
» claims [Claim] true none none

and

Name Type Required Restrictions Description
anonymous object false none none
» debtors [Debtor] true none [The Debtor is the entity that owes the money. It can be a person (natural) or a company (legal).
Notes:
- If the debtor is a person (natural), then firstName and lastName are required.
- If the debtor is a company (legal), then companyName is required.
]

UploadFilesInput

{}

Properties

Name Type Required Restrictions Description
file string(binary) true none The file to upload
accountId string true none The account id
documentType string false none Type of the document as specified in the backoffice e.g 'CSV', 'Invoice'
externalClaimRef string false none External claim reference
productReference string false none Product reference

oneOf

Name Type Required Restrictions Description
anonymous object false none none

xor

Name Type Required Restrictions Description
anonymous object false none none

InstalmentPlanDefinitionV2

{
  "id": "string",
  "type": "string",
  "version": "string",
  "enabled": true,
  "selectable": true,
  "description": {},
  "configuration": [
    {}
  ],
  "rules": [
    {}
  ],
  "context": {},
  "computedAt": "2026-03-24T16:45:07Z"
}

Properties

Name Type Required Restrictions Description
id string true none Unique identifier for the definition
type string true none The type of instalment plan definition
version string true none Version of the definition
enabled boolean true none Whether the definition is enabled
selectable boolean true none Whether the definition can be selected by users
description object true none Localized description of the definition
configuration [object] false none Configuration objects for the definition
rules [object] false none Business rules for the definition
context object false none Additional context data
computedAt string(date-time) false none When the definition was computed (for computed definitions)

ComputedInstalmentPlanDefinitionProgrammaticV2

{
  "id": "string",
  "type": "programmatic",
  "version": "string",
  "enabled": true,
  "selectable": true,
  "description": {},
  "computedAt": "2026-03-24T16:45:07Z",
  "rules": [
    {}
  ],
  "configuration": [
    {}
  ],
  "context": {},
  "accountId": "string",
  "clientId": "string",
  "correlationId": "string",
  "parentInstalmentPlanId": "string",
  "TTL": 0
}

Properties

Name Type Required Restrictions Description
id string true none Unique identifier for the computed definition
type string true none Indicates programmatic computed definition
version string true none Version of the definition
enabled boolean true none Whether the definition is enabled
selectable boolean true none Whether the definition can be selected
description object true none Localized description
computedAt string(date-time) true none When the definition was computed
rules [object] true none Programmatic rules to apply
configuration [object] true none Configuration for the programmatic logic
context object true none Computation context including claim references
accountId string false none Account identifier for the computed definition
clientId string(uuid) false none Client identifier for the computed definition
correlationId string false none Correlation ID linking to the original definition
parentInstalmentPlanId string false none Parent instalment plan definition ID
TTL number false none Time to live for the computed definition

Enumerated Values

Property Value
type programmatic

ComputedInstalmentPlanDefinitionChoiceV2

{
  "id": "string",
  "type": "choice",
  "version": "string",
  "enabled": true,
  "selectable": true,
  "description": {},
  "computedAt": "2026-03-24T16:45:07Z",
  "choices": [
    {}
  ],
  "defaultChoice": "string"
}

Properties

Name Type Required Restrictions Description
id string true none Unique identifier for the computed definition
type string true none Indicates choice computed definition
version string true none Version of the definition
enabled boolean true none Whether the definition is enabled
selectable boolean true none Whether the definition can be selected
description object true none Localized description
computedAt string(date-time) true none When the definition was computed
choices [object] true none Available choices for the user
defaultChoice string false none Default choice if none selected

Enumerated Values

Property Value
type choice

ComputedInstalmentPlanDefinitionFixedAmountsV2

{
  "id": "string",
  "type": "fixedAmounts",
  "version": "string",
  "enabled": true,
  "selectable": true,
  "description": {},
  "computedAt": "2026-03-24T16:45:07Z",
  "amounts": [
    0
  ],
  "currency": "string",
  "final": true,
  "accountId": "string",
  "clientId": "string",
  "correlationId": "string",
  "parentInstalmentPlanId": "string",
  "configuration": [
    {}
  ],
  "context": {},
  "rules": [
    {}
  ],
  "TTL": 0
}

Properties

Name Type Required Restrictions Description
id string true none Unique identifier for the computed definition
type string true none Indicates fixed amounts computed definition
version string true none Version of the definition
enabled boolean true none Whether the definition is enabled
selectable boolean true none Whether the definition can be selected
description object true none Localized description
computedAt string(date-time) true none When the definition was computed
amounts [number] true none Fixed payment amounts
currency string true none Currency code (ISO 4217)
final boolean false none Whether this is the final computed definition
accountId string true none Account identifier for the computed definition
clientId string(uuid) true none Client identifier for the computed definition
correlationId string true none Correlation ID linking to the original definition
parentInstalmentPlanId string true none Parent instalment plan definition ID
configuration [object] false none Computed configuration for the instalment plan
context object false none Computation context including claim references
rules [object] false none Business rules applied during computation
TTL number false none Time to live for the computed definition

Enumerated Values

Property Value
type fixedAmounts

ComputedInstalmentPlanDefinitionPercentageAmountsV2

{
  "id": "string",
  "type": "percentageAmounts",
  "version": "string",
  "enabled": true,
  "selectable": true,
  "description": {},
  "computedAt": "2026-03-24T16:45:07Z",
  "percentages": [
    0
  ],
  "currency": "string"
}

Properties

Name Type Required Restrictions Description
id string true none Unique identifier for the computed definition
type string true none Indicates percentage amounts computed definition
version string true none Version of the definition
enabled boolean true none Whether the definition is enabled
selectable boolean true none Whether the definition can be selected
description object true none Localized description
computedAt string(date-time) true none When the definition was computed
percentages [number] true none Percentage payment amounts
currency string true none Currency code (ISO 4217)

Enumerated Values

Property Value
type percentageAmounts

ComputedInstalmentPlanDefinitionNullV2

{
  "id": "string",
  "type": "null",
  "version": "string",
  "enabled": true,
  "selectable": true,
  "description": {},
  "computedAt": "2026-03-24T16:45:07Z"
}

Properties

Name Type Required Restrictions Description
id string true none Unique identifier for the computed definition
type string true none Indicates null computed definition
version string true none Version of the definition
enabled boolean true none Whether the definition is enabled
selectable boolean true none Whether the definition can be selected
description object true none Localized description
computedAt string(date-time) true none When the definition was computed

Enumerated Values

Property Value
type null

InstalmentPlanV2

{
  "id": "string",
  "definitionId": "string",
  "status": "ACTIVE",
  "createdAt": "2026-03-24T16:45:07Z",
  "updatedAt": "2026-03-24T16:45:07Z",
  "statusCheckedAt": "2026-03-24T16:45:07Z",
  "clientId": "string",
  "accountId": "string",
  "currency": "string",
  "type": "string",
  "totalAmount": 0,
  "paidAmount": 0,
  "externalClaimRef": "string",
  "configuration": [
    {}
  ],
  "scope": {
    "externalClaimReferences": [
      "string"
    ],
    "externalClaimAmounts": [
      {
        "amount": 0,
        "totalFees": 0,
        "fees": [
          {
            "name": "string",
            "amount": 0
          }
        ]
      }
    ]
  },
  "rules": [
    {
      "id": "string",
      "type": "string",
      "description": {},
      "enabled": true,
      "configuration": {}
    }
  ],
  "instalments": [
    {
      "id": "string",
      "dueDate": "2026-03-24",
      "startDate": "2026-03-24",
      "amount": 0,
      "paidAmount": 0,
      "currency": "string",
      "status": "CREATED",
      "createdAt": "2026-03-24T16:45:07Z",
      "updatedAt": "2026-03-24T16:45:07Z"
    }
  ],
  "metadata": {}
}

Properties

Name Type Required Restrictions Description
id string true none Unique identifier for the instalment plan
definitionId string true none Reference to the definition used to create this plan
status string true none Current status of the plan
createdAt string(date-time) true none When the plan was created
updatedAt string(date-time) false none When the plan was last updated
statusCheckedAt string(date-time) false none When the status was last checked and computed values updated
clientId string false none Client identifier associated with the plan
accountId string false none Account identifier associated with the plan
currency string false none Currency code (ISO 4217)
type string false none Type of the instalment plan (e.g., fixedAmounts, percentageAmounts)
totalAmount number false none Total amount of the instalment plan computed from instalments
paidAmount number false none Total amount paid for this instalment plan computed from transactions
externalClaimRef string false none External claim reference for this instalment plan
configuration any false none Configuration used to create this plan (object or array depending on plan type)

oneOf

Name Type Required Restrictions Description
» anonymous [object] false none none

xor

Name Type Required Restrictions Description
» anonymous object false none none

continued

Name Type Required Restrictions Description
scope object false none Scope information for the instalment plan
» externalClaimReferences [string] false none List of external claim references
» externalClaimAmounts [object] false none Amounts and fees per external claim reference
»» amount number false none Amount in cents
»» totalFees number false none Sum of all fees in cents
»» fees [object] false none none
»»» name string false none Name of the fee
»»» amount number false none Amount of the fee in cents
rules [object] false none Business rules associated with this plan
» id string false none Rule identifier
» type string false none Type of rule
» description object false none Localized descriptions
» enabled boolean false none Whether the rule is enabled
» configuration object false none Rule configuration
instalments [InstalmentV2] true none List of instalments in the plan
metadata object false none Additional metadata for the plan

Enumerated Values

Property Value
status ACTIVE
status RESOLVED
status INVALIDATED
status CANCELLED

InstalmentV2

{
  "id": "string",
  "dueDate": "2026-03-24",
  "startDate": "2026-03-24",
  "amount": 0,
  "paidAmount": 0,
  "currency": "string",
  "status": "CREATED",
  "createdAt": "2026-03-24T16:45:07Z",
  "updatedAt": "2026-03-24T16:45:07Z"
}

Properties

Name Type Required Restrictions Description
id string true none Unique identifier for the instalment
dueDate string(date) true none When the instalment is due
startDate string(date) false none When the instalment period starts
amount number(float) true none Amount due for this instalment
paidAmount number(float) false none Amount that has been paid for this instalment
currency string true none Currency code (ISO 4217)
status string true none Current status of the instalment
createdAt string(date-time) false none When the instalment was created
updatedAt string(date-time) false none When the instalment was last updated

Enumerated Values

Property Value
status CREATED
status RESOLVED
status INVALIDATED
status STARTED
status CANCELLED

ComputeInstalmentPlanDefinitionInput

{
  "instalmentPlanDefinitionId": "string",
  "accountReference": "string",
  "externalClaimReferences": [
    "string"
  ],
  "formData": {}
}

Input for computing instalment plan definition. Supports additional dynamic context properties.

Properties

Name Type Required Restrictions Description
instalmentPlanDefinitionId string true none ID of the instalment plan definition to compute
accountReference string false none Account reference identifier
externalClaimReferences [string] false none External claim references to include in the computation
formData object false none Form data for iterative computation

GetInstalmentPlansInput

{
  "filters": {
    "status": [
      "ACTIVE"
    ],
    "id": [
      "string"
    ]
  },
  "fields": [
    "id"
  ],
  "limit": 2,
  "paginationId": "string"
}

Input parameters for retrieving instalment plans

Properties

Name Type Required Restrictions Description
filters object false none Filters to apply when retrieving instalment plans
» status [InstalmentPlanStatusV2] false none Filter by instalment plan status
» id [string] false none Filter by specific instalment plan IDs
fields [string] false none Specific fields to retrieve from instalment plans
limit integer false none Maximum number of results to return
paginationId string false none Pagination token for retrieving the next page of results

GetInstalmentPlans

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": {
    "results": [
      {
        "id": "string",
        "definitionId": "string",
        "status": "ACTIVE",
        "createdAt": "2026-03-24T16:45:07Z",
        "updatedAt": "2026-03-24T16:45:07Z",
        "statusCheckedAt": "2026-03-24T16:45:07Z",
        "clientId": "string",
        "accountId": "string",
        "currency": "string",
        "type": "string",
        "totalAmount": 0,
        "paidAmount": 0,
        "externalClaimRef": "string",
        "configuration": [
          {}
        ],
        "scope": {
          "externalClaimReferences": [
            "string"
          ],
          "externalClaimAmounts": [
            {
              "amount": 0,
              "totalFees": 0,
              "fees": [
                {
                  "name": "string",
                  "amount": 0
                }
              ]
            }
          ]
        },
        "rules": [
          {
            "id": "string",
            "type": "string",
            "description": {},
            "enabled": true,
            "configuration": {}
          }
        ],
        "instalments": [
          {
            "id": "string",
            "dueDate": "2026-03-24",
            "startDate": "2026-03-24",
            "amount": 0,
            "paidAmount": 0,
            "currency": "string",
            "status": "CREATED",
            "createdAt": "2026-03-24T16:45:07Z",
            "updatedAt": "2026-03-24T16:45:07Z"
          }
        ],
        "metadata": {}
      }
    ],
    "paginationId": "string"
  }
}

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data PaginatedInstalmentPlans false none none

PaginatedInstalmentPlans

{
  "results": [
    {
      "id": "string",
      "definitionId": "string",
      "status": "ACTIVE",
      "createdAt": "2026-03-24T16:45:07Z",
      "updatedAt": "2026-03-24T16:45:07Z",
      "statusCheckedAt": "2026-03-24T16:45:07Z",
      "clientId": "string",
      "accountId": "string",
      "currency": "string",
      "type": "string",
      "totalAmount": 0,
      "paidAmount": 0,
      "externalClaimRef": "string",
      "configuration": [
        {}
      ],
      "scope": {
        "externalClaimReferences": [
          "string"
        ],
        "externalClaimAmounts": [
          {
            "amount": 0,
            "totalFees": 0,
            "fees": [
              {
                "name": "string",
                "amount": 0
              }
            ]
          }
        ]
      },
      "rules": [
        {
          "id": "string",
          "type": "string",
          "description": {},
          "enabled": true,
          "configuration": {}
        }
      ],
      "instalments": [
        {
          "id": "string",
          "dueDate": "2026-03-24",
          "startDate": "2026-03-24",
          "amount": 0,
          "paidAmount": 0,
          "currency": "string",
          "status": "CREATED",
          "createdAt": "2026-03-24T16:45:07Z",
          "updatedAt": "2026-03-24T16:45:07Z"
        }
      ],
      "metadata": {}
    }
  ],
  "paginationId": "string"
}

Properties

Name Type Required Restrictions Description
results [InstalmentPlanV2] true none Array of instalment plans
paginationId string false none Token for retrieving the next page of results

GetInstalmentPlanDefinitionsInput

{
  "filters": {
    "enabled": true,
    "types": [
      "CHOICE"
    ]
  },
  "fields": [
    "id"
  ],
  "limit": 2,
  "paginationId": "string"
}

Input parameters for retrieving instalment plan definitions

Properties

Name Type Required Restrictions Description
filters object false none Filters to apply when retrieving instalment plan definitions (selectable is always set to true)
» enabled boolean false none Filter by whether the instalment plan definition is enabled
» types [string] false none Filter by instalment plan definition types
fields [string] false none Specific fields to retrieve from instalment plan definitions
limit integer false none Maximum number of results to return
paginationId string false none Pagination token for retrieving the next page of results

GetInstalmentPlanDefinitions

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": {
    "results": [
      {
        "id": "string",
        "type": "string",
        "version": "string",
        "enabled": true,
        "selectable": true,
        "description": {},
        "configuration": [
          {}
        ],
        "rules": [
          {}
        ],
        "context": {},
        "computedAt": "2026-03-24T16:45:07Z"
      }
    ],
    "paginationId": "string"
  }
}

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data PaginatedInstalmentPlanDefinitions false none none

PaginatedInstalmentPlanDefinitions

{
  "results": [
    {
      "id": "string",
      "type": "string",
      "version": "string",
      "enabled": true,
      "selectable": true,
      "description": {},
      "configuration": [
        {}
      ],
      "rules": [
        {}
      ],
      "context": {},
      "computedAt": "2026-03-24T16:45:07Z"
    }
  ],
  "paginationId": "string"
}

Properties

Name Type Required Restrictions Description
results [InstalmentPlanDefinitionV2] true none Array of instalment plan definitions
paginationId string false none Token for retrieving the next page of results

CreateInstalmentPlanInput

{
  "instalmentPlanDefinitionId": "string",
  "accountReference": "string"
}

Properties

Name Type Required Restrictions Description
instalmentPlanDefinitionId string true none ID of the computed instalment plan definition to create plan from
accountReference string false none Account reference identifier

UpdateInstalmentPlanInput

{
  "instalmentPlanId": "string",
  "instalmentPlan": {
    "meta": {},
    "currency": "EUR",
    "status": "ACTIVE",
    "instalments": [
      {
        "id": "string",
        "dueDate": "2026-03-24",
        "startDate": "2026-03-24",
        "amount": 0,
        "paidAmount": 0,
        "currency": "string",
        "status": "CREATED",
        "createdAt": "2026-03-24T16:45:07Z",
        "updatedAt": "2026-03-24T16:45:07Z"
      }
    ],
    "transactions": [
      {
        "id": "string",
        "amount": 0,
        "context": {},
        "createdAt": "2026-03-24T16:45:07Z",
        "updatedAt": "2026-03-24T16:45:07Z",
        "type": "payment"
      }
    ]
  },
  "context": {}
}

Properties

Name Type Required Restrictions Description
instalmentPlanId string(uuid) true none ID of the instalment plan to update
instalmentPlan InstalmentPlanBaseV2 true none Base structure for an instalment plan
context object false none Additional context for plan update

InstalmentPlanBaseV2

{
  "meta": {},
  "currency": "EUR",
  "status": "ACTIVE",
  "instalments": [
    {
      "id": "string",
      "dueDate": "2026-03-24",
      "startDate": "2026-03-24",
      "amount": 0,
      "paidAmount": 0,
      "currency": "string",
      "status": "CREATED",
      "createdAt": "2026-03-24T16:45:07Z",
      "updatedAt": "2026-03-24T16:45:07Z"
    }
  ],
  "transactions": [
    {
      "id": "string",
      "amount": 0,
      "context": {},
      "createdAt": "2026-03-24T16:45:07Z",
      "updatedAt": "2026-03-24T16:45:07Z",
      "type": "payment"
    }
  ]
}

Base structure for an instalment plan

Properties

Name Type Required Restrictions Description
meta object false none Metadata of the instalment plan
currency string false none 3-digit currency code (ISO 4217)
status InstalmentPlanStatusV2 false none Status of the instalment plan
instalments [InstalmentV2] false none none
transactions [InstalmentTransactionV2] false none List of transactions associated with this instalment plan

InstalmentPlanStatusV2

"ACTIVE"

Status of the instalment plan

Properties

Name Type Required Restrictions Description
anonymous string false none Status of the instalment plan

Enumerated Values

Property Value
anonymous ACTIVE
anonymous RESOLVED
anonymous INVALIDATED
anonymous CANCELLED

InstalmentTransactionV2

{
  "id": "string",
  "amount": 0,
  "context": {},
  "createdAt": "2026-03-24T16:45:07Z",
  "updatedAt": "2026-03-24T16:45:07Z",
  "type": "payment"
}

Properties

allOf

Name Type Required Restrictions Description
anonymous InstalmentTransactionBaseV2 false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» type string false none none

Enumerated Values

Property Value
type payment
type chargeback

InstalmentPaymentV2

{
  "id": "string",
  "amount": 0,
  "context": {},
  "createdAt": "2026-03-24T16:45:07Z",
  "updatedAt": "2026-03-24T16:45:07Z",
  "type": "payment"
}

Properties

allOf

Name Type Required Restrictions Description
anonymous InstalmentTransactionBaseV2 false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» type string false none none

Enumerated Values

Property Value
type payment

InstalmentChargebackV2

{
  "id": "string",
  "amount": 0,
  "context": {},
  "createdAt": "2026-03-24T16:45:07Z",
  "updatedAt": "2026-03-24T16:45:07Z",
  "type": "chargeback"
}

Properties

allOf

Name Type Required Restrictions Description
anonymous InstalmentTransactionBaseV2 false none none

and

Name Type Required Restrictions Description
anonymous object false none none
» type string false none none

Enumerated Values

Property Value
type chargeback

InstalmentTransactionBaseV2

{
  "id": "string",
  "amount": 0,
  "context": {},
  "createdAt": "2026-03-24T16:45:07Z",
  "updatedAt": "2026-03-24T16:45:07Z"
}

Properties

Name Type Required Restrictions Description
id string true none identifier of the Instalment Transaction entry
amount number true none amount of instalment transaction [cents], can be positive or negative
context object true none Additional context information for the instalment transaction
createdAt string(date-time) false none Date that the instalment transaction was created [COMPUTED]
updatedAt string(date-time) false none Last date that the instalment transaction was updated [COMPUTED]

CreateInstalmentPlans

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": {
    "id": "string",
    "definitionId": "string",
    "status": "ACTIVE",
    "createdAt": "2026-03-24T16:45:07Z",
    "updatedAt": "2026-03-24T16:45:07Z",
    "statusCheckedAt": "2026-03-24T16:45:07Z",
    "clientId": "string",
    "accountId": "string",
    "currency": "string",
    "type": "string",
    "totalAmount": 0,
    "paidAmount": 0,
    "externalClaimRef": "string",
    "configuration": [
      {}
    ],
    "scope": {
      "externalClaimReferences": [
        "string"
      ],
      "externalClaimAmounts": [
        {
          "amount": 0,
          "totalFees": 0,
          "fees": [
            {
              "name": "string",
              "amount": 0
            }
          ]
        }
      ]
    },
    "rules": [
      {
        "id": "string",
        "type": "string",
        "description": {},
        "enabled": true,
        "configuration": {}
      }
    ],
    "instalments": [
      {
        "id": "string",
        "dueDate": "2026-03-24",
        "startDate": "2026-03-24",
        "amount": 0,
        "paidAmount": 0,
        "currency": "string",
        "status": "CREATED",
        "createdAt": "2026-03-24T16:45:07Z",
        "updatedAt": "2026-03-24T16:45:07Z"
      }
    ],
    "metadata": {}
  }
}

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data InstalmentPlanV2 false none none

ComputeInstalmentPlanDefinitions

{
  "success": true,
  "messages": [
    "Successfully processed action"
  ],
  "messageIds": [
    "e66d62ed-2331-4ced-8c03-5e729e984adc"
  ],
  "data": {
    "id": "string",
    "type": "programmatic",
    "version": "string",
    "enabled": true,
    "selectable": true,
    "description": {},
    "computedAt": "2026-03-24T16:45:07Z",
    "rules": [
      {}
    ],
    "configuration": [
      {}
    ],
    "context": {},
    "accountId": "string",
    "clientId": "string",
    "correlationId": "string",
    "parentInstalmentPlanId": "string",
    "TTL": 0
  }
}

Properties

allOf

Name Type Required Restrictions Description
anonymous ActionResponse false none Response of any action that causes any side effect in the platform (e.g. create, update, delete)

and

Name Type Required Restrictions Description
anonymous object false none none
» data any false none none

oneOf

Name Type Required Restrictions Description
»» anonymous ComputedInstalmentPlanDefinitionProgrammaticV2 false none none

xor

Name Type Required Restrictions Description
»» anonymous ComputedInstalmentPlanDefinitionChoiceV2 false none none

xor

Name Type Required Restrictions Description
»» anonymous ComputedInstalmentPlanDefinitionFixedAmountsV2 false none none

xor

Name Type Required Restrictions Description
»» anonymous ComputedInstalmentPlanDefinitionPercentageAmountsV2 false none none

xor

Name Type Required Restrictions Description
»» anonymous ComputedInstalmentPlanDefinitionNullV2 false none none