curl --request POST \
--url https://api.example.com/v1/transactions \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"referenceId": "PAY-123456",
"postings": [
{
"source": "CUSTOMER:019bdb2a-960f-789d-8955-21720e6cdeee:019bdb2a-960f-789d-8955-21720e6cdeed:CURRENT",
"destination": "INTERNAL:REVENUE:FEE",
"currency": "EUR",
"details": "Payment for invoice #67",
"amount": 10000,
"type": "CREDIT_TRANSFER"
}
],
"referenceSource": "CLIENT"
}
'import requests
url = "https://api.example.com/v1/transactions"
payload = {
"referenceId": "PAY-123456",
"postings": [
{
"source": "CUSTOMER:019bdb2a-960f-789d-8955-21720e6cdeee:019bdb2a-960f-789d-8955-21720e6cdeed:CURRENT",
"destination": "INTERNAL:REVENUE:FEE",
"currency": "EUR",
"details": "Payment for invoice #67",
"amount": 10000,
"type": "CREDIT_TRANSFER"
}
],
"referenceSource": "CLIENT"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Idempotency-Key': '<idempotency-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
referenceId: 'PAY-123456',
postings: [
{
source: 'CUSTOMER:019bdb2a-960f-789d-8955-21720e6cdeee:019bdb2a-960f-789d-8955-21720e6cdeed:CURRENT',
destination: 'INTERNAL:REVENUE:FEE',
currency: 'EUR',
details: 'Payment for invoice #67',
amount: 10000,
type: 'CREDIT_TRANSFER'
}
],
referenceSource: 'CLIENT'
})
};
fetch('https://api.example.com/v1/transactions', 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.example.com/v1/transactions",
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([
'referenceId' => 'PAY-123456',
'postings' => [
[
'source' => 'CUSTOMER:019bdb2a-960f-789d-8955-21720e6cdeee:019bdb2a-960f-789d-8955-21720e6cdeed:CURRENT',
'destination' => 'INTERNAL:REVENUE:FEE',
'currency' => 'EUR',
'details' => 'Payment for invoice #67',
'amount' => 10000,
'type' => 'CREDIT_TRANSFER'
]
],
'referenceSource' => 'CLIENT'
]),
CURLOPT_HTTPHEADER => [
"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.example.com/v1/transactions"
payload := strings.NewReader("{\n \"referenceId\": \"PAY-123456\",\n \"postings\": [\n {\n \"source\": \"CUSTOMER:019bdb2a-960f-789d-8955-21720e6cdeee:019bdb2a-960f-789d-8955-21720e6cdeed:CURRENT\",\n \"destination\": \"INTERNAL:REVENUE:FEE\",\n \"currency\": \"EUR\",\n \"details\": \"Payment for invoice #67\",\n \"amount\": 10000,\n \"type\": \"CREDIT_TRANSFER\"\n }\n ],\n \"referenceSource\": \"CLIENT\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
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.example.com/v1/transactions")
.header("Idempotency-Key", "<idempotency-key>")
.header("Content-Type", "application/json")
.body("{\n \"referenceId\": \"PAY-123456\",\n \"postings\": [\n {\n \"source\": \"CUSTOMER:019bdb2a-960f-789d-8955-21720e6cdeee:019bdb2a-960f-789d-8955-21720e6cdeed:CURRENT\",\n \"destination\": \"INTERNAL:REVENUE:FEE\",\n \"currency\": \"EUR\",\n \"details\": \"Payment for invoice #67\",\n \"amount\": 10000,\n \"type\": \"CREDIT_TRANSFER\"\n }\n ],\n \"referenceSource\": \"CLIENT\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"referenceId\": \"PAY-123456\",\n \"postings\": [\n {\n \"source\": \"CUSTOMER:019bdb2a-960f-789d-8955-21720e6cdeee:019bdb2a-960f-789d-8955-21720e6cdeed:CURRENT\",\n \"destination\": \"INTERNAL:REVENUE:FEE\",\n \"currency\": \"EUR\",\n \"details\": \"Payment for invoice #67\",\n \"amount\": 10000,\n \"type\": \"CREDIT_TRANSFER\"\n }\n ],\n \"referenceSource\": \"CLIENT\"\n}"
response = http.request(request)
puts response.read_body{
"correlationId": "550e8400-e29b-41d4-a716-446655440000"
}{
"status": 400,
"title": "<string>",
"instance": "<string>",
"violations": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"status": 500,
"title": "<string>",
"instance": "<string>",
"detail": "<string>"
}Execute transaction
Executes a transaction with one or more postings to move funds between ledger accounts. Returns 202 Accepted when the request is queued for processing.
curl --request POST \
--url https://api.example.com/v1/transactions \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"referenceId": "PAY-123456",
"postings": [
{
"source": "CUSTOMER:019bdb2a-960f-789d-8955-21720e6cdeee:019bdb2a-960f-789d-8955-21720e6cdeed:CURRENT",
"destination": "INTERNAL:REVENUE:FEE",
"currency": "EUR",
"details": "Payment for invoice #67",
"amount": 10000,
"type": "CREDIT_TRANSFER"
}
],
"referenceSource": "CLIENT"
}
'import requests
url = "https://api.example.com/v1/transactions"
payload = {
"referenceId": "PAY-123456",
"postings": [
{
"source": "CUSTOMER:019bdb2a-960f-789d-8955-21720e6cdeee:019bdb2a-960f-789d-8955-21720e6cdeed:CURRENT",
"destination": "INTERNAL:REVENUE:FEE",
"currency": "EUR",
"details": "Payment for invoice #67",
"amount": 10000,
"type": "CREDIT_TRANSFER"
}
],
"referenceSource": "CLIENT"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Idempotency-Key': '<idempotency-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
referenceId: 'PAY-123456',
postings: [
{
source: 'CUSTOMER:019bdb2a-960f-789d-8955-21720e6cdeee:019bdb2a-960f-789d-8955-21720e6cdeed:CURRENT',
destination: 'INTERNAL:REVENUE:FEE',
currency: 'EUR',
details: 'Payment for invoice #67',
amount: 10000,
type: 'CREDIT_TRANSFER'
}
],
referenceSource: 'CLIENT'
})
};
fetch('https://api.example.com/v1/transactions', 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.example.com/v1/transactions",
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([
'referenceId' => 'PAY-123456',
'postings' => [
[
'source' => 'CUSTOMER:019bdb2a-960f-789d-8955-21720e6cdeee:019bdb2a-960f-789d-8955-21720e6cdeed:CURRENT',
'destination' => 'INTERNAL:REVENUE:FEE',
'currency' => 'EUR',
'details' => 'Payment for invoice #67',
'amount' => 10000,
'type' => 'CREDIT_TRANSFER'
]
],
'referenceSource' => 'CLIENT'
]),
CURLOPT_HTTPHEADER => [
"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.example.com/v1/transactions"
payload := strings.NewReader("{\n \"referenceId\": \"PAY-123456\",\n \"postings\": [\n {\n \"source\": \"CUSTOMER:019bdb2a-960f-789d-8955-21720e6cdeee:019bdb2a-960f-789d-8955-21720e6cdeed:CURRENT\",\n \"destination\": \"INTERNAL:REVENUE:FEE\",\n \"currency\": \"EUR\",\n \"details\": \"Payment for invoice #67\",\n \"amount\": 10000,\n \"type\": \"CREDIT_TRANSFER\"\n }\n ],\n \"referenceSource\": \"CLIENT\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
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.example.com/v1/transactions")
.header("Idempotency-Key", "<idempotency-key>")
.header("Content-Type", "application/json")
.body("{\n \"referenceId\": \"PAY-123456\",\n \"postings\": [\n {\n \"source\": \"CUSTOMER:019bdb2a-960f-789d-8955-21720e6cdeee:019bdb2a-960f-789d-8955-21720e6cdeed:CURRENT\",\n \"destination\": \"INTERNAL:REVENUE:FEE\",\n \"currency\": \"EUR\",\n \"details\": \"Payment for invoice #67\",\n \"amount\": 10000,\n \"type\": \"CREDIT_TRANSFER\"\n }\n ],\n \"referenceSource\": \"CLIENT\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/transactions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"referenceId\": \"PAY-123456\",\n \"postings\": [\n {\n \"source\": \"CUSTOMER:019bdb2a-960f-789d-8955-21720e6cdeee:019bdb2a-960f-789d-8955-21720e6cdeed:CURRENT\",\n \"destination\": \"INTERNAL:REVENUE:FEE\",\n \"currency\": \"EUR\",\n \"details\": \"Payment for invoice #67\",\n \"amount\": 10000,\n \"type\": \"CREDIT_TRANSFER\"\n }\n ],\n \"referenceSource\": \"CLIENT\"\n}"
response = http.request(request)
puts response.read_body{
"correlationId": "550e8400-e29b-41d4-a716-446655440000"
}{
"status": 400,
"title": "<string>",
"instance": "<string>",
"violations": [
{
"field": "<string>",
"message": "<string>"
}
]
}{
"status": 500,
"title": "<string>",
"instance": "<string>",
"detail": "<string>"
}Headers
Client-provided idempotency key. UUID v4 suggested, max 255 characters.
255\SBody
Request to execute a transaction with one or more postings
Reference identifier linking transaction to its origin. For payment-originated transactions, this contains the payment identification. Used to trace transactions back to their source system.
\S"PAY-123456"
List of postings (debits and credits) that make up the transaction
1 - 100 elementsShow child attributes
Show child attributes
Source system for the reference identifier
CLIENT, PLAIS "CLIENT"
Response
Transaction execution request accepted
Response for accepted asynchronous requests
Correlation identifier for tracking the request through events
"550e8400-e29b-41d4-a716-446655440000"