Download OpenAPI specification:
This document describes the handling of the API and the basic concepts of sending payment requests and how to get updates when a buyer paid the payments.
The API is a JSON REST API which reports every information in real-time. There are no batch processes involved (an additional webhook will be released soon).
User A user can be invited, then register and use the service free of charge. All users are identified by their e-mail address.
Organizations To send a payment request an user has to create an organization, which holds the information about organization address, target iban, allowed payment methods. An organization can have multiple users with different roles.
Orders and Payments The payment request is called by order within the API. Every order belongs to an organization and a creator user. When a payer makes a payment, the order will be updated with the information regarding the payment status.
● DE16111111112222222222
● DE66111111113333333333
● DE19111111114444444444
● DE69111111115555555555
● DE22111111116666666666
● DE72111111117777777777
● DE25111111118888888888
● DE75111111119999999999
For the authentication with our system we provide a token which can be generated at [host]/clients.
Then the user receives a token which should be provided for each call as NX-Token header.
curl -X GET \
https://partnerapi.staging.bezahl.de/nxt/v1/user \
-H 'Content-Type: application/json' \
-H 'NX-Token: [token]'
Login into your account on your preferred environment. Switch to "Your Profile" and click on the button: "Token overview".
Here you can create an API-Token with your preferred expiration time and the description.
After creation you can copy the shown key in the http request header.
You create a new payment request (order).
POST [API]/order/plan
{
"orgId": "abcdef", // organization id
"order": {
"name": "Zahlung #123", // public name
"assets": [
{
"label": "Kaufpreis", // cost position name
"amount": 2000000 // cost position price
}
]
}
}
// response
{
"id": "BJ8ivGHSKq", // order reference
...
}
(Optional) You send the order via email.
POST [API]/order/:orderid/recipient
{
"recipient" : {
"email": "mail@example.com"
}
}
//response
{ ... }
Payer will receive the payment request via email (from bezahl.de if setup in step 2) or directly from the seller.
Payer will choose one of the payment methods and will start the payment process.
Every status update is requestable via API.
GET [API]/order/:orderid
//response
{
"status": "open",
...
}
If you have any questions, do not hesitate to contact us at dev@nx-technologies.com or our customer service at https://bezahl.de/contact.
Q: I get an error with no response or server error? A: Please check on your request if the url, method and data which you send is correct. For testing purpose use https://partnerapi.staging.bezahl.de/ and for the live system https://api.bezahl.de/ as base url. If the problem persist feel free to contact us.
Q: I get some service error "missing orgId/name"? A: Please check the params if every required param is in the request body or in the request url.
Q: I get a validation error such as "please insert a valid email"? A: Please check the type of your params and if they contain the right data.
Term | Definition |
---|---|
Account Data | Contains financial figures related to the order, as seen in the 'get one order' response. The documentation mentions '"figures": {}' within 'accountData' |
Adyen | Refers to a payment platform. The API has an ('/adyen') endpoint specifically for processing settlement reports, suggesting integration with Adyen for payment handling, particularly from 'smartkasse'. |
Asset | A cost item within an order, defined by a label (name) and an amount (price). |
Attachments | Files that can be associated with an 'order'. The API allows uploading ('/order/{id}/attachment') and deleting ('/order/{id}/attachment/delete') attachments. |
Authentication | The process by which the identity of a user or application attempting to access the API is verified. This API requires an 'NX-Token' to be included in the HTTP header of every request. This token serves as proof of the caller's authorization to use the API. |
Batchnumber | A parameter for specifying the batch number in Adyen settlement reports. |
Bulk | Refers to operations involving multiple orders, such as retrieving a list or checking for changes. |
Contactperson | An individual associated with a specific 'order'. The API documentation mentions that the information ('id', 'fullname', 'email') of a contact person can be included in the response of the endpoint for retrieving a single order. There are also functions to update the 'contactperson' of an order. |
Customer | Information about the customer related to an 'order', including details like 'firstname', 'lastname', 'email', 'company', etc., as seen in the 'get one order' response and the ('/order/{id}/update/customerfields') endpoint. |
Invoice | Details related to invoices associated with an 'order'. The 'get one order' response includes an 'invoice' array, and there's an endpoint ('/order/{id}/update/invoicefields') for updating invoice information. |
Label | A descriptive name for assets or tags. |
Location | Information about specific locations associated with an 'organization'. The 'get one organization' response includes a 'location' array, and there's an endpoint ('/organization/{orgId}/location') for adding locations. Each location includes details like 'name', 'street', 'city', and a 'vendorid'. |
Metafields | Customizable data fields that can be added to an 'order'. The API provides endpoints to add or update these fields ('/order/{id}/update/metafields'). |
NX-Token | A unique key or string used for authentication with the bezahl.de API. This token must be generated by the user and then included in the HTTP request header as 'NX-Token' to identify and authorize the request. |
Order | Represents a payment request within the system. Each 'order' is associated with a specific 'organization' and was created by a particular 'user'. It contains details about the requested payment and its status. |
Organization | A higher-level entity that manages fundamental information such as the organization's address, the target IBAN for payments, and the allowed payment methods. Before a 'user' can send a payment request (an 'order'), they must create an 'organization'. An organization can also have multiple users with different roles. |
Payment Options | The payment methods allowed by an 'organization', such as 'cash', 'sepa', 'creditcard', 'paypal', etc. These are listed in the 'get one organization' and 'get one order' responses. |
Payment Report | The API offers an endpoint ('/organization/{orgId}/paymentreportjson') to retrieve a report of payments for a specific organization within a given time frame. |
Payments Info | An array containing information about payments related to an 'order', as seen in the 'get one order' response. The documentation advises against using this for internal calculations to ensure accuracy. |
Recipient | The receiver of an 'order', typically the buyer or the person who is supposed to make the payment. The 'recipient's' email address can be linked to the order to send them the payment request. |
Smartkasse | A specific electronic cash register system or point-of-sale terminal. The API provides functions to retrieve a list of available 'smartkasse' for an organization and to initiate a transaction at a selected 'smartkasse'. |
Tags | Labels that can be associated with an 'organization' or an 'order' for categorization or other purposes. There are endpoints to add ('/order/{id}/tag/create') and delete ('/order/{id}/tag/delete') tags for orders, and the 'get one organization' response includes a 'tags' array. |
Unique | A custom identifier for an 'order' that can be configured in the organization settings. The API allows querying orders by this 'unique' value. |
User | An individual who can be invited, register, and use the service. All users are identified by their email address. A user can create and manage 'organizations' and 'orders'. The API has a ('/user') endpoint to get user data. |
Vehicle | Information about a vehicle related to an 'order', including details like 'vin', 'manufacturer', 'model', etc., as seen in the 'get one order' response and the ('/order/{id}/update/vehiclefields') endpoint. |
Watcher | An email address that can be associated with an 'order' to receive notifications or updates. There's an endpoint to update the 'watcher' of an order ('/order/{id}/update/watcher'). |
Webhook | A mechanism for event-driven notifications. When certain events occur in the system (e.g., an order is created or paid), the system can automatically send an HTTP POST message to a predefined URL via a configured 'webhook'. This allows external applications to be informed about important status changes in real-time. The integrity of the transmitted data can be verified using an 'hmac' value. |
This can only be done by the logged in user.
orgId required | string ID of the organization the orders will be listed. |
bulk | string ID of the order. |
limit | number max limit of the request |
unique | string unique value that can be used as a custom identifier for the order. This needs to be activated in the orga settings. The behaviour (eg. throw error if 2 uniques are the same) can be adjusted there aswell. |
startat | number define the start of the request |
search | string search for ordername, contactperson and metafields |
status | string Enum: "open" "confirmed" filter by status |
filter | string Enum: "inclhidden" "onlyhidden" "hideclosed" "hidehidden" "over" "pickupWithoutPayment" "norecipient" "hasrecipient" possible filter words. usage: filter: "inclhidden,hasrecipient" |
period | string limit to period of time e.g. 01.01.2022,16.05.2022 |
contact | string filter by contactperson |
NX-Token required | string |
{- "total": 0,
- "list": [
- {
- "name": "string",
- "organization": "string",
- "fstatus": "open",
- "pickupdate": "2019-08-24",
- "paymentoptions": {
- "cash": true,
- "escrow": true,
- "sepa": true,
- "tink": true,
- "creditcard": true,
- "paypal": true,
- "rechnungskauf": true,
- "installment": true,
- "carFinancing": true
}, - "assets": [
- {
- "label": "string",
- "amount": 0
}
], - "attachments": [
- {
- "name": "string",
- "url": "string"
}
], - "recipient": [
- {
- "email": "string"
}
], - "hidden": true,
- "closed": true,
- "contactperson": {
- "id": "string",
- "fullname": "string",
- "email": "string"
}, - "accountData": {
- "figures": {
- "topaytotal": 0,
- "toconfirm": 0,
- "toreceive": 0,
- "isreceived": 0,
- "ispaid": 0,
- "topay": 0,
- "deficit": 0
}, - "paymentdata": {
- "iban": "string",
- "bic": "string",
- "name": "string",
- "reference": "string"
}
}, - "link": "string",
- "tags": [
- "string"
], - "metafields": [
- {
- "type": "string",
- "desc": "string"
}
], - "customer": {
- "id": "string",
- "type": "company",
- "accounttype": "insurance",
- "company": "string",
- "firstname": "string",
- "lastname": "string",
- "street": "string",
- "streetnumber": "string",
- "zip": "string",
- "city": "string",
- "country": "string",
- "email": "string",
- "phone": "string",
- "birthdate": "2019-08-24"
}, - "vehicle": {
- "vin": "string",
- "manufacturer": "string",
- "model": "string",
- "licenseplate": "string",
- "modelyear": 0,
- "condition": "string",
- "type": "string",
- "mileage": "string",
- "basiccolor": "string",
- "damage": "string",
- "registrationdate": "2019-08-24",
- "onofferfor": "string",
- "modelcode": "string",
- "optioncodes": "string",
- "manufacturerkeynumber": "string",
- "typekeynumber": "string",
- "performancekw": 0,
- "contractno": "string",
- "insurance": true,
- "paymenttype": "string",
- "currency": "string"
}, - "invoice": [
- {
- "desc": "string",
- "invoiceNo": "string",
- "orderNumber": "string",
- "debitor": "string",
- "name": "string",
- "amount": 0,
- "duedate": "2019-08-24",
- "invoice_date": "2019-08-24"
}
], - "location": "string"
}
]
}
This can only be done by the logged in user. Do not use the information in "paymentsInfo" for internal calculations, if you do, we cannot guarantee accurate results
id required | string ID of the single order. |
fieldnames | Array of strings if this is set you get only selected fields from the response. For example the name and amount; ?fieldnames=name&fieldnames=assets |
NX-Token required | string |
{- "name": "string",
- "lang": "string",
- "organization": {
- "id": "string",
- "name": "string",
- "nick": "string",
- "picture": "string",
- "users": [
- {
- "name": "string",
- "surname": "string",
- "city": "string",
- "street": "string",
- "streetnumber": "string",
- "zip": "string",
- "mobilenumber": "string"
}
], - "bankaccounts": [
- {
- "name": "string",
- "iban": "string",
- "bic": "string"
}
]
}, - "fstatus": "open",
- "pickupdate": "2019-08-24",
- "paymentoptions": {
- "cash": true,
- "escrow": true,
- "sepa": true,
- "tink": true,
- "creditcard": true,
- "paypal": true,
- "rechnungskauf": true,
- "installment": true,
- "carFinancing": true
}, - "assets": [
- {
- "label": "string",
- "amount": 0
}
], - "paymentsInfo": [
- {
- "id": "string",
- "label": "string",
- "amount": 0,
- "type": "string",
- "sender_data": {
- "name": "string",
- "sendername": "string",
- "iban": "string",
- "bic": "string"
}, - "status": "string",
- "received": true,
- "gwg": "string",
- "createDate": "2019-08-24",
- "receiveDate": "2019-08-24"
}
], - "attachments": [
- {
- "name": "string",
- "url": "string"
}
], - "recipient": [
- {
- "email": "string"
}
], - "creator": {
- "id": "string",
- "fullname": "string",
- "email": "string"
}, - "contactperson": {
- "id": "string",
- "fullname": "string",
- "email": "string"
}, - "accountData": {
- "figures": {
- "topaytotal": 0,
- "toconfirm": 0,
- "toreceive": 0,
- "isreceived": 0,
- "ispaid": 0,
- "topay": 0,
- "deficit": 0
}
}, - "paymentdata": {
- "iban": "string",
- "bic": "string",
- "name": "string",
- "reference": "string"
}, - "link": "string",
- "tags": [
- "string"
], - "metafields": [
- {
- "type": "string",
- "desc": "string"
}
], - "customer": {
- "id": "string",
- "type": "company",
- "accounttype": "string",
- "company": "string",
- "firstname": "string",
- "lastname": "string",
- "street": "string",
- "streetnumber": "string",
- "zip": "string",
- "city": "string",
- "country": "string",
- "fullname": "string",
- "email": "string",
- "phone": "string",
- "salutation": "string",
- "gender": "m",
- "title": "string",
- "mobile": "string",
- "fax": "string",
- "billingstreet": "string",
- "billingzip": "string",
- "billingcity": "string",
- "billingcountry": "string",
- "birthdate": "2019-08-24"
}, - "vehicle": {
- "vin": "string",
- "manufacturer": "string",
- "model": "string",
- "licenseplate": "string",
- "modelyear": 0,
- "condition": "string",
- "type": "string",
- "mileage": "string",
- "basiccolor": "string",
- "damage": "string",
- "registrationdate": "2019-08-24",
- "onofferfor": "string",
- "modelcode": "string",
- "optioncodes": "string",
- "manufacturerkeynumber": "string",
- "typekeynumber": "string",
- "performancekw": 0,
- "contractno": "string",
- "insurance": true,
- "paymenttype": "string",
- "currency": "string"
}, - "invoice": [
- {
- "desc": "string",
- "invoiceNo": "string",
- "orderNumber": "string",
- "debitor": "string",
- "name": "string",
- "amount": 0,
- "duedate": "2019-08-24",
- "invoice_date": "2019-08-24"
}
], - "header": {
- "url": "string",
- "description": "string"
}, - "location": {
- "_id": "string",
- "name": "string",
- "street": "string",
- "streetnumber": "string",
- "zip": "string",
- "country": "string",
- "vendorid": "string",
- "commerceType": "service"
}
}
This can only be done by the logged in user.
id required | string ID of the single order |
link | boolean if this is set to true you get a download link for the offline pdf instead of the pdf itself |
NX-Token required | string |
{- "key": "order.update.name.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
NX-Token required | string |
orgId required | string ID of the organization the order will be assigned. |
required | object |
Array of objects |
{- "orgId": "string",
- "order": {
- "name": "string",
- "duedate": "2019-08-24",
- "pickupdate": "2019-08-24",
- "contactperson": "user@example.com",
- "watcher": "user@example.com",
- "lang": "string",
- "recipient": "user@example.com",
- "salutation": "string",
- "reminder": "disabled",
- "unique": "string",
- "uniquemodus": "error",
- "metafields": [
- {
- "type": "string",
- "desc": "string"
}
], - "customer": {
- "id": "string",
- "type": "company",
- "accounttype": "insurance",
- "company": "string",
- "firstname": "string",
- "lastname": "string",
- "fullname": "string",
- "street": "string",
- "streetnumber": "string",
- "zip": "string",
- "city": "string",
- "country": "string",
- "email": "string",
- "phone": "string",
- "birthdate": "2019-08-24",
- "salutation": "string",
- "gender": "m",
- "title": "string",
- "mobile": "string",
- "fax": "string",
- "billingstreet": "string",
- "billingzip": "string",
- "billingcity": "string",
- "billingcountry": "string"
}, - "vehicle": {
- "vin": "string",
- "manufacturer": "string",
- "model": "string",
- "licenseplate": "string",
- "modelyear": 0,
- "condition": "string",
- "type": "string",
- "mileage": "string",
- "basiccolor": "string",
- "damage": "string",
- "registrationdate": "2019-08-24",
- "onofferfor": "string",
- "modelcode": "string",
- "optioncodes": "string",
- "manufacturerkeynumber": "string",
- "typekeynumber": "string",
- "performancekw": 0,
- "contractno": "string",
- "insurance": true,
- "paymenttype": "string",
- "currency": "string"
}, - "invoice": [
- {
- "desc": "string",
- "invoiceNo": "string",
- "orderNumber": "string",
- "debitor": "string",
- "name": "string",
- "amount": 0,
- "duedate": "2019-08-24",
- "invoice_date": "2019-08-24"
}
], - "draft": false,
- "tags": [
- "string"
], - "location": "string",
- "binaryattachment": [
- {
- "originalFilename": "string",
- "mimetype": "string",
- "buffer": "string"
}
]
}, - "assets": [
- {
- "label": "string",
- "amount": 0
}
]
}
{- "id": "string",
- "_meta": {
- "key": "order.plan.add.success",
- "message": "Erfolgreich gespeichert"
}
}
This endpoint allows a logged-in user to create a new order with the ability to configure recurrent payments and additional order details.
NX-Token required | string Authentication token required for the user to make the request. |
orgId required | string The ID of the organization to which the order belongs. |
required | object |
{- "orgId": "string",
- "order": {
- "name": "string",
- "type": "recurrentPayments",
- "config": {
- "recurrentPaymentsConfig": {
- "iterationsTotal": 5,
- "intervalType": "monthly",
- "currentIteration": 0
}, - "start": "2024-06-15T00:00:00.000Z"
}, - "amount": 20000,
- "orderData": {
- "customer": {
- "id": "example"
}
}
}
}
{- "id": "string",
- "_meta": {
- "key": "contract.create.success",
- "message": "Erfolgreich gespeichert"
}
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
attachment | string <binary> File size has to be less than 3mb; body should be a form-data object which contains the file with the key 'attachment' |
{- "key": "order.attachment.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
url | string |
item | string |
{- "url": "string",
- "item": "string"
}
{- "key": "order.attachment.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
object |
{- "recipient": {
- "email": "string",
- "salutation": "string"
}
}
{- "key": "order.recipient.add.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
string Email address of the buyer (recipient). |
{- "email": "string"
}
{- "key": "order.recipient.delete.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
required | Array of objects |
{- "assets": [
- {
- "label": "string",
- "amount": 0
}
]
}
{- "key": "order.update.price.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
name required | string |
{- "name": "string"
}
{- "key": "order.update.name.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
contactperson required | string |
{- "contactperson": "contactperson@email.com"
}
{- "key": "order.update.name.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
watcher required | string |
orgId required | string |
{- "watcher": "watcher@email.com",
- "orgId": "string"
}
{- "key": "order.update.name.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
duedate required | string <date> |
{- "duedate": "2019-08-24"
}
{- "key": "order.duedate.add.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
pickupdate | string <date> |
{- "pickupdate": "2019-08-24"
}
{- "key": "order.update.pickupdate.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
{- "key": "order.delete.pickupdate.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
required | Array of objects |
override | boolean Default: false override existing fields with new data |
{- "metafields": [
- {
- "type": "string",
- "desc": "string"
}
], - "override": false
}
{- "key": "order.update.metafields.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
Array of objects |
{- "invoice": [
- {
- "desc": "string",
- "invoiceNo": "string",
- "orderNumber": "string",
- "debitor": "string",
- "name": "string",
- "amount": 0,
- "duedate": "2019-08-24",
- "invoice_date": "2019-08-24"
}
]
}
{- "key": "order.update.invoicefields.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
object |
{- "customer": {
- "id": "string",
- "type": "company",
- "accounttype": "insurance",
- "company": "string",
- "firstname": "string",
- "lastname": "string",
- "fullname": "string",
- "street": "string",
- "streetnumber": "string",
- "zip": "string",
- "city": "string",
- "country": "string",
- "email": "string",
- "phone": "string",
- "salutation": "string",
- "gender": "m",
- "title": "string",
- "mobile": "string",
- "fax": "string",
- "billingstreet": "string",
- "billingzip": "string",
- "billingcity": "string",
- "billingcountry": "string",
- "birthdate": "2019-08-24"
}
}
{- "key": "order.update.customerfields.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
object |
{- "vehicle": {
- "vin": "string",
- "manufacturer": "string",
- "model": "string",
- "modelyear": 0,
- "condition": "string",
- "type": "string",
- "mileage": "string",
- "basiccolor": "string",
- "damage": "string",
- "registrationdate": "2019-08-24",
- "onofferfor": "string",
- "modelcode": "string",
- "optioncodes": "string",
- "manufacturerkeynumber": "string",
- "typekeynumber": "string",
- "contractno": "string",
- "insurance": true,
- "paymenttype": "string",
- "currency": "string",
- "accidentloaddate": "2019-08-24",
- "accidentloadamount": 0,
- "licenseplate": "string",
- "commissionnumber": "string",
- "performancekw": 0
}
}
{- "key": "order.update.vehiclefields.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
closed | boolean |
{- "closed": true
}
{- "key": "order.hide.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
label | string |
{- "label": "string"
}
{- "key": "order.tag.create.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
id required | string ID of the single order |
NX-Token required | string |
tid | string |
{- "tid": "string"
}
{- "key": "order.tag.delete.success",
- "message": "Erfolgreich gespeichert"
}
This can only be done by the logged in user.
NX-Token required | string |
{- "total": 0,
- "list": [
- {
- "id": "string",
- "key": "string",
- "name": "string",
- "nick": "string",
- "picture": "string",
- "contact": {
- "city": "string",
- "street": "string",
- "streetnumber": "string",
- "zip": "string",
- "email": "string"
}, - "users": [
- {
- "id": 0,
- "contactData": {
- "name": "string",
- "surname": "string",
- "city": "string",
- "street": "string",
- "streetnumber": "string",
- "zip": "string",
- "mobilenumber": "string"
}
}
], - "bankaccounts": [
- {
- "name": "string",
- "iban": "string",
- "bic": "string"
}
], - "paymentoptions": {
- "cash": true,
- "escrow": true,
- "sepa": true,
- "tink": true,
- "creditcard": true,
- "paypal": true,
- "rechnungskauf": true,
- "installment": true,
- "carFinancing": true
}, - "tags": [
- {
- "label": "string",
- "color": "string"
}
], - "location": [
- {
- "_id": "string",
- "name": "string",
- "street": "string",
- "streetnumber": "string",
- "zip": "string",
- "country": "string",
- "vendorid": "string",
- "commerceType": "service"
}
]
}
]
}
This can only be done by the logged in user.
orgId required | string ID of the organization. |
NX-Token required | string |
{- "id": "string",
- "key": "string",
- "name": "string",
- "nick": "string",
- "picture": "string",
- "contact": {
- "city": "string",
- "street": "string",
- "streetnumber": "string",
- "zip": "string",
- "email": "string"
}, - "users": [
- {
- "id": 0,
- "contactData": {
- "name": "string",
- "surname": "string",
- "city": "string",
- "street": "string",
- "streetnumber": "string",
- "zip": "string",
- "mobilenumber": "string"
}
}
], - "bankaccounts": [
- {
- "name": "string",
- "iban": "string",
- "bic": "string"
}
], - "paymentoptions": {
- "cash": true,
- "escrow": true,
- "sepa": true,
- "tink": true,
- "creditcard": true,
- "paypal": true,
- "rechnungskauf": true,
- "installment": true,
- "carFinancing": true
}, - "tags": [
- {
- "label": "string",
- "color": "string"
}
], - "location": [
- {
- "_id": "string",
- "name": "string",
- "street": "string",
- "streetnumber": "string",
- "zip": "string",
- "country": "string",
- "vendorid": "string",
- "commerceType": "service"
}
]
}
This can only be done by the logged in user.
orgId required | string ID of the organization. |
since required | string <date> Example: since=2022-04-01T00:00:00.000Z Date as UTC timestamp. |
NX-Token required | string |
[- "string"
]
This can only be done by the logged in user.
NX-Token required | string |
name required | string Name of the organization. In most cases, the full company name. Also shown to buyer. |
nick | string Displayed organization name to differentiate, for example, between different locations or branch offices. |
object Contact details of the organization. | |
object |
{- "name": "string",
- "nick": "string",
- "contact": {
- "email": "string",
- "street": "string",
- "streetnumber": "string",
- "zip": "string",
- "city": "string"
}, - "paymentoptions": {
- "cash": true,
- "sepa": true,
- "tink": true,
- "creditcard": true,
- "paypal": true
}
}
{- "id": "string",
- "_meta": {
- "key": "organization.add.success",
- "message": "Erfolgreich gespeichert"
}, - "key": "organization.add.success",
- "message": "Erfolgreich gespeichert"
}
Save multiple locations to a single organization.
orgId required | string ID of the organization. |
NX-Token required | string |
id required | string This is the orgID |
name required | string |
rout | string |
street | string |
streetnumber | string |
city | string |
vendorid | string This property will be matched with the location when creating an order |
commerceType | string Enum: "commerce" "service" |
iban required | string <iban> |
{- "id": "string",
- "name": "string",
- "rout": "string",
- "street": "string",
- "streetnumber": "string",
- "city": "string",
- "vendorid": "string",
- "commerceType": "commerce",
- "iban": "string"
}
{- "key": "organization.location.success",
- "message": "Erfolgreich gespeichert",
- "version": 4
}
This can only be done by the logged in user.
orgId required | string ID of the organization. |
NX-Token required | string |
from | string <date> Date as UTC timestamp. Start date of interval for payment report. |
to | string <date> Date as UTC timestamp. End date of interval for payment report. |
{- "from": "2019-08-24",
- "to": "2019-08-24"
}
[- {
- "orgId": "string",
- "orgName": "string",
- "createDate": "16.03.2021 15:00",
- "label": "string",
- "scheme": "string",
- "amount": "string",
- "name": "string",
- "reference": "string",
- "id": "string",
- "customer": "string",
- "meta": [
- {
- "type": "string",
- "desc": "string"
}
], - "invoicefields": [
- {
- "no": "string",
- "debitor": "string"
}
]
}
]
This can only be done by the logged in user.
orgId required | string ID of the organization. |
NX-Token required | string |
attachment | string <binary> File size has to be less than 5mb; body should be a form-data object which contains the file with the key 'attachment'. The file should be a csv or tsv and required the columns uniqueBookingId, label, amount, orderId, invoiceNo. |
{- "count": 1,
- "new": 0,
- "skip": 1,
- "key": "bookings.import.success",
- "message": "Erfolgreich gespeichert",
- "responseversion": 4
}
This can only be done by the logged in user.
orgId required | string ID of the organization. |
NX-Token required | string |
required | Array of objects Each Object represent a payment to import |
{- "list": [
- {
- "orderId": "string",
- "label": "string",
- "unique": "string",
- "amount": 0,
- "invoiceNo": "string",
- "comment": "string",
- "customerId": "string",
- "additionalMetadata": { },
- "sender_data": {
- "iban": "string",
- "bic": "string",
- "name": "string",
- "sendername": "string"
}
}
]
}
{- "count": 2,
- "new": 2,
- "skip": 0,
- "key": "bookings.file.success",
- "message": "Erfolgreich gespeichert",
- "responseversion": 4
}
If you want to set up a webhook for continuous updates for your orders please contact dev@nx-technologies.com so we can whitelist your URL.
Webhooks only notify you about changes of an order. To verify and view the changes, retrieve the relevant order using "get one order". This ensures the webhook is genuine and prevents third parties from injecting false data into your system.
Webhook Key | Reason |
---|---|
order.created | An order has been created |
order.confirmed | The order has been fully paid (includes gwg check if neccessarry) |
order.archived | The order has been archived |
order.assets.updated | An asset of the order has been updated |
order.name.updated | The name of the order has been updated |
order.payment.created | A Payment has been created for the order |
order.payment.confirmed | The Payment has been confirmed |
order.payment.received | The Payment has been received |
order.payment.deleted | The Payment has been deleted |
order.payment.updated | The Payment has been updated |
order.attachment.updated | A customer uploaded an attachment |
{
"key": string,
"text": string,
"order?": {
"id?": string,
"name?": string,
"figures?": {
"topaytotal?": number,
"toconfirm?": number,
"toreceive?": number,
"isreceived?": number,
"ispaid?": number,
"topay?": number,
"deficit?": number
},
"status?": string, ['open', 'topurchase', 'purchased', 'confirmed']
"createDate?": string
},
"uuidForFile?": string,
"apiDownloadUrl?": string,
"organization": {
"id": string,
"name": string
},
"payment?": {
"amount?": number,
"label?": string,
"type?": string, ['custom', 'deposit', 'escrow', 'fts', 'tink', 'match', 'viban', 'rebook', 'order', 'cash', 'sepa', 'offline', 'creditcard', 'directdebit', 'paypal', 'googlePay', 'applePay', 'girocard', 'debitcard', 'api', 'installment', 'klarna']
"status?": string, ['created', 'instructed', 'deposit', 'confirmed', 'deleted']
"received?": boolean ['true', 'false']
},
"hmac": string
}
All Webhooks related to Payments contain the "payment" field.
{
"key": "order.payment.received",
"text": "*order.payment.received* for *<orderName>* (222 €) new status: *confirmed*",
"order": {
"id": "<orderId>",
"name": "<orderName>",
"figures": {
"topaytotal": 500,
"toconfirm": 0,
"toreceive": 0,
"isreceived": 0,
"ispaid": 0,
"topay": 500,
"deficit": 500
},
"status": "open",
"createDate": "2022-02-22T22:22:22.222Z"
},
"organization": {
"id": "<organizationId>",
"name": "<organizationName>"
},
"payment": {
"amount": 22200,
"label": "Payment Name",
"type": "custom",
"status": "confirmed",
"received": true
}
"hmac":"48656c6c6f2c2063616e20796f752068656172206d653f2049742773206d652e"
}
hmac contains the HMAC computed by the secret and the webhhook response (excluding hmac) which can be verified by
strippedJSON = stripHmac(responseJSON);
hmac = createHmac('sha256', secret, strippedJSON).hex;
if (responseJSON.hmac !== hmac) throw Error('Invalid hmac');
This can only be done by the logged in user.
orgId required | string |
NX-Token required | string |
{- "total": 0,
- "list": [
- {
- "id": "string",
- "organization": "string",
- "url": "string",
- "createDate": "2019-08-24"
}
]
}
This can only be done by the logged in user.
NX-Token required | string |
orgId required | string |
url required | string |
secret | string |
{- "orgId": "string",
- "url": "string",
- "secret": "string"
}
{- "key": "webhook.create.success",
- "message": "Erfolgreich gespeichert"
}
In order to initialize a transaction at a specific smartkasse a 3-step process has to be implemented.
First: the /list
endpoint has to be called, to get a list of all available smartkasse for the organization in question.
Second: the returned list has to be used to let the user select the smartkasse where to initialize the transaction.
Third: the selected smartkasse id and an order id has to be send to the /startTransaction
endpoint.
The Cardreader will then prompt the Customer the amount that has to be paid.
Additionally for deposit processing:
To capture all or part of an authorised payment, use /captureTransaction
.
To cancel an authorised but not captured payment, use /cancelTransaction
.
prompts the smartkasse to start a transaction
NX-Token required | string |
orderId required | string orderId from bezahl.de |
smartkasse required | string id for the smartkassen (check smartkasse/list) |
{- "orderId": "string",
- "smartkasse": "string"
}
{- "_meta": {
- "key": "smartkasse.startTransaction.success",
- "message": "Erfolgreich gespeichert"
}
}
The deposit will be charged in full or in part to the credit card at the smartkasse
NX-Token required | string |
orderId required | string orderId from bezahl.de |
amount required | integer amount that must be captured |
{- "orderId": "string",
- "amount": 0
}
{- "_meta": {
- "key": "smartkasse.captureTransaction.success",
- "message": "Erfolgreich gespeichert"
}
}
cancel authorized deposit
NX-Token required | string |
orderId required | string orderId from bezahl.de |
{- "orderId": "string"
}
{- "_meta": {
- "key": "smartkasse.cancelTransaction.success",
- "message": "Erfolgreich gespeichert"
}
}
Get paymentdata from adyen and process it accordingly to organization settings.
This can only be done by the logged in user.
NX-Token required | string |
orgId required | string id of the organization |
batch | number batch number to pull from adyen starting at 1 |
isJSON | boolean response will contain the report in json, no mail is send |
force | boolean send the report by mail regardless of organization settings |
{- "orgId": "string",
- "batch": 1,
- "isJSON": true,
- "force": true
}
{- "_meta": {
- "key": "adyen.processsettlementreport.success",
- "message": "Erfolgreich gespeichert",
- "version": 0
}
}