curl --request PATCH \
--url https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/invoice \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"invoiceDate": "2023-12-25",
"invoiceNumber": "<string>",
"vatIncluded": true,
"amount": {
"value": 7900,
"currency": "EUR"
},
"marginScheme": false
}
'import requests
url = "https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/invoice"
payload = {
"invoiceDate": "2023-12-25",
"invoiceNumber": "<string>",
"vatIncluded": True,
"amount": {
"value": 7900,
"currency": "EUR"
},
"marginScheme": False
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
invoiceDate: '2023-12-25',
invoiceNumber: '<string>',
vatIncluded: true,
amount: {value: 7900, currency: 'EUR'},
marginScheme: false
})
};
fetch('https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/invoice', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/invoice",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'invoiceDate' => '2023-12-25',
'invoiceNumber' => '<string>',
'vatIncluded' => true,
'amount' => [
'value' => 7900,
'currency' => 'EUR'
],
'marginScheme' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/invoice"
payload := strings.NewReader("{\n \"invoiceDate\": \"2023-12-25\",\n \"invoiceNumber\": \"<string>\",\n \"vatIncluded\": true,\n \"amount\": {\n \"value\": 7900,\n \"currency\": \"EUR\"\n },\n \"marginScheme\": false\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/invoice")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"invoiceDate\": \"2023-12-25\",\n \"invoiceNumber\": \"<string>\",\n \"vatIncluded\": true,\n \"amount\": {\n \"value\": 7900,\n \"currency\": \"EUR\"\n },\n \"marginScheme\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/invoice")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"invoiceDate\": \"2023-12-25\",\n \"invoiceNumber\": \"<string>\",\n \"vatIncluded\": true,\n \"amount\": {\n \"value\": 7900,\n \"currency\": \"EUR\"\n },\n \"marginScheme\": false\n}"
response = http.request(request)
puts response.read_body{
"type": "PRELIMINARY",
"invoiceDate": "2023-12-25",
"vatIncluded": true,
"invoiceNumber": "<string>",
"marginScheme": false,
"amount": {
"value": 7900,
"currency": "EUR"
},
"status": "DRAFT",
"finalInvoiceRequired": true,
"finalInvoiceReceived": true,
"version": 123,
"updatedAt": "2023-11-07T05:31:56Z"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"traceId": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"traceId": "<string>"
}Update invoice data.
curl --request PATCH \
--url https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/invoice \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"invoiceDate": "2023-12-25",
"invoiceNumber": "<string>",
"vatIncluded": true,
"amount": {
"value": 7900,
"currency": "EUR"
},
"marginScheme": false
}
'import requests
url = "https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/invoice"
payload = {
"invoiceDate": "2023-12-25",
"invoiceNumber": "<string>",
"vatIncluded": True,
"amount": {
"value": 7900,
"currency": "EUR"
},
"marginScheme": False
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
invoiceDate: '2023-12-25',
invoiceNumber: '<string>',
vatIncluded: true,
amount: {value: 7900, currency: 'EUR'},
marginScheme: false
})
};
fetch('https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/invoice', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/invoice",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'invoiceDate' => '2023-12-25',
'invoiceNumber' => '<string>',
'vatIncluded' => true,
'amount' => [
'value' => 7900,
'currency' => 'EUR'
],
'marginScheme' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/invoice"
payload := strings.NewReader("{\n \"invoiceDate\": \"2023-12-25\",\n \"invoiceNumber\": \"<string>\",\n \"vatIncluded\": true,\n \"amount\": {\n \"value\": 7900,\n \"currency\": \"EUR\"\n },\n \"marginScheme\": false\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/invoice")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"invoiceDate\": \"2023-12-25\",\n \"invoiceNumber\": \"<string>\",\n \"vatIncluded\": true,\n \"amount\": {\n \"value\": 7900,\n \"currency\": \"EUR\"\n },\n \"marginScheme\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/invoice")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"invoiceDate\": \"2023-12-25\",\n \"invoiceNumber\": \"<string>\",\n \"vatIncluded\": true,\n \"amount\": {\n \"value\": 7900,\n \"currency\": \"EUR\"\n },\n \"marginScheme\": false\n}"
response = http.request(request)
puts response.read_body{
"type": "PRELIMINARY",
"invoiceDate": "2023-12-25",
"vatIncluded": true,
"invoiceNumber": "<string>",
"marginScheme": false,
"amount": {
"value": 7900,
"currency": "EUR"
},
"status": "DRAFT",
"finalInvoiceRequired": true,
"finalInvoiceReceived": true,
"version": 123,
"updatedAt": "2023-11-07T05:31:56Z"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"traceId": "<string>"
}{
"type": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"instance": "<string>",
"traceId": "<string>"
}Authorizations
OAuth 2.0 client_credentials grant via Keycloak service account.
Clients are provisioned per IntegrationOrganization in the
nt24-idp realm.
Headers
Client-generated unique key (UUID recommended) for this write operation.
Identical key + identical body within 24h returns the cached response.
Identical key + different body returns 422.
1 - 255ETag value from a previous response, used for optimistic concurrency.
Mismatch returns 409 with the current resource.
Path Parameters
UUID of the seller trade partner (must be in caller's authorized list).
Body
PRELIMINARY means the VAT security deposit invoice; FINAL means the final invoice. The wire values are unchanged.
PRELIMINARY, FINAL Show child attributes
Show child attributes
Response
Updated
PRELIMINARY means the VAT security deposit invoice; FINAL means the final invoice. The wire values are unchanged.
PRELIMINARY, FINAL Show child attributes
Show child attributes
DRAFT, SUBMITTED, VALID, INVALID