PMO Interface
Tx Authorization
Tx authorization
curl --request POST \
--url https://api.example.com/client-interfaces/pmo/tx-authorization \
--header 'Content-Type: application/json' \
--data '
{
"TransactionId": "<string>",
"SenderPersonalData": {
"FirstName": "<string>",
"LastName": "<string>",
"Gender": "<string>",
"BirthDate": "<string>",
"Address": {
"Address1": "<string>",
"City": "<string>",
"CountryCode": "<string>",
"StateCode": "<string>",
"Address2": "<string>",
"ZipCode": "<string>"
},
"PhoneNumber": "<string>",
"Email": "<string>",
"MiddleName": "<string>",
"LastName2": "<string>"
},
"ReceiverPersonalData": {
"FirstName": "<string>",
"LastName": "<string>",
"Gender": "<string>",
"BirthDate": "<string>",
"Address": {
"Address1": "<string>",
"City": "<string>",
"CountryCode": "<string>",
"StateCode": "<string>",
"Address2": "<string>",
"ZipCode": "<string>"
},
"PhoneNumber": "<string>",
"Email": "<string>",
"MiddleName": "<string>",
"LastName2": "<string>"
},
"Amount": 123,
"Currency": "<string>",
"ExchangeRate": 123,
"AccountIdentifier": "<string>",
"TrackingNumber": "<string>"
}
'import requests
url = "https://api.example.com/client-interfaces/pmo/tx-authorization"
payload = {
"TransactionId": "<string>",
"SenderPersonalData": {
"FirstName": "<string>",
"LastName": "<string>",
"Gender": "<string>",
"BirthDate": "<string>",
"Address": {
"Address1": "<string>",
"City": "<string>",
"CountryCode": "<string>",
"StateCode": "<string>",
"Address2": "<string>",
"ZipCode": "<string>"
},
"PhoneNumber": "<string>",
"Email": "<string>",
"MiddleName": "<string>",
"LastName2": "<string>"
},
"ReceiverPersonalData": {
"FirstName": "<string>",
"LastName": "<string>",
"Gender": "<string>",
"BirthDate": "<string>",
"Address": {
"Address1": "<string>",
"City": "<string>",
"CountryCode": "<string>",
"StateCode": "<string>",
"Address2": "<string>",
"ZipCode": "<string>"
},
"PhoneNumber": "<string>",
"Email": "<string>",
"MiddleName": "<string>",
"LastName2": "<string>"
},
"Amount": 123,
"Currency": "<string>",
"ExchangeRate": 123,
"AccountIdentifier": "<string>",
"TrackingNumber": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
TransactionId: '<string>',
SenderPersonalData: {
FirstName: '<string>',
LastName: '<string>',
Gender: '<string>',
BirthDate: '<string>',
Address: {
Address1: '<string>',
City: '<string>',
CountryCode: '<string>',
StateCode: '<string>',
Address2: '<string>',
ZipCode: '<string>'
},
PhoneNumber: '<string>',
Email: '<string>',
MiddleName: '<string>',
LastName2: '<string>'
},
ReceiverPersonalData: {
FirstName: '<string>',
LastName: '<string>',
Gender: '<string>',
BirthDate: '<string>',
Address: {
Address1: '<string>',
City: '<string>',
CountryCode: '<string>',
StateCode: '<string>',
Address2: '<string>',
ZipCode: '<string>'
},
PhoneNumber: '<string>',
Email: '<string>',
MiddleName: '<string>',
LastName2: '<string>'
},
Amount: 123,
Currency: '<string>',
ExchangeRate: 123,
AccountIdentifier: '<string>',
TrackingNumber: '<string>'
})
};
fetch('https://api.example.com/client-interfaces/pmo/tx-authorization', 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/client-interfaces/pmo/tx-authorization",
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([
'TransactionId' => '<string>',
'SenderPersonalData' => [
'FirstName' => '<string>',
'LastName' => '<string>',
'Gender' => '<string>',
'BirthDate' => '<string>',
'Address' => [
'Address1' => '<string>',
'City' => '<string>',
'CountryCode' => '<string>',
'StateCode' => '<string>',
'Address2' => '<string>',
'ZipCode' => '<string>'
],
'PhoneNumber' => '<string>',
'Email' => '<string>',
'MiddleName' => '<string>',
'LastName2' => '<string>'
],
'ReceiverPersonalData' => [
'FirstName' => '<string>',
'LastName' => '<string>',
'Gender' => '<string>',
'BirthDate' => '<string>',
'Address' => [
'Address1' => '<string>',
'City' => '<string>',
'CountryCode' => '<string>',
'StateCode' => '<string>',
'Address2' => '<string>',
'ZipCode' => '<string>'
],
'PhoneNumber' => '<string>',
'Email' => '<string>',
'MiddleName' => '<string>',
'LastName2' => '<string>'
],
'Amount' => 123,
'Currency' => '<string>',
'ExchangeRate' => 123,
'AccountIdentifier' => '<string>',
'TrackingNumber' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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/client-interfaces/pmo/tx-authorization"
payload := strings.NewReader("{\n \"TransactionId\": \"<string>\",\n \"SenderPersonalData\": {\n \"FirstName\": \"<string>\",\n \"LastName\": \"<string>\",\n \"Gender\": \"<string>\",\n \"BirthDate\": \"<string>\",\n \"Address\": {\n \"Address1\": \"<string>\",\n \"City\": \"<string>\",\n \"CountryCode\": \"<string>\",\n \"StateCode\": \"<string>\",\n \"Address2\": \"<string>\",\n \"ZipCode\": \"<string>\"\n },\n \"PhoneNumber\": \"<string>\",\n \"Email\": \"<string>\",\n \"MiddleName\": \"<string>\",\n \"LastName2\": \"<string>\"\n },\n \"ReceiverPersonalData\": {\n \"FirstName\": \"<string>\",\n \"LastName\": \"<string>\",\n \"Gender\": \"<string>\",\n \"BirthDate\": \"<string>\",\n \"Address\": {\n \"Address1\": \"<string>\",\n \"City\": \"<string>\",\n \"CountryCode\": \"<string>\",\n \"StateCode\": \"<string>\",\n \"Address2\": \"<string>\",\n \"ZipCode\": \"<string>\"\n },\n \"PhoneNumber\": \"<string>\",\n \"Email\": \"<string>\",\n \"MiddleName\": \"<string>\",\n \"LastName2\": \"<string>\"\n },\n \"Amount\": 123,\n \"Currency\": \"<string>\",\n \"ExchangeRate\": 123,\n \"AccountIdentifier\": \"<string>\",\n \"TrackingNumber\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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/client-interfaces/pmo/tx-authorization")
.header("Content-Type", "application/json")
.body("{\n \"TransactionId\": \"<string>\",\n \"SenderPersonalData\": {\n \"FirstName\": \"<string>\",\n \"LastName\": \"<string>\",\n \"Gender\": \"<string>\",\n \"BirthDate\": \"<string>\",\n \"Address\": {\n \"Address1\": \"<string>\",\n \"City\": \"<string>\",\n \"CountryCode\": \"<string>\",\n \"StateCode\": \"<string>\",\n \"Address2\": \"<string>\",\n \"ZipCode\": \"<string>\"\n },\n \"PhoneNumber\": \"<string>\",\n \"Email\": \"<string>\",\n \"MiddleName\": \"<string>\",\n \"LastName2\": \"<string>\"\n },\n \"ReceiverPersonalData\": {\n \"FirstName\": \"<string>\",\n \"LastName\": \"<string>\",\n \"Gender\": \"<string>\",\n \"BirthDate\": \"<string>\",\n \"Address\": {\n \"Address1\": \"<string>\",\n \"City\": \"<string>\",\n \"CountryCode\": \"<string>\",\n \"StateCode\": \"<string>\",\n \"Address2\": \"<string>\",\n \"ZipCode\": \"<string>\"\n },\n \"PhoneNumber\": \"<string>\",\n \"Email\": \"<string>\",\n \"MiddleName\": \"<string>\",\n \"LastName2\": \"<string>\"\n },\n \"Amount\": 123,\n \"Currency\": \"<string>\",\n \"ExchangeRate\": 123,\n \"AccountIdentifier\": \"<string>\",\n \"TrackingNumber\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/client-interfaces/pmo/tx-authorization")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"TransactionId\": \"<string>\",\n \"SenderPersonalData\": {\n \"FirstName\": \"<string>\",\n \"LastName\": \"<string>\",\n \"Gender\": \"<string>\",\n \"BirthDate\": \"<string>\",\n \"Address\": {\n \"Address1\": \"<string>\",\n \"City\": \"<string>\",\n \"CountryCode\": \"<string>\",\n \"StateCode\": \"<string>\",\n \"Address2\": \"<string>\",\n \"ZipCode\": \"<string>\"\n },\n \"PhoneNumber\": \"<string>\",\n \"Email\": \"<string>\",\n \"MiddleName\": \"<string>\",\n \"LastName2\": \"<string>\"\n },\n \"ReceiverPersonalData\": {\n \"FirstName\": \"<string>\",\n \"LastName\": \"<string>\",\n \"Gender\": \"<string>\",\n \"BirthDate\": \"<string>\",\n \"Address\": {\n \"Address1\": \"<string>\",\n \"City\": \"<string>\",\n \"CountryCode\": \"<string>\",\n \"StateCode\": \"<string>\",\n \"Address2\": \"<string>\",\n \"ZipCode\": \"<string>\"\n },\n \"PhoneNumber\": \"<string>\",\n \"Email\": \"<string>\",\n \"MiddleName\": \"<string>\",\n \"LastName2\": \"<string>\"\n },\n \"Amount\": 123,\n \"Currency\": \"<string>\",\n \"ExchangeRate\": 123,\n \"AccountIdentifier\": \"<string>\",\n \"TrackingNumber\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"Authorized": true,
"TrackingIdentifier": "<string>",
"AccountIdentifier": "<string>",
"DisplayName": "<string>"
}This API MUST be implemented by the Partner. Platform’s backend will check for fund availability and business rules before processing a transaction.
POST request to:
[Base-URL]/TxAuthorization.
Expected behavior:
Authorization request to process a funds transaction between two parties (Sender and Recipient). The partner will internally validate the balance, limits, and compliance rules (e.g., AML, Velocity), responding whether the operation is Authorized (accompanied by a TrackingIdentifier) or denied for a specific reason in NonAuthorizedReason.Body
application/json
Personal information. At least one of PhoneNumber or Email must be provided.
Show child attributes
Show child attributes
Personal information. At least one of PhoneNumber or Email must be provided.
Show child attributes
Show child attributes
3 chars
Response
200 - application/json
Ok
Null or empty if is not found. If Null or empty, Authorized will be ignored.
Max 10, Only these chars -> [-_a-zA-Z0-9.
If Null or empty, it will be Parner Prefix (configured in backend) + last four Account numbers (e.g. PRTN-0141).
Available options:
None, AccountBlocked, AccountBlockedByLaw, AccountBlockedByGovernment, ByVelocity, ByAmountLimit, ByAccumulateAmountLimit, InvalidAccount, InvalidParameter, InvalidCurrency, InvalidSenderData, InvalidDestinationData, InvalidExchangeRate, NonMatchingCurrencyAccount, InvalidAmount ⌘I