Get a payout transaction
curl --request GET \
--url https://api.meridian.example.com/v1/transactions/{id} \
--header 'X-Meridian-Api-Key: <x-meridian-api-key>' \
--header 'X-Meridian-Program-Id: <x-meridian-program-id>' \
--header 'X-Meridian-Signature: <api-key>' \
--header 'X-Meridian-Timestamp: <x-meridian-timestamp>'import requests
url = "https://api.meridian.example.com/v1/transactions/{id}"
headers = {
"X-Meridian-Program-Id": "<x-meridian-program-id>",
"X-Meridian-Api-Key": "<x-meridian-api-key>",
"X-Meridian-Timestamp": "<x-meridian-timestamp>",
"X-Meridian-Signature": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-Meridian-Program-Id': '<x-meridian-program-id>',
'X-Meridian-Api-Key': '<x-meridian-api-key>',
'X-Meridian-Timestamp': '<x-meridian-timestamp>',
'X-Meridian-Signature': '<api-key>'
}
};
fetch('https://api.meridian.example.com/v1/transactions/{id}', 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.meridian.example.com/v1/transactions/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Meridian-Api-Key: <x-meridian-api-key>",
"X-Meridian-Program-Id: <x-meridian-program-id>",
"X-Meridian-Signature: <api-key>",
"X-Meridian-Timestamp: <x-meridian-timestamp>"
],
]);
$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.meridian.example.com/v1/transactions/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Meridian-Program-Id", "<x-meridian-program-id>")
req.Header.Add("X-Meridian-Api-Key", "<x-meridian-api-key>")
req.Header.Add("X-Meridian-Timestamp", "<x-meridian-timestamp>")
req.Header.Add("X-Meridian-Signature", "<api-key>")
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.meridian.example.com/v1/transactions/{id}")
.header("X-Meridian-Program-Id", "<x-meridian-program-id>")
.header("X-Meridian-Api-Key", "<x-meridian-api-key>")
.header("X-Meridian-Timestamp", "<x-meridian-timestamp>")
.header("X-Meridian-Signature", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meridian.example.com/v1/transactions/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Meridian-Program-Id"] = '<x-meridian-program-id>'
request["X-Meridian-Api-Key"] = '<x-meridian-api-key>'
request["X-Meridian-Timestamp"] = '<x-meridian-timestamp>'
request["X-Meridian-Signature"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"transaction": {
"id": "txn_01JVY8Y4N9X2M6S5Q7T1",
"messageId": "msg_01JVY8Y4N9X2M6S5Q7T1",
"source": {
"type": "external_submission",
"externalSubmission": {
"id": "sub_01JVY8Y4N9X2M6S5Q7T1",
"displayName": "Customer message submission"
}
},
"type": "transfer",
"createdAt": "2026-04-07T20:11:42Z",
"updatedAt": "2026-04-07T20:12:05Z",
"status": "PENDING",
"statusReason": null,
"externalId": "e2e-20260407-000123",
"relatedTransactionId": null,
"amounts": {
"debit": {
"amount": "125000.00",
"currency": "USD"
},
"credit": {
"amount": "124975.00",
"currency": "USD"
},
"fees": [
{
"type": "NETWORK_FEE",
"label": "Network fee",
"amount": "25.00",
"currency": "USD"
}
],
"exchangeRate": "1.0000"
},
"debitInstrument": {
"type": "ORIGINATOR",
"originator": {
"displayName": "Northwind Imports LLC",
"accountNumber": "****9021"
}
},
"creditInstrument": {
"type": "BENEFICIARY_ACCOUNT",
"beneficiaryAccount": {
"id": "bfa_01JVY8Y4N9X2M6S5Q7T1",
"displayName": "Contoso Treasury USD Account",
"currency": "USD"
}
}
}
}{
"validationErrors": [
{
"type": "InvalidFormat",
"fieldRef": "<string>",
"message": "Invalid format"
}
],
"message": "Request validation failed",
"errorCode": "INVALID_REQUEST"
}{
"validationErrors": [
{
"type": "InvalidFormat",
"fieldRef": "<string>",
"message": "Invalid format"
}
],
"message": "Request validation failed",
"errorCode": "INVALID_REQUEST"
}{
"validationErrors": [
{
"type": "InvalidFormat",
"fieldRef": "<string>",
"message": "Invalid format"
}
],
"message": "Request validation failed",
"errorCode": "INVALID_REQUEST"
}{
"validationErrors": [
{
"type": "NotFound",
"fieldRef": "id",
"message": "No transaction was found for the supplied id"
}
],
"errorCode": "NOT_FOUND",
"message": "Requested transaction was not found"
}Transactions
Get a payout transaction
Returns a transaction with its latest processing status by Meridian transaction ID.
Authentication uses Meridian HMAC headers:
- X-Meridian-Api-Key
- X-Meridian-Timestamp
- X-Meridian-Signature
GET
/
v1
/
transactions
/
{id}
Get a payout transaction
curl --request GET \
--url https://api.meridian.example.com/v1/transactions/{id} \
--header 'X-Meridian-Api-Key: <x-meridian-api-key>' \
--header 'X-Meridian-Program-Id: <x-meridian-program-id>' \
--header 'X-Meridian-Signature: <api-key>' \
--header 'X-Meridian-Timestamp: <x-meridian-timestamp>'import requests
url = "https://api.meridian.example.com/v1/transactions/{id}"
headers = {
"X-Meridian-Program-Id": "<x-meridian-program-id>",
"X-Meridian-Api-Key": "<x-meridian-api-key>",
"X-Meridian-Timestamp": "<x-meridian-timestamp>",
"X-Meridian-Signature": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-Meridian-Program-Id': '<x-meridian-program-id>',
'X-Meridian-Api-Key': '<x-meridian-api-key>',
'X-Meridian-Timestamp': '<x-meridian-timestamp>',
'X-Meridian-Signature': '<api-key>'
}
};
fetch('https://api.meridian.example.com/v1/transactions/{id}', 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.meridian.example.com/v1/transactions/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Meridian-Api-Key: <x-meridian-api-key>",
"X-Meridian-Program-Id: <x-meridian-program-id>",
"X-Meridian-Signature: <api-key>",
"X-Meridian-Timestamp: <x-meridian-timestamp>"
],
]);
$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.meridian.example.com/v1/transactions/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Meridian-Program-Id", "<x-meridian-program-id>")
req.Header.Add("X-Meridian-Api-Key", "<x-meridian-api-key>")
req.Header.Add("X-Meridian-Timestamp", "<x-meridian-timestamp>")
req.Header.Add("X-Meridian-Signature", "<api-key>")
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.meridian.example.com/v1/transactions/{id}")
.header("X-Meridian-Program-Id", "<x-meridian-program-id>")
.header("X-Meridian-Api-Key", "<x-meridian-api-key>")
.header("X-Meridian-Timestamp", "<x-meridian-timestamp>")
.header("X-Meridian-Signature", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meridian.example.com/v1/transactions/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Meridian-Program-Id"] = '<x-meridian-program-id>'
request["X-Meridian-Api-Key"] = '<x-meridian-api-key>'
request["X-Meridian-Timestamp"] = '<x-meridian-timestamp>'
request["X-Meridian-Signature"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"transaction": {
"id": "txn_01JVY8Y4N9X2M6S5Q7T1",
"messageId": "msg_01JVY8Y4N9X2M6S5Q7T1",
"source": {
"type": "external_submission",
"externalSubmission": {
"id": "sub_01JVY8Y4N9X2M6S5Q7T1",
"displayName": "Customer message submission"
}
},
"type": "transfer",
"createdAt": "2026-04-07T20:11:42Z",
"updatedAt": "2026-04-07T20:12:05Z",
"status": "PENDING",
"statusReason": null,
"externalId": "e2e-20260407-000123",
"relatedTransactionId": null,
"amounts": {
"debit": {
"amount": "125000.00",
"currency": "USD"
},
"credit": {
"amount": "124975.00",
"currency": "USD"
},
"fees": [
{
"type": "NETWORK_FEE",
"label": "Network fee",
"amount": "25.00",
"currency": "USD"
}
],
"exchangeRate": "1.0000"
},
"debitInstrument": {
"type": "ORIGINATOR",
"originator": {
"displayName": "Northwind Imports LLC",
"accountNumber": "****9021"
}
},
"creditInstrument": {
"type": "BENEFICIARY_ACCOUNT",
"beneficiaryAccount": {
"id": "bfa_01JVY8Y4N9X2M6S5Q7T1",
"displayName": "Contoso Treasury USD Account",
"currency": "USD"
}
}
}
}{
"validationErrors": [
{
"type": "InvalidFormat",
"fieldRef": "<string>",
"message": "Invalid format"
}
],
"message": "Request validation failed",
"errorCode": "INVALID_REQUEST"
}{
"validationErrors": [
{
"type": "InvalidFormat",
"fieldRef": "<string>",
"message": "Invalid format"
}
],
"message": "Request validation failed",
"errorCode": "INVALID_REQUEST"
}{
"validationErrors": [
{
"type": "InvalidFormat",
"fieldRef": "<string>",
"message": "Invalid format"
}
],
"message": "Request validation failed",
"errorCode": "INVALID_REQUEST"
}{
"validationErrors": [
{
"type": "NotFound",
"fieldRef": "id",
"message": "No transaction was found for the supplied id"
}
],
"errorCode": "NOT_FOUND",
"message": "Requested transaction was not found"
}Authorizations
Meridian HMAC header authentication.
Required headers:
- X-Meridian-Api-Key
- X-Meridian-Program-Id
- X-Meridian-Timestamp
- X-Meridian-Signature
Headers
Identifies your Meridian program. Required on all requests but not included in the canonical signing string.
Required string length:
8 - 128Public client key identifier used to look up the HMAC secret
Required string length:
8 - 128RFC 3339 UTC timestamp used in the HMAC signing string and replay protection. Requests outside the accepted clock skew window should be rejected.
HMAC-SHA256 signature of the canonical signing string. Recommended format: sha256={hex_digest}
Pattern:
^sha256=[A-Fa-f0-9]{64}$Path Parameters
Meridian internal transaction identifier
Required string length:
8 - 128Response
Transaction retrieved successfully
Show child attributes
Show child attributes
⌘I