curl --request GET \
--url https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/shipments/{shipmentId}/payment \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/shipments/{shipmentId}/payment"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/shipments/{shipmentId}/payment', 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}/shipments/{shipmentId}/payment",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/shipments/{shipmentId}/payment"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/shipments/{shipmentId}/payment")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/shipments/{shipmentId}/payment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"paymentDate": "2023-12-25",
"bankAmount": {
"value": 7900,
"currency": "EUR"
},
"cashAmount": {
"value": 7900,
"currency": "EUR"
},
"sourceIban": "DE89370400440532013000",
"sourceAccountComment": "Paid from the managing director's private account; the company account was frozen.",
"status": "DRAFT",
"amountMatchesInvoice": true,
"ibanConsistent": true,
"readyForPickup": 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>"
}Get one shipment's payment.
A shipment with no payment date answers 404 about the SHIPMENT — the
order may well have a payment, on its other half. readyForPickup
answers for the whole order, as it does everywhere else.
curl --request GET \
--url https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/shipments/{shipmentId}/payment \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/shipments/{shipmentId}/payment"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/shipments/{shipmentId}/payment', 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}/shipments/{shipmentId}/payment",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/shipments/{shipmentId}/payment"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/shipments/{shipmentId}/payment")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.novatrade24.com/v1/partners/{sellerId}/orders/{uuid}/shipments/{shipmentId}/payment")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"paymentDate": "2023-12-25",
"bankAmount": {
"value": 7900,
"currency": "EUR"
},
"cashAmount": {
"value": 7900,
"currency": "EUR"
},
"sourceIban": "DE89370400440532013000",
"sourceAccountComment": "Paid from the managing director's private account; the company account was frozen.",
"status": "DRAFT",
"amountMatchesInvoice": true,
"ibanConsistent": true,
"readyForPickup": 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.
Path Parameters
UUID of the seller trade partner (must be in caller's authorized list).
UUID of one live shipment of the order in the path, as the order's
shipmentIds list them. A shipment that is not this order's live
shipment is 404, whether it belongs to another order or no longer
exists.
Response
OK
Show child attributes
Show child attributes
Show child attributes
Show child attributes
"DE89370400440532013000"
Why the payment came from a bank account that is not registered
with Novatrade24. The payment is stored without it, but an order
whose payment is not from a registered account (ibanConsistent: false) cannot be completed until a comment is on file — the same
rule the platform applies to its own users. Absent or blank leaves
any comment already on the payment untouched. On a response it is
the comment on file, whether sent here or entered by NT24 staff.
"Paid from the managing director's private account; the company account was frozen."
DRAFT, SUBMITTED, VALID, INVALID Payment recorded and evidenced: paymentDate is set and an
active proof of payment — a PAYMENT_BANK_TRANSFER_SCREENSHOT
or a PAYMENT_CONFIRMATION, either one — is filed against the
order, plus a source-of-funds declaration once cash reaches
€10,000.
Derived on every read, and it can turn back to false — raising
the cash amount past the threshold makes the order wait for the
declaration. On an order split across several shipments, every
shipment answers.