Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Use the Notify API to send invoice, customer and payment information to the Notify platform. Notify and your app back-end will communicate by sending HTTP requests back and forth.
This page provides an overview of the Notify API. The topics in the chapter deal with a number of specific aspects of the API. We recommend to read these topics entirely.
If you have any questions about integrating our API, please contact us. We are happy to help!
The API implements a Representational state transfer (REST) architecture. Sounds technical, but it’s really quite easy. It mainly breaks down to HTTP-methods GET, PATCH, POST and DELETE matching the operations to read, update, create and delete.
REST also implies a nice and clean structure for URLs or endpoints. This means you can reach any part of the Notify API on https://api.notify.cm/v2/ adding the name of the resource you want to interact with.
How does Notify create an API that’s maximally safe while being as easy to implement for developers as possible? By not giving in to the reflex of stacking equivalent safety measures and by not sending sensitive information when it’s not required.
Notify uses the API-key as and requires HTTPS connections encrypted via TLS1.2 (or higher) to guarantee security. This means the Notify API can only be accessed through the secure https protocol. All of the API clients we publish use HTTPS.
End-to-end safety on the transport level is guaranteed by the HTTPS-requirement, no need to encrypt the data itself again. We only support TLS 1.2 (or higher). Connection is not possible when using a lower version.
HTTPS mitigates packet sniffing and timing & replay attacks. Thanks to HTTPS, data exchanged between Notify and the client is protected and guaranteed to be authentic. HTTPS implements hashed signatures, nonces and other tried and tested cryptographic safeties.
Man-in-the-middle attacks are prevented by strictly checking the HTTPS-certificate used on https://api.notify.cm/. If the client detects a fake certificate – let’s say because of a hacked DNS-server – no connection will be set up.
All sensitive information is entered on our platform. No third-party software or databases will be used.
Used for all customer data. Before storing any invoice data the customer should be stored in your administration.
CustomersUsed for all invoice data. Send your invoice information to the Notify platform or update any invoice data just with a simple API call. Payment information can be send by an update or with the .
Add your invoice documents (PDF) to your invoice data with a simple API call.
Retrieved a payment on your Bank account? Just send a simple update to your Notify administration and you're up-to-date again.
During the process of building your integration, it is important to properly test it. As briefly explained in our authentication guide, you can access the test mode of the Notify API by using the Test API key. Your Test API key always starts with test_.
Any invoice or other resources you create in test mode are completely isolated from your live mode data. Going back and forth between test and live mode is as easy as switching out the API key.
When creating, updating, or listing data in test mode all data will be virtual and no data will be stored. So you're completely save to test with alle the data you want.
Delete a customer from your administration. For the record: Once deleted, you can't undo this action.
DELETE https://api.notify.cm/v2/customers/{customer_id}
Authentication: API keys
Attention: Only empty customers can be deleted. First delete all invoices before deleting a customer. Deleting a non-empty customer will give an error.
Whenever you send a request to the Notify API you will get a response in format. This is a standard for data communication that’s easy to read for humans as well as machines. Alongside the JSON-response an HTTP status code is sent that shows whether the request was successful or not. If it was not, you can tell by the code and the message in the response what went wrong, why it went wrong and whether there is something you can do about it.
Authorization
string
Your test or live API key
HTTP/1.1 204 No ContentHTTP/1.1 400 Bad Request
Content-Type: application/json
{
"status": 400,
"title": "Bad Request",
"detail": "Customer is not empty"
}HTTP/1.1 404 Not Found
Content-Type: application/json
{
"status": 404,
"title": "Not Found",
"detail": "No customer exists with id I_dont_exist."
}curl -X DELETE https://api.notify.cm/v2/customers/a0f0660d-6c8d-422b-8114-e363b260521e \
-H "Authorization: Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug" \HTTP/1.1 204 No ContentAn HTTP status 200 OK, 201 Created or 204 No Content is issued whenever your request was a success. You see this type of response in our examples like this one below where we successfully retrieve an invoice.
The first digit of the status code indicates the type or class of the status. Using this first digit you can determine the best approach for dealing with an error. The following classes of codes are relevant to the Notify API:
A code in the 2xx range comes with a Notify API response indicating success.
A code in the 4xx range is an error code returned from the Notify API where the client (your responsibility) seems to be causing the error. Whenever this happens you can change your code to prevent the error from happening again. The error for this specific request usually will not go away by itself.
A code in the 5xx range is an error caused by the server (Our responsibility). So caused by the Notify API or it is infrastructure related. In the rare case you get this type of error, something is wrong with the Notify API. The errors should subside without your mediation.
Things will sometimes go wrong. For instance when a request is made with the wrong API key, this error will be the result:
Another error that occurs often, is the well known HTTP status 404 Not Found, which indicates the object you are trying to retrieve or manipulate does not exist:
Sometimes a status HTTP 422 Unprocessable Entity is returned. When it occurs there is extra information in the JSON about what part or field of your request is likely to be causing the error. In these cases you will find the response has the parameter field. In the example below we deliberately used an amount that was too high:
The Notify API will only ever return a subset of all legal HTTP status codes. Here’s the full list:
Response
Description
200
OK - Your request was succesful
201
Created – The entity was created successfully.
204
No Content – The requested entity was canceled / deleted successfully.
400
Bad Request – The Notify API was unable to understand your request. There might be an error in your syntax.
401
Unauthorized – Your request was not executed due to failed authentication. Check your API key.
curl -X GET https://api.notify.cm/v2/invoices/a0f0660d-6c8d-422b-8114-e363b260521e \
-H "Authorization: Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug" \HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"resource": "invoice",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"status":"open",
"invoiceNumber":"20210001",
"invoiceDate":"21-01-2021",
"invoiceDuedate":"21-02-2021",
"invoiceTotal":"480.00",
"invoiceBalance":"330.00",
"document":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65.pdf",
"customer": {
"id":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65",
"number":"10001",
"name":"Creditpartners B.V."
}
}curl -X GET https://api.notify.cm/v2/invoices \
-H "Authorization: Bearer test_deliberately_invalid_key"HTTP/1.1 401 Unauthorized
Content-Type: application/hal+json
{
"status": 401,
"title": "Unauthorized Request",
"details": "Missing authentication, or failed to authenticate"
}curl -X GET https://api.notify.cm/v2/invoices/I_dont_exist \
-H "Authorization: Bearer test_4BBB6H4s2jGi3ajsx4E2KqY5sxSXaRV"HTTP/1.1 404 Not Found
Content-Type: application/json
{
"status": 404,
"title": "Not Found",
"detail": "No invoice exists with id I_dont_exist."
}curl -X POST https://api.notify.cm/v2/invoices \
-H "Authorization: Bearer test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM" \
-d "customer=a0f0660d-6c8d-422b-8114-e363b260521e" \
-d "invoiceNumber=10001" \
-d "InvoiceDate=28-01-2021" \
-d "InvoiceDuedate=28-02-2021" \
-d "InvoiceTotal=50000000.00"HTTP/1.1 422 Unprocessable Entity
Content-Type: application/hal+json
{
"status": 422,
"title": "Unprocessable Entity",
"detail": "The amount is higher than the maximum",
"field": "invoicetotal"
}403
Forbidden – You do not have access to the requested resource.
404
Not Found – The object referenced by your URL does not exist.
405
Method Not Allowed – You are trying to use an HTTP method that is not applicable on this URL or resource. Refer to the Allow header to see which methods the endpoint supports.
409
Conflict – You are making a duplicate API call that was probably a mistake (only in v2).
410
Gone – You are trying to access an object, which has previously been deleted (only in v2).
415
Unsupported Media Type – Your request’s encoding is not supported or is incorrectly understood. Please always use JSON.
422
Unprocessable Entity – We could not process your request due to another reason than the ones listed above. The response usually contains a field property to indicate which field is causing the issue.
429
Too Many Requests – Your request has hit a rate limit. Please wait for a bit and retry.
500
Internal Server Error – An internal server error occurred while processing your request. Our developers are notified automatically, but if you have any information on how you triggered the problem, please contact us.
502
Bad Gateway – The service is temporarily unavailable, either due to calamity or (planned) maintenance. Please retry the request at a later time.
503
Service Unavailable – The service is temporarily unavailable, either due to calamity or (planned) maintenance. Please retry the request at a later time.
504
Gateway Timeout – Your request is causing an unusually long process time.
Last, you can also send an e-mail (one per invoice) with the document attached. You can send the e-mail to your personal import mailbox, set in the API section in your Notify dashboard.
There are two ways to connect your files to the right invoices:
Use the unique Notify id in the file name f.e. 0f0660d-6c8d-422b-8114-e363b260521e.pdf
Use your invoice number in the file name f.e. 10001.pdf
Together with your e-mail credentials, we can connect the file to the right invoice.
Of course it’s very important to keep any API keys secure. Do not ever share them. However, if a key leaks you can always regenerate it. Do not forget to apply new keys to your code. Until you do your integration will not work.
The API key or token must be sent along with each API request, by providing it in the HTTP call’s Authorization header using the Bearer method. For example: a valid Authorization header is Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug.
In the example below we use a Test API key on the GET method of the invoices resource. This method fetches an invoice - in this case the invoice with the fictional invoice ID a0f0660d-6c8d-422b-8114-e363b260521e.
A Live API key, starting with live_ and a Test API key, starting with test_. You can find more information about testing in the Testing guide.
The response will be JSON.
curl -X GET https://api.notify.cm/v2/invoices/a0f0660d-6c8d-422b-8114-e363b260521e \
-H "Authorization: Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug"HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"resource": "invoice",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"status":"open",
"invoiceNumber":"20210001",
"invoiceDate":"21-01-2021",
"invoiceDuedate":"21-02-2021",
"invoiceTotal":"480.00",
"invoiceBalance":"330.00",
"document":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65.pdf",
"customer": {
"id":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65",
"number":"10001",
"name":"Creditpartners B.V."
}
}Authorization
string
Your test or live API key
Limit
string
The number of payments to return (max 250).
From
string
Used for pagination. Offset the result set to the payment with this ID. The payment with this ID is included in the result as well.
HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"payments": [
{
"resource": "payments",
"id": "07d125ef-8e59-4629-8ef5-5c82de9979e9",
"date":"21-01-2021",
"amount":"100.00",
"invoice": {
"id":"a0f0660d-6c8d-422b-8114-e363b260521e",
"number":"10001",
"invoiceTotal":"480.00",
"invoiceBalance":"380.00"
},
"customer": {
"id":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65",
The language code allows you to preset the language to be used in e-mail conversations and the hosted invoice pages shown to the customer. Setting a language is highly recommended and will greatly improve your conversion rate. When this parameter is omitted, the default language of the administration wil be used.
Notify currently support the following languages:
curl -X GET https://api.notify.cm/v2/payments \
-H "Authorization: Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug" \HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"payments": [
{
"resource": "payments",
"id": "07d125ef-8e59-4629-8ef5-5c82de9979e9",
"date":"21-01-2021",
"amount":"100.00",
"invoice": {
"id":"a0f0660d-6c8d-422b-8114-e363b260521e",
"number":"10001",
"invoiceTotal":"480.00",
"invoiceBalance":"380.00"
},
"customer": {
"id":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65",
"number":"10001",
"name":"Creditparters B.V."
}
},
{},
{},
{}
],
"count": 5,
"links": {
"previous": null,
"next": {
"href": "https://api.notify.cm/v2/payments?from=07d125ef-8e59-4629-8ef5-5c82de9979e9",
"type": "application/hal+json"
}
}
}You can also upload your documents by FTP. For information and credentials go to the API section in your Notify dashboard or contact support.
Username
Username
Generated by notify
Password
Your API key
There are two ways to connect your files to the right invoices:
Use the unique Notify id in the file name f.e. 0f0660d-6c8d-422b-8114-e363b260521e.pdf
Use your invoice number in the filename f.e. 10001.pdf
Together with your login credentials, we can connect the file to the right invoice.
french
German
german
Italian (not released yet)
italian
Polish (not released yet)
polish
Spanish (not released yet)
spanish
Language
Language code
English
english
Dutch
dutch
French
InvoiceTotal
number
Number format: 1100.00
InvoiceBalance
number
Same format. When empty InvoiceTotal will be used.
InvoiceStatus
string
Statuscode: concept open paid or canceled
Authorization
string
Your test or live API key
Customer
string
Unique Notify customer id
InvoiceNumber
string
Unique invoice number from your administration Max. 100 characters
InvoiceDate
string
European date > 28-01-2021
InvoiceDuedate
string
European date > 28-02-2021
HTTP/1.1 201 Created
Content-Type: application/hal+json
{
"resource": "invoice",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"status":"open",
"invoiceNumber":"10001",
"invoiceDate":"28-01-2021",
"invoiceDuedate":"28-02-2021",
"invoiceTotal":"500.00",
"invoiceBalance":"330.00",
"document":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65.pdf",
"customer": {
"id":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65",
"number":"10001",
"name":"Creditpartners B.V."
}
}HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"status": 400,
"title": "Bad Request",
"detail": "Field invoiceDate in wrong format"
}Authorization
string
Your test or live API key
Customer
string
Search by your original customerCode
HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"resource": "customer",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"customerCode":"10001"
}HTTP/1.1 404 Not Found
Content-Type: application/json
{
"status": 404,
"title": "Not Found",
"detail": "No customer exists with customerCode 'I_dont_exist'."
}curl -X POST https://api.notify.cm/v2/invoices \
-H "Authorization: Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug" \
-d "customer=36cf1c0d-53fe-4c73-8a46-f9f40cd99b65" \
-d "invoiceNumber=10001" \
-d "InvoiceDate=28-01-2021" \
-d "InvoiceDuedate=28-02-2021" \
-d "InvoiceTotal=500.00" \
-d "invoiceBalance=330.00" \
-d "invoiceStatus=open"HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"resource": "invoice",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"status":"open",
"invoiceNumber":"10001",
"invoiceDate":"28-01-2021",
"invoiceDuedate":"28-02-2021",
"invoiceTotal":"500.00",
"invoiceBalance":"330.00",
"document":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65.pdf",
"customer": {
"id":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65",
"number":"10001",
"name":"Creditpartners B.V."
}
}curl -X GET https://api.notify.cm/v2/customers/search \
-H "Authorization: Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug" \
-d "customer=10001"HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"resource": "customer",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"customerCode":"10001"
}Authorization
string
Your test or live API key
HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"resource": "invoice",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"status":"open",
"invoiceNumber":"20210001",
"invoiceDate":"21-01-2021",
"invoiceDuedate":"21-02-2021",
"invoiceTotal":"480.00",
"invoiceBalance":"330.00",
"customer": {
"id":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65",
"number":"10001",
"name":"Creditpartners B.V."
}
}HTTP/1.1 404 Not Found
Content-Type: application/json
{
"status": 404,
"title": "Not Found",
"detail": "No invoice exists with id I_dont_exist."
}Authorization
string
Your test or live API key
HTTP/1.1 204 No ContentHTTP/1.1 404 Not Found
Content-Type: application/hal+json
{
"status": 404,
"title": "Not Found",
"detail": "No document exists with id I_dont_exist."
}Authorization
string
Your test or live API key
HTTP/1.1 204 No ContentHTTP/1.1 404 Not Found
Content-Type: application/json
{
"status": 404,
"title": "Not Found",
"detail": "No invoice exists with id I_dont_exist."
}curl -X GET https://api.notify.cm/v2/invoices/a0f0660d-6c8d-422b-8114-e363b260521e \
-H "Authorization: Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug" \HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"resource": "invoice",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"status":"open",
"invoiceNumber":"20210001",
"invoiceDate":"21-01-2021",
"invoiceDuedate":"21-02-2021",
"invoiceTotal":"480.00",
"invoiceBalance":"330.00",
"document":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65.pdf",
"customer": {
"id":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65",
"number":"10001",
"name":"Creditpartners B.V."
}
}curl -X DELETE https://api.notify.cm/v2/documents/ \
-H "Authorization: Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug" \HTTP/1.1 204 No Contentcurl -X DELETE https://api.notify.cm/v2/invoices/a0f0660d-6c8d-422b-8114-e363b260521e \
-H "Authorization: Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug" \HTTP/1.1 204 No ContentLimit
number
The number of customers to return (with a maximum of 250).
From
string
Used for pagination. Offset the result set to the invoice with this ID. The invoice with this ID is included in the result as well.
Authorization
string
Your test or live API key
HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"customers": [
{
"resource": "customer",
"customerCode": "a0f0660d-6c8d-422b-8114-e363b260521e",
"number":"10001",
"name":"Creditpartners B.V.",
"address": {
"address":"Canadalaan 4",
"postalcode":"7316 BX",
"city":"Apeldoorn",
"country":"NL",
},
"contact":"Jan Post",
"phone":"0882441100",
Example with limit and from set.
Authorization
string
Your test of live API key
InvoiceDate
string
European date: 28-01-2021
InvoiceDuedate
string
European date: 28-02-2021
InvoiceTotal
number
Number format: 1100.00
InvoiceBalance
number
Number format: 1100.00
HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"resource": "invoice",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"status":"open",
"invoiceNumber":"10001",
"invoiceDate":"28-01-2021",
"invoiceDuedate":"28-02-2021",
"invoiceTotal":"500.00",
"invoiceBalance":"330.00",
"document":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65.pdf",
"customer": {
"id":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65",
"number":"10001",
"name":"Creditpartners B.V."
}
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"status": 400,
"title": "Bad Request",
"detail": "Field invoiceDate in wrong format""
}Authorization
string
Your test or live API key
HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"resource": "customer",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"customerCode":"10001",
"name":"Creditpartners B.V.",
"address": {
"address":"Canadalaan 4",
"postalcode":"7316 BX",
"city":"Apeldoorn",
"country":"NL"
},
"contact":"Jan Post",
"phone":"0882441100",
"mobile":"0612345678",
"email":"[email protected]",
curl -X GET https://api.notify.cm/v2/customers \
-H "Authorization: Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug" \curl -X GET https://api.notify.cm/v2/customers?limit=100&from=a0f0660d-6c8d-422b-8114-e363b260521e \
-H "Authorization: Bearer test_dHar4XY7LxsDOtmnkVtjNVWXLSlXsM" \HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"customers": [
{
"resource": "customer",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"customerCode":"10001",
"name":"Creditpartners B.V.",
"address": {
"address":"Canadalaan 4",
"postalcode":"7316 BX",
"city":"Apeldoorn",
"country":"NL"
},
"contact":"Jan Post",
"phone":"0882441100",
"mobile":"0612345678",
"email":"[email protected]",
"invoiceEmail":"[email protected]",
"registrationNumber":"123456",
"language":"dutch"
},
{},
{},
{},
{}
],
"count": 5,
"links": {
"previous": null,
"next": {
"href": "https://api.notify.cm/v2/customers?from=a0f0660d-6c8d-422b-8114-e363b260521e&limit=250",
"type": "application/hal+json"
}
}
}HTTP/1.1 404 Not Found
Content-Type: application/json
{
"status": 404,
"title": "Not Found",
"detail": "No invoice exists with id I_dont_exist."
}curl -X PATCH https://api.notify.cm/v2/invoices/a0f0660d-6c8d-422b-8114-e363b260521e \
-H "Authorization: Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug" \
-d "invoiceBalance=0.00" \
-d "invoiceStatus=paid"HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"resource": "invoice",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"status":"paid",
"invoiceNumber":"10001",
"invoiceDate":"28-01-2021",
"invoiceDuedate":"28-02-2021",
"invoiceTotal":"500.00",
"invoiceBalance":"0.00",
"document":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65.pdf",
"customer": {
"id":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65",
"number":"10001",
"name":"Creditpartners B.V."
}
}HTTP/1.1 404 Not Found
Content-Type: application/json
{
"status": 404,
"title": "Not Found",
"detail": "No customer exists with id I_dont_exist."
}curl -X GET https://api.notify.cm/v2/customers/a0f0660d-6c8d-422b-8114-e363b260521e \
-H "Authorization: Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug" \HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"resource": "customer",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"customerCode":"10001",
"name":"Creditpartners B.V.",
"address": {
"address":"Canadalaan 4",
"postalcode":"7316 BX",
"city":"Apeldoorn",
"country":"NL"
},
"contact":"Jan Post",
"phone":"0882441100",
"mobile":"0612345678",
"email":"[email protected]",
"invoiceEmail":"[email protected]",
"registrationNumber":"123456",
"language":"dutch"
}InvoiceStatus
string
Statuscode: concept open paid or cancelled
Limit
number
The number of invoices to return (max 250).
From
number
Used for pagination. Offset the result set to the invoice with this ID. The invoice with this ID is included in the result as well.
Authorization
string
Your test or live API key
HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"invoices": [
{
"resource": "customer",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"status":"open",
"invoiceNumber":"20210001",
"invoiceDate":"21-01-2021",
"invoiceDuedate":"21-02-2021",
"invoiceTotal":"480.00",
"invoiceBalance":"330.00",
"document":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65.pdf",
"customer": {
"id":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65",
"number":"10001",
"name":"Creditparters B.V."
}
},
{},
{},
{}
],
"count": 5,
"links": {
"previous": null,
"next": {
"href": "https://api.notify.cm/v2/invoices?from=a0f0660d-6c8d-422b-8114-e363b260521e&limit=5",
"type": "application/hal+json"
}
}
}Authorization
string
Your test or live API key
Invoice
string
The unique Notify invoice id
Date
string
European format: 28-01-2021
Amount
string
Number format: 1100.00
Method
string
Payment method code. See documentation
HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"resource": "payment",
"id": "07d125ef-8e59-4629-8ef5-5c82de9979e9",
"invoice":"a0f0660d-6c8d-422b-8114-e363b260521e",
"date":"21-01-2021",
"amount":"100.00",
"invoiceTotal":"480.00",
"invoiceBalance":"380.00"
}HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"status": 400,
"title": "Bad Request",
"detail": "Field date in wrong format"
}HTTP/1.1 404 Not Found
Content-Type: application/json
{
"status": 404,
"title": "Not Found",
"detail": "No invoice exists with id I_dont_exist."
}curl -X GET https://api.notify.cm/v2/invoices \
-H "Authorization: Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug" \HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"invoices": [
{
"resource": "customer",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"status":"open",
"invoiceNumber":"20210001",
"invoiceDate":"21-01-2021",
"invoiceDuedate":"21-02-2021",
"invoiceTotal":"480.00",
"invoiceBalance":"330.00",
"document":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65.pdf",
"customer": {
"id":"36cf1c0d-53fe-4c73-8a46-f9f40cd99b65",
"number":"10001",
"name":"Creditparters B.V."
}
},
{},
{},
{}
],
"count": 5,
"links": {
"previous": null,
"next": {
"href": "https://api.notify.cm/v2/invoices?from=a0f0660d-6c8d-422b-8114-e363b260521e&limit=250",
"type": "application/hal+json"
}
}
}curl -X POST https://api.notify.cm/v2/payments \
-H "Authorization: Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug" \
-d "invoice=a0f0660d-6c8d-422b-8114-e363b260521e" \
-d "date=21-01-2021" \
-d "amount=100.00" \
-d "method=banktransfer"HTTP/1.1 201 Created
Content-Type: application/hal+json
{
"resource": "payment",
"id": "07d125ef-8e59-4629-8ef5-5c82de9979e9",
"invoice":"a0f0660d-6c8d-422b-8114-e363b260521e",
"date":"21-01-2021",
"amount":"100.00",
"invoiceTotal":"480.00",
"invoiceBalance":"380.00"
}See details below
Name
string
250
Address
string
250
Postalcode
string
10
City
string
250
Country
string
2
See details below
Contact
string
250
Phone
string
20
See details below
Mobile
string
20
See details below
string
250
InvoiceEmail
string
250
RegistrationNumber
string
10
See details below
Language
string
10
See details below
The unique customer identifier (code) as it is stored in your administration.
Customer countries can be stored with the two-digit country code. Please use these codes if you want to save the customer country. This parameter is optional. When it is omitted, we'll use the Netherlands as basic country. See complete list of country codes.
You can use these fields the way you want, so you can use +31 612345678 , 06 - 12345678 or 0612345678 as well.
The company registration number as registered by the Chamber of Commerce.
Allows you to preset the language to be used in the communication to the consumer. When this parameter is not provided, the default language will be used instead. More information.
Possible values: dutch english german french
Field
Type
Max value length
Information
Customer
string
36
See details below
InvoiceNumber
string
100
InvoiceDate
The unique id form your Notify administration. You can find this id with the Search customer API.
The status of the invoice in your administration. Use concept open paid or cancelled.
Important: When an invoice gets the status paid or cancelled, no further actions will been made.
Always use two decimals, for example 1100.00 and 0.00.
InvoiceBalance is optional. When it is omitted, InvoiceTotal will be copied.
Field
Type
Max value length
Information
Invoice
string
36
See details below
Filename
string
250
See details below
Mediatype
Use the unique id of the invoice you want the document to attach. How to find the invoice id.
Complete original file name including file extension. For example: invoice-200001.pdf
PDF file content in Base64 format. See https://base64.guru/converter/encode/pdf for more information.
Field
Type
Max value length
Informayion
Invoice
string
36
Date
date
10
Example: 28-01-2021
Amount
The method used for the payment. Use banktransfer ideal bancontact sepa or creditcard. When it is omitted, we'll use the banktransfer as basic method.
Field
Type
Max value length
Information
Customercode
string
250
Customer creation is elemental to the Notify API: this is where most invoice implementations start off. Once you have created a customer, you can create invoices for the customer. without a customer id, you can't create invoices. So always start with the customer API first or search for the customer id. In both responses you'll find the unique customer id you can use for your invoices.
POST https://api.notify.cm/v2/customers
Authentication: API keys
date
10
Use dDD-MM-YYYY format
InvoiceDuedate
date
10
Use dDD-MM-YYYY format
InvoiceTotal
amount
10
Example: 1100.00
InvoiceBalance
amount
10
Example: 1100.00
InvoiceStatus
string
10
See details below
string
50
Example: application/pdf
Content
string
5.242.880 (5 MB)
See details below
amount
10
Example: 1100.00
Method
string
10
See details below
City
string
Max. 250 characters
Country
string
Two characters country code, see documentation
Contact
string
The full name of the contact. Max 250 characters
Phone
string
Max. 20 characters
Mobile
string
Max. 20 characters
string
Max. 250 characters
InvoiceEmail
string
Address for invoices only. Max. 250 characters
RegistrationNumber
string
Chamber of Commerce Registration number
Language
string
Language code. See documentation
Overwrite
boolean
Optional if you want to overwrite information when a customer with the same CustomerCode already exists. we advise to use the update API instead.
Authorization
string
Your test or live API key
CustomerCode
string
Your unique customer code. Max. 250 characters
Name
string
The name of the customer. Max 250 characters
Address
string
Max. 250 characters
Postalcode
string
Max. 10 characters
HTTP/1.1 201 Created
Content-Type: application/hal+json
{
"resource": "customer",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"customerCode":"10001",
"name":"Creditpartners B.V.",
"address": {
"address":"",
"postalcode":"",
"city":"",
"country":"NL"
},
"contact":"",
"phone":"",
"mobile":"",
"email":"[email protected]",
"invoiceEmail":"",
"registrationNumber":"",
"language":"dutch"
}HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"status": 405,
"title": "Bad Request",
"detail": "Field email in wrong format"
}curl -X POST https://api.notify.cm/v2/customers \
-H "Authorization: Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug" \
-d "number=10001" \
-d "name=Creditpartners B.V." \
-d "[email protected]"HTTP/1.1 201 Created
Content-Type: application/hal+json
{
"resource": "customer",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"customerCode":"10001",
"name":"Creditpartners B.V.",
"address": {
"address":"",
"postalcode":"",
"city":"",
"country":"NL"
},
"contact":"",
"phone":"",
"mobile":"",
"email":"[email protected]",
"invoiceEmail":"",
"registrationNumber":"",
"language":"dutch"
}Updating customer information is easy with the update API. All you need is the customer id to update the necessary information.
Attention: With the , customer information will not be updated by default. We advise to use this Update customer API to update existing information.
PATCH https://api.notify.cm/v2/customers/{customer_id}
API keysAuthorization
string
Your test or live API key
Name
string
The name of the customer. Max. 250 characters
Address
string
Max. 250 characters
Postalcode
string
Max 10 characters
City
string
Max 250 characters
HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"resource": "customer",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"customerCode":"10001",
"name":"Creditpartners B.V.",
"address": {
"address":"",
"postalcode":"",
"city":"",
"country":"NL"
},
"contact":"",
"phone":"",
"mobile":"",
"email":"[email protected]",
"invoiceEmail":"",
"registrationNumber":"",
"language":"dutch"
}HTTP/1.1 400 Bad Request
Content-Type: application/hal+json
{
"status": 400,
"title": "Bad Request",
"detail": "Field email in wrong format"
}HTTP/1.1 404 Not Found
Content-Type: application/hal+json
{
"status": 404,
"title": "Not Found",
"detail": "No customer exists with id I_dont_exist."
}curl -X PATCH https://api.notify.cm/v2/customers/a0f0660d-6c8d-422b-8114-e363b260521e \
-H "Authorization: Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug" \
-d "name=Creditpartners B.V." \
-d "[email protected]"HTTP/1.1 200 OK
Content-Type: application/hal+json
{
"resource": "customer",
"id": "a0f0660d-6c8d-422b-8114-e363b260521e",
"customerCode":"10001",
"name":"Creditpartners B.V.",
"address": {
"address":"",
"postalcode":"",
"city":"",
"country":"NL"
},
"contact":"",
"phone":"",
"mobile":"",
"email":"[email protected]",
"invoiceEmail":"",
"registrationNumber":"",
"language":"dutch"
}Country
string
Two characters country code. See documentation
Contact
string
The full name of the contact. Max 250 characters
Phone
string
Max 20 caharacters
Mobile
string
Max 20 characters
string
Max 250 characters
InvoiceEmail
string
Address for invoices only. Max 250 characters
RegistrationNumber
string
Chamber of Commerce Registration number
Language
string
Language code. See documentation
POST https://api.notify.cm/v2/documents/{invoice_id}
Authentication: API keys
With the Document API you can upload your document data to Notify and connect it to the right invoice data. Just send the PDF data in Base64 format together with the right file information.
Update your file
Each time you send a new file to Notify for a specific invoice, the document will be updated. There's no specific update function.
Authorization
string
Your test or live API key
Invoice
string
The unique Notify invoice id
Filename
string
The complete original file name. Max 250 characters
Mediatype
string
Should be application/pdf
Content
string
The PDF file content in Base64 format
HTTP/1.1 201 Created
Content-Type: application/hal+json
{
"resource": "document",
"invoice": "a0f0660d-6c8d-422b-8114-e363b260521e",
"filename": "test.pdf"
}HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"status": 400,
"title": "Bad Request",
"detail": "Error in PDF file content"
}HTTP/1.1 404 Not Found
Content-Type: application/json
{
"status": 404,
"title": "Not Found",
"detail": "No invoice exists with id I_dont_exist."
}curl -X POST https://api.notify.cm/v2/documents \
-H "Authorization: Bearer test_R7HQ9QpXgx8J32rW9X9UyXjgfNk6C7TQ2UD8M5rwf8vVnYxnSETvSuEC6SKFW8Ug" \
-d "invoice=a0f0660d-6c8d-422b-8114-e363b260521e" \
-d "filename=test.pdf" \
-d "mediatype=application/pdf" \
-d "content=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bmcgKFVDUykgL1N1cHBsZW1lbnQgMCA+PiBkZWYKL0NNYXBOYW1lIC9BZG9iZS1JZGVudGl0eS1VQ1MgZGVmCi9DTWFwVHlwZSAyIGRlZgoxIGJlZ2luY29kZXNwYWNlcmFuZ2UKPDAwMDA+IDxGRkZGPgplbmRjb2Rlc3BhY2VyYW5nZQoyIGJlZ2luYmZyYW5nZQo8MDAwMD4gPDAwMDA+IDwwMDAwPgo8MDAwMT4gPDAwMkY+IFs8MDA0RD4gPDAwNjk+IDwwMDY0PiA8MDA2NT4gPDAwNkM+IDwwMDYxPiA8MDA2RT4gPDAwMzc+IDwwMDMzPiA8MDAzMT4gPDAwMzQ+IDwwMDIwPiA8MDA0Nz4gPDAwNDM+IDwwMDQxPiA8MDA3MD4gPDAwNkY+IDwwMDcyPiA8MDA1MD4gPDAwNzQ+IDwwMDY3PiA8MDAzMj4gPDAwNDI+IDwwMDc2PiA8MDA2Mj4gPDAwNDA+IDwwMDYzPiA8MDA3Mz4gPDAwMkU+IDwwMDc3PiA8MDAzNT4gPDAwMzA+IDwwMDM2PiA8MDA1ND4gPDAwNEY+IDwwMDZEPiA8MDA2OD4gPDAwNkE+IDwwMDQ2PiA8MDA3NT4gPDAwNEI+IDwwMDRDPiA8MDAyNT4gPDAwMkM+IDwwMDc4PiA8MjBBQz4gPDAwNDQ+IF0KZW5kYmZyYW5nZQplbmRjbWFwCkNNYXBOYW1lIGN1cnJlbnRkaWN0IC9DTWFwIGRlZmluZXJlc291cmNlIHBvcAplbmQKZW5kCgplbmRzdHJlYW0KZW5kb2JqCjggMCBvYmoKPDwgL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUwCi9CYXNlRm9udCAvU2Vnb2VVSVJlZ3VsYXIKL0VuY29kaW5nIC9JZGVudGl0eS1ICi9EZXNjZW5kYW50Rm9udHMgWzE3IDAgUl0KL1RvVW5pY29kZSAxOCAwIFI+PgplbmRvYmoKMjAgMCBvYmoKPDwgL1R5cGUgL0ZvbnREZXNjcmlwdG9yCi9Gb250TmFtZSAvUVVBQUFBK1NlZ29lVUlCb2xkCi9GbGFncyA0IAovRm9udEJCb3ggWy0zNTkuODYzMjgxIC0zMjMuNzMwNDY4IDE1NDguODI4MTIgODcyLjA3MDMxMiBdCi9JdGFsaWNBbmdsZSAwIAovQXNj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IC9TdXBwbGVtZW50IDAgPj4KL0ZvbnREZXNjcmlwdG9yIDIwIDAgUgovQ0lEVG9HSURNYXAgL0lkZW50aXR5Ci9XIFswIFs0ODEgMzg4IDQwMiAzNTggMjkwIDQ1MSAyOTcgNDc4IDQwMyA2ODMgMjA2IDU3MiA0NTYgMjEyIDQ2MiAyMTIgNDUxIDQ2MiAyMDIgNDk3IDIzNiAzMjggNDg0IDQwNCA0MjkgNDI5IDQyOSAyMDIgNDI5IDQyOSA0MjkgMzAyIDQyOSA0MjkgNDM3IDQ2MyA1NjYgNDQ5IDIxMiA1MjUgNDU4IF0KXQo+PgplbmRvYmoKMjMgMCBvYmoKPDwgL0xlbmd0aCA2NDQgPj4Kc3RyZWFtCi9DSURJbml0IC9Qcm9jU2V0IGZpbmRyZXNvdXJjZSBiZWdpbgoxMiBkaWN0IGJlZ2luCmJlZ2luY21hcAovQ0lEU3lzdGVtSW5mbyA8PCAvUmVnaXN0cnkgKEFkb2JlKSAvT3JkZXJpbmcgKFVDUykgL1N1cHBsZW1lbnQgMCA+PiBkZWYKL0NNYXBOYW1lIC9BZG9iZS1JZGVudGl0eS1VQ1MgZGVmCi9DTWFwVHlwZSAyIGRlZgoxIGJlZ2luY29kZXNwYWNlcmFuZ2UKPDAwMDA+IDxGRkZGPgplbmRjb2Rlc3BhY2VyYW5nZQoyIGJlZ2luYmZyYW5nZQo8MDAwMD4gPDAwMDA+IDwwMDAwPgo8MDAwMT4gPDAwMjg+IFs8MDA0Nj4gPDAwNjE+IDwwMDYzPiA8MDA3ND4gPDAwNzU+IDwwMDcyPiA8MDA0Mj4gPDAwNjU+IDwwMDZEPiA8MDAyMD4gPDAwNDg+IDwwMDZGPiA8MDA2Qz4gPDAwNjQ+IDwwMDY5PiA8MDA2RT4gPDAwNjc+IDwwMDJFPiA8MDA1Nj4gPDAwNDk+IDwwMDczPiA8MDA0Qj4gPDAwNzY+IDwyMEFDPiA8MDAzMT4gPDAwMzg+IDwwMDJDPiA8MDAzNT4gPDAwMzA+IDwwMDMzPiA8MDAyRD4gPDAwMzI+IDwwMDM0PiA8MDA1ND4gPDAwNjI+IDwwMDRGPiA8MDA2OD4gPDAwNkE+IDwwMDQxPiA8MDA1MD4gXQplbmRiZnJhbmdlCmVuZGNtYXAKQ01hcE5hbWUgY3VycmVudGRpY3QgL0NNYXAg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69F1tpNGe5VlU9i2QzWXWKc/6w0pZ06J1XH92bNnW2vnjF5GqvDMky9pDJNjSK3to1mRSLOo4me/OayU70zlAlbxWVObyis5bOCb2G9qV8tp7H+SJ9B+kVTJBZcwJAwIh4QuoXOvbpV08n98O6rkpH27ghf36lZJPwUlkmNdcGnfeKvlI7jzBuvf/WJQSP8LMsfBbwplbmRzdHJlYW0KZW5kb2JqCjI5IDAgb2JqCjIzMzYKZW5kb2JqCjI3IDAgb2JqCjw8IC9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9DSURGb250VHlwZTIKL0Jhc2VGb250IC9TZWdvZVVJSXRhbGljCi9DSURTeXN0ZW1JbmZvIDw8IC9SZWdpc3RyeSAoQWRvYmUpIC9PcmRlcmluZyAoSWRlbnRpdHkpIC9TdXBwbGVtZW50IDAgPj4KL0ZvbnREZXNjcmlwdG9yIDI1IDAgUgovQ0lEVG9HSURNYXAgL0lkZW50aXR5Ci9XIFswIFs0ODEgMjI3IDM1MyAzOTkgMjY1IDIwNSA0MDIgNDAyIDI5OCA0MDIgNDAyIDIyNyBdCl0KPj4KZW5kb2JqCjI4IDAgb2JqCjw8IC9MZW5ndGggNDQxID4+CnN0cmVhbQovQ0lESW5pdCAvUHJvY1NldCBmaW5kcmVzb3VyY2UgYmVnaW4KMTIgZGljdCBiZWdpbgpiZWdpbmNtYXAKL0NJRFN5c3RlbUluZm8gPDwgL1JlZ2lzdHJ5IChBZG9iZSkgL09yZGVyaW5nIChVQ1MpIC9TdXBwbGVtZW50IDAgPj4gZGVmCi9DTWFwTmFtZSAvQWRvYmUtSWRlbnRpdHktVUNTIGRlZgovQ01hcFR5cGUgMiBkZWYKMSBiZWdpbmNvZGVzcGFjZXJhbmdlCjwwMDAwPiA8RkZGRj4KZW5kY29kZXNwYWNlcmFuZ2UKMiBiZWdpbmJmcmFuZ2UKPDAwMDA+IDwwMDAwPiA8MDAwMD4KPDAwMDE+IDwwMDBCPiBbPDAwMjg+IDwwMDc2PiA8MDA2Rj4gPDAwNzI+IDwwMDIwPiA8MDAzMj4gPDAwMzc+IDwwMDJEPiA8MDAzMD4gPDAwMzM+IDwwMDI5PiBdCmVuZGJmcmFuZ2UKZW5kY21hcApDTWFwTmFtZSBjdXJyZW50ZGljdCAvQ01hcCBkZWZpbmVyZXNvdXJjZSBwb3AKZW5kCmVuZAoKZW5kc3RyZWFtCmVuZG9iago5IDAgb2JqCjw8IC9UeXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMAovQmFzZUZvbnQgL1NlZ29lVUlJdGFsaWMKL0VuY29kaW5nIC9JZGVudGl0eS1ICi9EZXNjZW5kYW50Rm9udHMgWzI3IDAgUl0KL1RvVW5pY29kZSAyOCAwIFI+PgplbmRvYmoKMiAwIG9iago8PAovVHlwZSAvUGFnZXMKL0tpZHMgClsKNSAwIFIKXQovQ291bnQgMQovUHJvY1NldCBbL1BERiAvVGV4dCAvSW1hZ2VCIC9JbWFnZUNdCj4+CmVuZG9iagp4cmVmCjAgMzAKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDA5IDAwMDAwIG4gCjAwMDAwMjE3ODAgMDAwMDAgbiAKMDAwMDAwMDE1NyAwMDAwMCBuIAowMDAwMDAwMjUyIDAwMDAwIG4gCjAwMDAwMDAzODQgMDAwMDAgbiAKMDAwMDAwMDI4OSAwMDAwMCBuIAowMDAwMDE4MDQ1IDAwMDAwIG4gCjAwMDAwMTE0MDcgMDAwMDAgbiAKMDAwMDAyMTY0MSAwMDAwMCBuIAowMDAwMDAwMzM0IDAwMDAwIG4gCjAwMDAwMDA3MjYgMDAwMDAgbiAKMDAwMDAwNDE3NCAwMDAwMCBuIAowMDAwMDAwNTA1IDAwMDAwIG4gCjAwMDAwMDA3MDYgMDAwMDAgbiAKMDAwMDAwNDE5NSAwMDAwMCBuIAowMDAwMDA0NDUwIDAwMDAwIG4gCjAwMDAwMTAyNTYgMDAwMDAgbiAKMDAwMDAxMDY2MiAwMDAwMCBuIAowMDAwMDEwMjM1IDAwMDAwIG4gCjAwMDAwMTE1NDcgMDAwMDAgbiAKMDAwMDAxMTc5OSAwMDAwMCBuIAowMDAwMDE2OTc0IDAwMDAwIG4gCjAwMDAwMTczNDkgMDAwMDAgbiAKMDAwMDAxNjk1MyAwMDAwMCBuIAowMDAwMDE4MTgyIDAwMDAwIG4gCjAwMDAwMTg0MzkgMDAwMDAgbiAKMDAwMDAyMDg4NyAwMDAwMCBuIAowMDAwMDIxMTQ4IDAwMDAwIG4gCjAwMDAwMjA4NjYgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSAzMAovSW5mbyAxIDAgUgovUm9vdCAxMCAwIFIKPj4Kc3RhcnR4cmVmCjIxODc4CiUlRU9GCg=="HTTP/1.1 201 Created
Content-Type: application/hal+json
{
"resource": "document",
"invoice": "a0f0660d-6c8d-422b-8114-e363b260521e",
"filename": "test.pdf"
}Afghanistan
AF
Albania
AL
Algeria
DZ
American Samoa
AS
Andorra
AD
Angola
AO
Anguilla
AI
Antarctica
AQ
Antigua and Barbuda
AG
Argentina
AR
Armenia
AM
Aruba
AW
Australia
AU
Austria
AT
Azerbaijan
AZ
Bahamas
BS
Bahrain
BH
Bangladesh
BD
Barbados
BB
Belarus
BY
Belgium
BE
Belize
BZ
Benin
BJ
Bermuda
BM
Bhutan
BT
Bolivia
BO
Bonaire, Sint Eustatius and Saba
BQ
Bosnia and Herzegovina
BA
Botswana
BW
Bouvet Island
BV
Brazil
BR
British Indian Ocean Territory
IO
Brunei Darussalam
BN
Bulgaria
BG
Burkina Faso
BF
Burundi
BI
Cabo Verde
CV
Cambodia
KH
Cameroon
CM
Canada
CA
Cayman Islands
KY
Central African Republic
CF
Chad
TD
Chile
CL
China
CN
Christmas Island
CX
Cocos Islands
CC
Colombia
CO
Comoros
KM
Congo
CD
Congo
CG
Cook Islands
CK
Costa Rica
CR
Croatia
HR
Cuba
CU
Curaçao
CW
Cyprus
CY
Czechia
CZ
Côte d'Ivoire
CI
Denmark
DK
Djibouti
DJ
Dominica
DM
Dominican Republic
DO
Ecuador
EC
Egypt
EG
El Salvador
SV
Equatorial Guinea
GQ
Eritrea
ER
Estonia
EE
Eswatini
SZ
Ethiopia
ET
Falkland Islands
FK
Faroe Islands
FO
Fiji
FJ
Finland
FI
France
FR
French Guiana
GF
French Polynesia
PF
French Southern Territories
TF
Gabon
GA
Gambia (the)
GM
Georgia
GE
Germany
DE
Ghana
GH
Gibraltar
GI
Greece
GR
Greenland
GL
Grenada
GD
Guadeloupe
GP
Guam
GU
Guatemala
GT
Guernsey
GG
Guinea
GN
Guinea-Bissau
GW
Guyana
GY
Haiti
HT
Heard Island and McDonald Islands
HM
Holy See
VA
Honduras
HN
Hong Kong
HK
Hungary
HU
Iceland
IS
India
IN
Indonesia
ID
Iran
IR
Iraq
IQ
Ireland
IE
Isle of Man
IM
Israel
IL
Italy
IT
Jamaica
JM
Japan
JP
Jersey
JE
Jordan
JO
Kazakhstan
KZ
Kenya
KE
Kiribati
KI
Korea (the Democratic People's Republic of)
KP
Korea (the Republic of)
KR
Kuwait
KW
Kyrgyzstan
KG
Lao People's Democratic Republic
LA
Latvia
LV
Lebanon
LB
Lesotho
LS
Liberia
LR
Libya
LY
Liechtenstein
LI
Lithuania
LT
Luxembourg
LU
Macao
MO
Madagascar
MG
Malawi
MW
Malaysia
MY
Maldives
MV
Mali
ML
Malta
MT
Marshall Islands
MH
Martinique
MQ
Mauritania
MR
Mauritius
MU
Mayotte
YT
Mexico
MX
Micronesia
FM
Moldova
MD
Monaco
MC
Mongolia
MN
Montenegro
ME
Montserrat
MS
Morocco
MA
Mozambique
MZ
Myanmar
MM
Namibia
NA
Nauru
NR
Nepal
NP
Netherlands
NL
New Caledonia
NC
New Zealand
NZ
Nicaragua
NI
Niger (the)
NE
Nigeria
NG
Niue
NU
Norfolk Island
NF
Northern Mariana Islands
MP
Norway
NO
Oman
OM
Pakistan
PK
Palau
PW
Palestine
PS
Panama
PA
Papua New Guinea
PG
Paraguay
PY
Peru
PE
Philippines
PH
Pitcairn
PN
Poland
PL
Portugal
PT
Puerto Rico
PR
Qatar
QA
Republic of North Macedonia
MK
Romania
RO
Russian Federation
RU
Rwanda
RW
Réunion
RE
Saint Barthélemy
BL
Saint Helena, Ascension and Tristan da Cunha
SH
Saint Kitts and Nevis
KN
Saint Lucia
LC
Saint Martin
MF
Saint Pierre and Miquelon
PM
Saint Vincent and the Grenadines
VC
Samoa
WS
San Marino
SM
Sao Tome and Principe
ST
Saudi Arabia
SA
Senegal
SN
Serbia
RS
Seychelles
SC
Sierra Leone
SL
Singapore
SG
Sint Maarten
SX
Slovakia
SK
Slovenia
SI
Solomon Islands
SB
Somalia
SO
South Africa
ZA
South Georgia and the South Sandwich Islands
GS
South Sudan
SS
Spain
ES
Sri Lanka
LK
Sudan
SD
Suriname
SR
Svalbard and Jan Mayen
SJ
Sweden
SE
Switzerland
CH
Syrian Arab Republic
SY
Taiwan
TW
Tajikistan
TJ
Tanzania, United Republic of
TZ
Thailand
TH
Timor-Leste
TL
Togo
TG
Tokelau
TK
Tonga
TO
Trinidad and Tobago
TT
Tunisia
TN
Turkey
TR
Turkmenistan
TM
Turks and Caicos Islands
TC
Tuvalu
TV
Uganda
UG
Ukraine
UA
United Arab Emirates
AE
United Kingdom
GB
United States Minor Outlying Islands
UM
United States of America
US
Uruguay
UY
Uzbekistan
UZ
Vanuatu
VU
Venezuela
VE
Viet Nam
VN
Virgin Islands
VG
Virgin Islands (U.S.)
VI
Wallis and Futuna
WF
Western Sahara
EH
Yemen
YE
Zambia
ZM
Zimbabwe
ZW
Åland Islands
AX
Fetching all objects of a resource can be convenient. At the same time, returning too many objects at once can be unpractical from a performance perspective. Doing so might be too much work for the Notify API to generate, or for your website to process. The maximum number of objects returned is 250.
For this reason the Notify API only returns a subset of the requested set of objects. In other words, the Notify API chops the result of a certain API method call into pages you are able to programmatically scroll through.
The v2 API endpoints use the so-called cursor pagination method. In short, this ensures the objects in a page do not get shifted when a new object is created with the same account in the meantime, by paginating by object ID rather than by page number.
You can get the next page of objects by following the next link.