curl --request POST \
--url https://api.jtl-cloud.com/erp/v2/returns/{returnId}/sales-invoice-corrections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-tenant-id: <x-tenant-id>' \
--data '
{
"asDraft": true,
"disableAutomaticWorkflows": true,
"reduceSalesOrderQuantities": true,
"reduceDeliveryQuantities": true,
"cancelWebShopOrder": true,
"allowQuantityExceeded": true,
"allowAmountExceeded": true
}
'import requests
url = "https://api.jtl-cloud.com/erp/v2/returns/{returnId}/sales-invoice-corrections"
payload = {
"asDraft": True,
"disableAutomaticWorkflows": True,
"reduceSalesOrderQuantities": True,
"reduceDeliveryQuantities": True,
"cancelWebShopOrder": True,
"allowQuantityExceeded": True,
"allowAmountExceeded": True
}
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({
asDraft: true,
disableAutomaticWorkflows: true,
reduceSalesOrderQuantities: true,
reduceDeliveryQuantities: true,
cancelWebShopOrder: true,
allowQuantityExceeded: true,
allowAmountExceeded: true
})
};
fetch('https://api.jtl-cloud.com/erp/v2/returns/{returnId}/sales-invoice-corrections', 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/returns/{returnId}/sales-invoice-corrections",
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([
'asDraft' => true,
'disableAutomaticWorkflows' => true,
'reduceSalesOrderQuantities' => true,
'reduceDeliveryQuantities' => true,
'cancelWebShopOrder' => true,
'allowQuantityExceeded' => true,
'allowAmountExceeded' => true
]),
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/returns/{returnId}/sales-invoice-corrections"
payload := strings.NewReader("{\n \"asDraft\": true,\n \"disableAutomaticWorkflows\": true,\n \"reduceSalesOrderQuantities\": true,\n \"reduceDeliveryQuantities\": true,\n \"cancelWebShopOrder\": true,\n \"allowQuantityExceeded\": true,\n \"allowAmountExceeded\": true\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/returns/{returnId}/sales-invoice-corrections")
.header("x-tenant-id", "<x-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"asDraft\": true,\n \"disableAutomaticWorkflows\": true,\n \"reduceSalesOrderQuantities\": true,\n \"reduceDeliveryQuantities\": true,\n \"cancelWebShopOrder\": true,\n \"allowQuantityExceeded\": true,\n \"allowAmountExceeded\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.jtl-cloud.com/erp/v2/returns/{returnId}/sales-invoice-corrections")
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 \"asDraft\": true,\n \"disableAutomaticWorkflows\": true,\n \"reduceSalesOrderQuantities\": true,\n \"reduceDeliveryQuantities\": true,\n \"cancelWebShopOrder\": true,\n \"allowQuantityExceeded\": true,\n \"allowAmountExceeded\": true\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"salesInvoiceId": "b45f6432-2462-4c6f-b00f-1d9d01000000",
"succeeded": true,
"salesInvoiceCorrectionId": "b45f6432-2462-4c6f-b00f-1d9d01000000",
"errorCode": "<string>",
"errorMessage": "<string>"
}
],
"unresolvedLineItems": [
"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>"
}
]
}Creates one sales invoice correction per invoice that a return's creditable line items resolve to.
Creates one sales invoice correction per invoice that a return’s creditable line items resolve to.
curl --request POST \
--url https://api.jtl-cloud.com/erp/v2/returns/{returnId}/sales-invoice-corrections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-tenant-id: <x-tenant-id>' \
--data '
{
"asDraft": true,
"disableAutomaticWorkflows": true,
"reduceSalesOrderQuantities": true,
"reduceDeliveryQuantities": true,
"cancelWebShopOrder": true,
"allowQuantityExceeded": true,
"allowAmountExceeded": true
}
'import requests
url = "https://api.jtl-cloud.com/erp/v2/returns/{returnId}/sales-invoice-corrections"
payload = {
"asDraft": True,
"disableAutomaticWorkflows": True,
"reduceSalesOrderQuantities": True,
"reduceDeliveryQuantities": True,
"cancelWebShopOrder": True,
"allowQuantityExceeded": True,
"allowAmountExceeded": True
}
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({
asDraft: true,
disableAutomaticWorkflows: true,
reduceSalesOrderQuantities: true,
reduceDeliveryQuantities: true,
cancelWebShopOrder: true,
allowQuantityExceeded: true,
allowAmountExceeded: true
})
};
fetch('https://api.jtl-cloud.com/erp/v2/returns/{returnId}/sales-invoice-corrections', 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/returns/{returnId}/sales-invoice-corrections",
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([
'asDraft' => true,
'disableAutomaticWorkflows' => true,
'reduceSalesOrderQuantities' => true,
'reduceDeliveryQuantities' => true,
'cancelWebShopOrder' => true,
'allowQuantityExceeded' => true,
'allowAmountExceeded' => true
]),
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/returns/{returnId}/sales-invoice-corrections"
payload := strings.NewReader("{\n \"asDraft\": true,\n \"disableAutomaticWorkflows\": true,\n \"reduceSalesOrderQuantities\": true,\n \"reduceDeliveryQuantities\": true,\n \"cancelWebShopOrder\": true,\n \"allowQuantityExceeded\": true,\n \"allowAmountExceeded\": true\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/returns/{returnId}/sales-invoice-corrections")
.header("x-tenant-id", "<x-tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"asDraft\": true,\n \"disableAutomaticWorkflows\": true,\n \"reduceSalesOrderQuantities\": true,\n \"reduceDeliveryQuantities\": true,\n \"cancelWebShopOrder\": true,\n \"allowQuantityExceeded\": true,\n \"allowAmountExceeded\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.jtl-cloud.com/erp/v2/returns/{returnId}/sales-invoice-corrections")
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 \"asDraft\": true,\n \"disableAutomaticWorkflows\": true,\n \"reduceSalesOrderQuantities\": true,\n \"reduceDeliveryQuantities\": true,\n \"cancelWebShopOrder\": true,\n \"allowQuantityExceeded\": true,\n \"allowAmountExceeded\": true\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"salesInvoiceId": "b45f6432-2462-4c6f-b00f-1d9d01000000",
"succeeded": true,
"salesInvoiceCorrectionId": "b45f6432-2462-4c6f-b00f-1d9d01000000",
"errorCode": "<string>",
"errorMessage": "<string>"
}
],
"unresolvedLineItems": [
"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>"
}
]
}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 return to create sales invoice corrections for.
"b45f6432-2462-4c6f-b00f-1d9d01000000"
Body
Request model for CreateSalesInvoiceCorrectionsFromReturn command endpoint. Route parameters bind from the route, query parameters from the query string, everything else from the body.
Indicates if each created sales invoice correction should be created as draft. Default is false.
If true, workflows do not trigger automatically for any created correction. Default is false.
If true, sales order quantities will be reduced for each created correction. Default is false.
If true, delivery quantities will be reduced for each created correction. Default is false.
If true, the web shop order will be canceled for each created correction. Default is false.
If true, a correction quantity exceeding an invoice's open remainder is accepted instead of rejected for that invoice. Default is false.
If true, a correction amount exceeding an invoice's open remainder is accepted instead of rejected for that invoice. Default is false.
Response
Per-invoice results of the fan-out. Individual invoices may have failed while others succeeded.
Creates one sales invoice correction per invoice that a return's creditable line items resolve to. - Response
Was this page helpful?