curl --request POST \
--url https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/verification/ \
--header 'Content-Type: application/json' \
--header 'X-API-Version: <api-key>' \
--header 'X-Client-ID: <api-key>' \
--header 'X-Client-Secret: <api-key>' \
--header 'X-Merchant-ID: <api-key>' \
--data '
{
"fields": {
"buyer_name": "Northwind Technologies Pvt Ltd",
"buyer_address_line_1": "7th Floor, Prestige Tower, Residency Road",
"buyer_city": "Bengaluru",
"buyer_state": "Karnataka",
"buyer_postal_code": "560025",
"buyer_email": "[email protected]",
"buyer_phone": "+919876543210",
"invoice_number": "INV-2026-0041",
"invoice_date": "2026-08-01",
"invoice_amount": "125000.00",
"declaration": true
},
"documents": [
{
"code": "invoice",
"ref": "8207383264"
}
],
"finalize": true
}
'import requests
url = "https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/verification/"
payload = {
"fields": {
"buyer_name": "Northwind Technologies Pvt Ltd",
"buyer_address_line_1": "7th Floor, Prestige Tower, Residency Road",
"buyer_city": "Bengaluru",
"buyer_state": "Karnataka",
"buyer_postal_code": "560025",
"buyer_email": "[email protected]",
"buyer_phone": "+919876543210",
"invoice_number": "INV-2026-0041",
"invoice_date": "2026-08-01",
"invoice_amount": "125000.00",
"declaration": True
},
"documents": [
{
"code": "invoice",
"ref": "8207383264"
}
],
"finalize": True
}
headers = {
"X-Client-ID": "<api-key>",
"X-Client-Secret": "<api-key>",
"X-Merchant-ID": "<api-key>",
"X-API-Version": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Client-ID': '<api-key>',
'X-Client-Secret': '<api-key>',
'X-Merchant-ID': '<api-key>',
'X-API-Version': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
fields: {
buyer_name: 'Northwind Technologies Pvt Ltd',
buyer_address_line_1: '7th Floor, Prestige Tower, Residency Road',
buyer_city: 'Bengaluru',
buyer_state: 'Karnataka',
buyer_postal_code: '560025',
buyer_email: '[email protected]',
buyer_phone: '+919876543210',
invoice_number: 'INV-2026-0041',
invoice_date: '2026-08-01',
invoice_amount: '125000.00',
declaration: true
},
documents: [{code: 'invoice', ref: '8207383264'}],
finalize: true
})
};
fetch('https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/verification/', 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-pacb-uat.eximpe.com/pg/payments/{payment_id}/verification/",
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([
'fields' => [
'buyer_name' => 'Northwind Technologies Pvt Ltd',
'buyer_address_line_1' => '7th Floor, Prestige Tower, Residency Road',
'buyer_city' => 'Bengaluru',
'buyer_state' => 'Karnataka',
'buyer_postal_code' => '560025',
'buyer_email' => '[email protected]',
'buyer_phone' => '+919876543210',
'invoice_number' => 'INV-2026-0041',
'invoice_date' => '2026-08-01',
'invoice_amount' => '125000.00',
'declaration' => true
],
'documents' => [
[
'code' => 'invoice',
'ref' => '8207383264'
]
],
'finalize' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Version: <api-key>",
"X-Client-ID: <api-key>",
"X-Client-Secret: <api-key>",
"X-Merchant-ID: <api-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-pacb-uat.eximpe.com/pg/payments/{payment_id}/verification/"
payload := strings.NewReader("{\n \"fields\": {\n \"buyer_name\": \"Northwind Technologies Pvt Ltd\",\n \"buyer_address_line_1\": \"7th Floor, Prestige Tower, Residency Road\",\n \"buyer_city\": \"Bengaluru\",\n \"buyer_state\": \"Karnataka\",\n \"buyer_postal_code\": \"560025\",\n \"buyer_email\": \"[email protected]\",\n \"buyer_phone\": \"+919876543210\",\n \"invoice_number\": \"INV-2026-0041\",\n \"invoice_date\": \"2026-08-01\",\n \"invoice_amount\": \"125000.00\",\n \"declaration\": true\n },\n \"documents\": [\n {\n \"code\": \"invoice\",\n \"ref\": \"8207383264\"\n }\n ],\n \"finalize\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Client-ID", "<api-key>")
req.Header.Add("X-Client-Secret", "<api-key>")
req.Header.Add("X-Merchant-ID", "<api-key>")
req.Header.Add("X-API-Version", "<api-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-pacb-uat.eximpe.com/pg/payments/{payment_id}/verification/")
.header("X-Client-ID", "<api-key>")
.header("X-Client-Secret", "<api-key>")
.header("X-Merchant-ID", "<api-key>")
.header("X-API-Version", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"fields\": {\n \"buyer_name\": \"Northwind Technologies Pvt Ltd\",\n \"buyer_address_line_1\": \"7th Floor, Prestige Tower, Residency Road\",\n \"buyer_city\": \"Bengaluru\",\n \"buyer_state\": \"Karnataka\",\n \"buyer_postal_code\": \"560025\",\n \"buyer_email\": \"[email protected]\",\n \"buyer_phone\": \"+919876543210\",\n \"invoice_number\": \"INV-2026-0041\",\n \"invoice_date\": \"2026-08-01\",\n \"invoice_amount\": \"125000.00\",\n \"declaration\": true\n },\n \"documents\": [\n {\n \"code\": \"invoice\",\n \"ref\": \"8207383264\"\n }\n ],\n \"finalize\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/verification/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Client-ID"] = '<api-key>'
request["X-Client-Secret"] = '<api-key>'
request["X-Merchant-ID"] = '<api-key>'
request["X-API-Version"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"fields\": {\n \"buyer_name\": \"Northwind Technologies Pvt Ltd\",\n \"buyer_address_line_1\": \"7th Floor, Prestige Tower, Residency Road\",\n \"buyer_city\": \"Bengaluru\",\n \"buyer_state\": \"Karnataka\",\n \"buyer_postal_code\": \"560025\",\n \"buyer_email\": \"[email protected]\",\n \"buyer_phone\": \"+919876543210\",\n \"invoice_number\": \"INV-2026-0041\",\n \"invoice_date\": \"2026-08-01\",\n \"invoice_amount\": \"125000.00\",\n \"declaration\": true\n },\n \"documents\": [\n {\n \"code\": \"invoice\",\n \"ref\": \"8207383264\"\n }\n ],\n \"finalize\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Verification details received",
"data": {
"payment_id": "PR6938527534",
"status": "incomplete",
"outstanding": [
"invoice_number",
"invoice_date",
"invoice"
]
}
}Submit Payment Verification Details
Send a payment’s verification details — buyer, invoice and goods fields — in a single JSON call.
curl --request POST \
--url https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/verification/ \
--header 'Content-Type: application/json' \
--header 'X-API-Version: <api-key>' \
--header 'X-Client-ID: <api-key>' \
--header 'X-Client-Secret: <api-key>' \
--header 'X-Merchant-ID: <api-key>' \
--data '
{
"fields": {
"buyer_name": "Northwind Technologies Pvt Ltd",
"buyer_address_line_1": "7th Floor, Prestige Tower, Residency Road",
"buyer_city": "Bengaluru",
"buyer_state": "Karnataka",
"buyer_postal_code": "560025",
"buyer_email": "[email protected]",
"buyer_phone": "+919876543210",
"invoice_number": "INV-2026-0041",
"invoice_date": "2026-08-01",
"invoice_amount": "125000.00",
"declaration": true
},
"documents": [
{
"code": "invoice",
"ref": "8207383264"
}
],
"finalize": true
}
'import requests
url = "https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/verification/"
payload = {
"fields": {
"buyer_name": "Northwind Technologies Pvt Ltd",
"buyer_address_line_1": "7th Floor, Prestige Tower, Residency Road",
"buyer_city": "Bengaluru",
"buyer_state": "Karnataka",
"buyer_postal_code": "560025",
"buyer_email": "[email protected]",
"buyer_phone": "+919876543210",
"invoice_number": "INV-2026-0041",
"invoice_date": "2026-08-01",
"invoice_amount": "125000.00",
"declaration": True
},
"documents": [
{
"code": "invoice",
"ref": "8207383264"
}
],
"finalize": True
}
headers = {
"X-Client-ID": "<api-key>",
"X-Client-Secret": "<api-key>",
"X-Merchant-ID": "<api-key>",
"X-API-Version": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Client-ID': '<api-key>',
'X-Client-Secret': '<api-key>',
'X-Merchant-ID': '<api-key>',
'X-API-Version': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
fields: {
buyer_name: 'Northwind Technologies Pvt Ltd',
buyer_address_line_1: '7th Floor, Prestige Tower, Residency Road',
buyer_city: 'Bengaluru',
buyer_state: 'Karnataka',
buyer_postal_code: '560025',
buyer_email: '[email protected]',
buyer_phone: '+919876543210',
invoice_number: 'INV-2026-0041',
invoice_date: '2026-08-01',
invoice_amount: '125000.00',
declaration: true
},
documents: [{code: 'invoice', ref: '8207383264'}],
finalize: true
})
};
fetch('https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/verification/', 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-pacb-uat.eximpe.com/pg/payments/{payment_id}/verification/",
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([
'fields' => [
'buyer_name' => 'Northwind Technologies Pvt Ltd',
'buyer_address_line_1' => '7th Floor, Prestige Tower, Residency Road',
'buyer_city' => 'Bengaluru',
'buyer_state' => 'Karnataka',
'buyer_postal_code' => '560025',
'buyer_email' => '[email protected]',
'buyer_phone' => '+919876543210',
'invoice_number' => 'INV-2026-0041',
'invoice_date' => '2026-08-01',
'invoice_amount' => '125000.00',
'declaration' => true
],
'documents' => [
[
'code' => 'invoice',
'ref' => '8207383264'
]
],
'finalize' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Version: <api-key>",
"X-Client-ID: <api-key>",
"X-Client-Secret: <api-key>",
"X-Merchant-ID: <api-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-pacb-uat.eximpe.com/pg/payments/{payment_id}/verification/"
payload := strings.NewReader("{\n \"fields\": {\n \"buyer_name\": \"Northwind Technologies Pvt Ltd\",\n \"buyer_address_line_1\": \"7th Floor, Prestige Tower, Residency Road\",\n \"buyer_city\": \"Bengaluru\",\n \"buyer_state\": \"Karnataka\",\n \"buyer_postal_code\": \"560025\",\n \"buyer_email\": \"[email protected]\",\n \"buyer_phone\": \"+919876543210\",\n \"invoice_number\": \"INV-2026-0041\",\n \"invoice_date\": \"2026-08-01\",\n \"invoice_amount\": \"125000.00\",\n \"declaration\": true\n },\n \"documents\": [\n {\n \"code\": \"invoice\",\n \"ref\": \"8207383264\"\n }\n ],\n \"finalize\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Client-ID", "<api-key>")
req.Header.Add("X-Client-Secret", "<api-key>")
req.Header.Add("X-Merchant-ID", "<api-key>")
req.Header.Add("X-API-Version", "<api-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-pacb-uat.eximpe.com/pg/payments/{payment_id}/verification/")
.header("X-Client-ID", "<api-key>")
.header("X-Client-Secret", "<api-key>")
.header("X-Merchant-ID", "<api-key>")
.header("X-API-Version", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"fields\": {\n \"buyer_name\": \"Northwind Technologies Pvt Ltd\",\n \"buyer_address_line_1\": \"7th Floor, Prestige Tower, Residency Road\",\n \"buyer_city\": \"Bengaluru\",\n \"buyer_state\": \"Karnataka\",\n \"buyer_postal_code\": \"560025\",\n \"buyer_email\": \"[email protected]\",\n \"buyer_phone\": \"+919876543210\",\n \"invoice_number\": \"INV-2026-0041\",\n \"invoice_date\": \"2026-08-01\",\n \"invoice_amount\": \"125000.00\",\n \"declaration\": true\n },\n \"documents\": [\n {\n \"code\": \"invoice\",\n \"ref\": \"8207383264\"\n }\n ],\n \"finalize\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/verification/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Client-ID"] = '<api-key>'
request["X-Client-Secret"] = '<api-key>'
request["X-Merchant-ID"] = '<api-key>'
request["X-API-Version"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"fields\": {\n \"buyer_name\": \"Northwind Technologies Pvt Ltd\",\n \"buyer_address_line_1\": \"7th Floor, Prestige Tower, Residency Road\",\n \"buyer_city\": \"Bengaluru\",\n \"buyer_state\": \"Karnataka\",\n \"buyer_postal_code\": \"560025\",\n \"buyer_email\": \"[email protected]\",\n \"buyer_phone\": \"+919876543210\",\n \"invoice_number\": \"INV-2026-0041\",\n \"invoice_date\": \"2026-08-01\",\n \"invoice_amount\": \"125000.00\",\n \"declaration\": true\n },\n \"documents\": [\n {\n \"code\": \"invoice\",\n \"ref\": \"8207383264\"\n }\n ],\n \"finalize\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Verification details received",
"data": {
"payment_id": "PR6938527534",
"status": "incomplete",
"outstanding": [
"invoice_number",
"invoice_date",
"invoice"
]
}
}Overview
When a payment needs verification details before it can settle, this is where you send them. One call carries every field the payment is waiting on, and you can send them as you collect them rather than all at once. Use it when you receive aVERIFICATION_NEEDED webhook with verification_status of ACTION_REQUIRED.
POST /pg/payments/{uid}/upload-verification-details/, which is deprecated. The old endpoint took one fixed set of fields, rewrote them all on every call, and worked on a single gateway. Move existing integrations across when convenient; build new ones here.When this applies
Credits that land in a Virtual Bank Account create a payment against an order. If that order is missing anything the payment needs before it can settle, the platform emitsVERIFICATION_NEEDED naming exactly which fields are absent. This endpoint is how you supply them programmatically, rather than editing the order in the dashboard.
Payment recorded
Missing fields reported
VERIFICATION_NEEDED fires with an action_required_fields array naming each one.Supply the details
POST them to this endpoint, under the same codes the event used.Read what is left
outstanding — the codes still owed after that call.A worked example
Your answers go infields, keyed by code; files you have already uploaded go in documents as { "code": …, "ref": … }.
{
"fields": {
"buyer_name": "Acme Imports Pvt Ltd",
"product_description": "Cotton knitted t-shirts",
"invoice_number": "INV-2026-0041",
"buyer_postal_code": "560001",
"hs_code": "6109"
}
}
POST /pg/payments/{payment_id}/documents/, which returns a ref, then name that ref under its code in documents.Which codes to send
The codes come from the payment, not from a fixed list. Read them offaction_required_fields on the webhook, or call GET /pg/payments/{payment_id}/verification/ at any time for the full set with a satisfied flag on each item. What a payment is asked for depends on what it is, and it changes as the underlying regulatory requirements do — read the codes rather than hardcoding them, and a revision reaches you without a release on your side.
These are the ones an import payment is most often asked for:
| Code | |
|---|---|
buyer_name | Name of the buyer / importer |
product_description | Description of the goods or services |
invoice_number | Invoice or order number |
invoice_date | Invoice date, YYYY-MM-DD |
buyer_address_line_1 | Street address of the buyer |
buyer_city · buyer_state · buyer_postal_code | Rest of the buyer’s address |
buyer_email · buyer_phone | Buyer contact details |
hs_code | Harmonised System code — asked for when the order ships physical goods |
iec | Importer-Exporter Code of the buying business |
business_model | B2B or B2C |
purpose_code | The FEMA/FETERS code this order settles under, e.g. S0101. It must be one the account this payment settles to is enabled for — for a PSP that is the sub-merchant on the order, not the calling credential. An unrecognised or un-enabled code is a 400, never a stored value. |
invoice.
type_of_goods is not sent here. It is part of the order’s product details, declared when you create the order, and it is never listed as outstanding.business_model and purpose_code must travel together, and only once. They place the payment, and until both are set nothing else about it can be checked — so send them first, or in the same call as the rest. Send one without the other and the call is refused naming the one you left out; once set, sending either again is a 400.business_model is listed when nothing has declared it, not when it is empty — it defaults to B2C, so sending "business_model": "B2C" is a real answer rather than a no-op. Many orders arrive already classified, so GET the payment first if you are unsure.Send as much or as little as you have
Send three fields today and two tomorrow and you have sent five. Nothing you sent earlier is wiped by a later call, and a field’s newest value wins. Nobody collects an invoice, an address and an IEC in the same instant.finalize defaults to true. It applies only to a complete set and never forces an incomplete one through, so a partial send is accepted either way — you do not have to set it. Pass finalize: false when you have sent everything but do not want the payment’s verification completed yet, and the details are recorded without it.ACTION_REQUIRED refuses further sends — GET the payment and read settlement_status before you send.The response
{
"success": true,
"message": "Verification details received",
"data": {
"payment_id": "PR7712349900",
"status": "incomplete",
"outstanding": ["invoice_number", "hs_code"]
}
}
| Key | |
|---|---|
payment_id | The payment these details were recorded against. |
status | incomplete — something is still owed, and outstanding names it. complete — nothing is outstanding. |
outstanding | The codes still owed after this write. Empty when nothing is. You do not need a second call to learn what is left. |
in_review and action_required. They do not arise on this flow.Errors
A refused send answers in the standard error envelope, withdetails keyed by the offending code — so one call reports every problem at once:
{
"success": false,
"error": {
"code": 40359,
"message": "Invalid LRS request.",
"details": {
"buyer_citty": "Not a requirement of this payment's checklist.",
"invoice": "This is a document code; send it under 'documents'."
}
}
}
| Message | Cause |
|---|---|
Not a requirement of this payment's checklist. | The code is not one this payment asks for. |
This is a document code; send it under 'documents'. | A document code appeared as a key in fields. |
This is a field code; send it under 'fields'. | The reverse. |
Blank value; omit the key instead. | null, "", or whitespace. Omit the key rather than sending an empty value. |
Sent more than once in this call. | The same document code twice in one documents array. |
Unknown document ref. | The ref is not one of the uploads held for the settling merchant or its parent/children. |
Already set on the order; it cannot be changed here. | business_model or purpose_code after classification has landed. |
message names the flow that refused you, so it varies. A payment we cannot yet place — one whose business model and purpose code have not been declared — reads Invalid verification request. rather than the wording above, because there is no flow to name. The code is the same either way. Branch on code, never on message.400, not a silent drop. A misspelled invoice_number that we quietly ignored would leave the payment waiting forever for a field you believe you sent. Every key is checked before any is written, so one typo cannot half-apply a call.Authorizations
Client Application ID - Your unique application identifier used to authenticate API requests. You can find your Client ID in the Developer Settings section of the merchant dashboard.
Client Secret Key - Your secret key used alongside the Client ID for secure authentication. Keep this confidential and never expose it in client-side code. Available in the Developer Settings section of the merchant dashboard.
Merchant Identifier - The unique ID for the merchant account. This is required for PSP (Payment Service Provider) merchants who manage multiple merchant accounts. You can find merchant IDs in the Merchant Management section of the dashboard.
API Version - Specifies which version of the API to use (e.g., '1.X.X', '2.X.X', or '3.X.X'). This header allows you to control which API version your integration uses. Default version information is available in the Developer Settings.
Path Parameters
UID of the payment the details are for.
Body
Answers keyed by checklist code, e.g. {"buyer_city": "Bengaluru", "invoice_number": "INV-2026-0041"}. Values are strings, numbers or booleans. Dates are YYYY-MM-DD; invoice_amount is a decimal string in rupees and declaration is a boolean. An unknown key is a 400 rather than a silent drop — a typo you never hear about would leave the payment waiting forever for a field you believe you sent. Omit a key rather than sending null or an empty string; a blank value is also a 400.
{
"buyer_name": "Northwind Technologies Pvt Ltd",
"buyer_address_line_1": "7th Floor, Prestige Tower, Residency Road",
"buyer_city": "Bengaluru",
"buyer_state": "Karnataka",
"buyer_postal_code": "560025",
"buyer_email": "[email protected]",
"buyer_phone": "+919876543210",
"invoice_number": "INV-2026-0041",
"invoice_date": "2026-08-01",
"invoice_amount": "125000.00",
"declaration": true
}
Documents by reference, or waivers. Each entry names exactly one of ref and waiver_reason; sending both, neither, or the same code twice in one call is a 400.
Show child attributes
Show child attributes
Whether to run a complete set through the payment's verification gateway — the LRS gateway on an LRS payment, the B2B-services one on a services payment. Never forces an incomplete set through.
The earlier payment this one tops up — the buyer was short, or paid the TCS separately. Resolved against your own payments; a link that cannot be resolved is refused. Read by the call that files, so send it with the call that completes the set. LRS only: a B2B-services payment has no top-up concept and ignores this key rather than refusing it.
"PR6938527534"
Why the two payments are linked; an audit label on the link. REMAINING_AMOUNT — covering a principal shortfall. TCS_PAYMENT — paying the TCS separately. Only valid together with linked_payment_id. LRS only, like linked_payment_id: ignored on a B2B-services payment.
REMAINING_AMOUNT, TCS_PAYMENT "REMAINING_AMOUNT"