curl --request POST \
--url https://api.jtl-cloud.com/erp/v2/sales-orders/{salesOrderId}/payments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-tenant-id: <x-tenant-id>' \
--data '
{
"amount": 123,
"paymentMethodId": "b45f6432-2462-4c6f-b00f-1d9d01000000",
"date": "2023-11-07T05:31:56Z",
"transactionId": "<string>",
"receiptNumber": "<string>",
"isDownPayment": true,
"comment": "<string>",
"glAccount": "<string>"
}
'import requests
url = "https://api.jtl-cloud.com/erp/v2/sales-orders/{salesOrderId}/payments"
payload = {
"amount": 123,
"paymentMethodId": "b45f6432-2462-4c6f-b00f-1d9d01000000",
"date": "2023-11-07T05:31:56Z",
"transactionId": "<string>",
"receiptNumber": "<string>",
"isDownPayment": True,
"comment": "<string>",
"glAccount": "<string>"
}
headers = {
"x-tenant-id": "<x-tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-tenant-id': '<x-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
amount: 123,
paymentMethodId: 'b45f6432-2462-4c6f-b00f-1d9d01000000',
date: '2023-11-07T05:31:56Z',
transactionId: '<string>',
receiptNumber: '<string>',
isDownPayment: true,
comment: '<string>',
glAccount: '<string>'
})
};
fetch('https://api.jtl-cloud.com/erp/v2/sales-orders/{salesOrderId}/payments', 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.jtl-cloud.com/erp/v2/sales-orders/{salesOrderId}/payments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'amount' => 123,
'paymentMethodId' => 'b45f6432-2462-4c6f-b00f-1d9d01000000',
'date' => '2023-11-07T05:31:56Z',
'transactionId' => '<string>',
'receiptNumber' => '<string>',
'isDownPayment' => true,
'comment' => '<string>',
'glAccount' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-tenant-id: <x-tenant-id>"
],
]);
$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.jtl-cloud.com/erp/v2/sales-orders/{salesOrderId}/payments"
payload := strings.NewReader("{\n \"amount\": 123,\n \"paymentMethodId\": \"b45f6432-2462-4c6f-b00f-1d9d01000000\",\n \"date\": \"2023-11-07T05:31:56Z\",\n \"transactionId\": \"<string>\",\n \"receiptNumber\": \"<string>\",\n \"isDownPayment\": true,\n \"comment\": \"<string>\",\n \"glAccount\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-tenant-id", "<x-tenant-id>")
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.post("https://api.jtl-cloud.com/erp/v2/sales-orders/{salesOrderId}/payments")
.header("x-tenant-id", "<x-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 123,\n \"paymentMethodId\": \"b45f6432-2462-4c6f-b00f-1d9d01000000\",\n \"date\": \"2023-11-07T05:31:56Z\",\n \"transactionId\": \"<string>\",\n \"receiptNumber\": \"<string>\",\n \"isDownPayment\": true,\n \"comment\": \"<string>\",\n \"glAccount\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.jtl-cloud.com/erp/v2/sales-orders/{salesOrderId}/payments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-tenant-id"] = '<x-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": 123,\n \"paymentMethodId\": \"b45f6432-2462-4c6f-b00f-1d9d01000000\",\n \"date\": \"2023-11-07T05:31:56Z\",\n \"transactionId\": \"<string>\",\n \"receiptNumber\": \"<string>\",\n \"isDownPayment\": true,\n \"comment\": \"<string>\",\n \"glAccount\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"paymentId": "b45f6432-2462-4c6f-b00f-1d9d01000000"
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}Creates a new payment entry and assigns it to the specified sales order. Maps to tZahlung with kBestellung set.
Creates a new payment entry and assigns it to the specified sales order. Maps to tZahlung with kBestellung set.
curl --request POST \
--url https://api.jtl-cloud.com/erp/v2/sales-orders/{salesOrderId}/payments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-tenant-id: <x-tenant-id>' \
--data '
{
"amount": 123,
"paymentMethodId": "b45f6432-2462-4c6f-b00f-1d9d01000000",
"date": "2023-11-07T05:31:56Z",
"transactionId": "<string>",
"receiptNumber": "<string>",
"isDownPayment": true,
"comment": "<string>",
"glAccount": "<string>"
}
'import requests
url = "https://api.jtl-cloud.com/erp/v2/sales-orders/{salesOrderId}/payments"
payload = {
"amount": 123,
"paymentMethodId": "b45f6432-2462-4c6f-b00f-1d9d01000000",
"date": "2023-11-07T05:31:56Z",
"transactionId": "<string>",
"receiptNumber": "<string>",
"isDownPayment": True,
"comment": "<string>",
"glAccount": "<string>"
}
headers = {
"x-tenant-id": "<x-tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-tenant-id': '<x-tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
amount: 123,
paymentMethodId: 'b45f6432-2462-4c6f-b00f-1d9d01000000',
date: '2023-11-07T05:31:56Z',
transactionId: '<string>',
receiptNumber: '<string>',
isDownPayment: true,
comment: '<string>',
glAccount: '<string>'
})
};
fetch('https://api.jtl-cloud.com/erp/v2/sales-orders/{salesOrderId}/payments', 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.jtl-cloud.com/erp/v2/sales-orders/{salesOrderId}/payments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'amount' => 123,
'paymentMethodId' => 'b45f6432-2462-4c6f-b00f-1d9d01000000',
'date' => '2023-11-07T05:31:56Z',
'transactionId' => '<string>',
'receiptNumber' => '<string>',
'isDownPayment' => true,
'comment' => '<string>',
'glAccount' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"x-tenant-id: <x-tenant-id>"
],
]);
$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.jtl-cloud.com/erp/v2/sales-orders/{salesOrderId}/payments"
payload := strings.NewReader("{\n \"amount\": 123,\n \"paymentMethodId\": \"b45f6432-2462-4c6f-b00f-1d9d01000000\",\n \"date\": \"2023-11-07T05:31:56Z\",\n \"transactionId\": \"<string>\",\n \"receiptNumber\": \"<string>\",\n \"isDownPayment\": true,\n \"comment\": \"<string>\",\n \"glAccount\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-tenant-id", "<x-tenant-id>")
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.post("https://api.jtl-cloud.com/erp/v2/sales-orders/{salesOrderId}/payments")
.header("x-tenant-id", "<x-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 123,\n \"paymentMethodId\": \"b45f6432-2462-4c6f-b00f-1d9d01000000\",\n \"date\": \"2023-11-07T05:31:56Z\",\n \"transactionId\": \"<string>\",\n \"receiptNumber\": \"<string>\",\n \"isDownPayment\": true,\n \"comment\": \"<string>\",\n \"glAccount\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.jtl-cloud.com/erp/v2/sales-orders/{salesOrderId}/payments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-tenant-id"] = '<x-tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": 123,\n \"paymentMethodId\": \"b45f6432-2462-4c6f-b00f-1d9d01000000\",\n \"date\": \"2023-11-07T05:31:56Z\",\n \"transactionId\": \"<string>\",\n \"receiptNumber\": \"<string>\",\n \"isDownPayment\": true,\n \"comment\": \"<string>\",\n \"glAccount\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"paymentId": "b45f6432-2462-4c6f-b00f-1d9d01000000"
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}{
"type": "https://www.rfc-editor.org/rfc/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"instance": "/api/route",
"traceId": "0HMPNHL0JHL76:00000001",
"detail": "<string>",
"errors": [
{
"name": "Error or field name",
"reason": "Error reason",
"code": "<string>",
"severity": "<string>"
}
]
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Headers
Optional, client-generated key for deduplicating repeated write requests. A repeated request with the same key returns the originally recorded result instead of executing the effect again.
1 - 255The tenant ID for the target ERP instance.
Path Parameters
The ID of the sales order to assign the payment to.
"b45f6432-2462-4c6f-b00f-1d9d01000000"
Body
Request model for CreateSalesOrderPayment command endpoint. Route parameters bind from the route, query parameters from the query string, everything else from the body.
Payment amount (maps to fBetrag). Must be greater than 0. Stored with 2 decimal places; a third decimal is rounded.
The payment method to use (maps to kZahlungsart). Must reference a valid tZahlungsart entry.
"b45f6432-2462-4c6f-b00f-1d9d01000000"
Date of the payment (maps to dDatum). Stored without a UTC offset; the offset in the request is not persisted.
Type of the payment transaction (maps to nZahlungstyp). Defaults to Payment when omitted.
0, 1, 2, 3 External transaction identifier, e.g. from a payment provider (maps to cExternalTransactionId).
Receipt or voucher number / Belegnummer (maps to cName).
Whether this payment is a down payment / Anzahlung (maps to nAnzahlung). Defaults to false when omitted.
Free-text comment / Anmerkung (maps to cHinweis).
G/L account override / Buchungskonto. Overrides the default from the payment method (maps to cSKRManuell).
Response
The payment was successfully created.
Creates a new payment entry and assigns it to the specified sales order. Maps to tZahlung with kBestellung set. - Response
The ID of the newly created payment.
"b45f6432-2462-4c6f-b00f-1d9d01000000"
Was this page helpful?