Transfer (OnTheFly Corporate)
The Transfer API allows the originating bank to provide payment instructions to the Visa B2B Connect service to the beneficiary bank. This API has been enhanced to support Out-of-Network payments with the addition of creditor fields relevant for out-of-network payments.
On-The-Fly Corporate - allows bank to onboard a company that is not onboarded earlier, along with the transaction process
Method: POST
{{URL}}/jsonrpc
Headers
Name | Value |
---|---|
Content-Type | application/json |
Example
Payload Parameters
Parameter | Description |
---|---|
id Mandatory | String Unique ID for each request |
jsonrpc Mandatory | String JSON RPC VERSION - should be "2.0" |
method Mandatory | String Method Name - should be "VisaService.Transfer" |
params Mandatory | Object |
api Mandatory | Object |
credential Mandatory | String API credential provided by NetXD |
signature Mandatory | String Signature of the digitally signed payload |
payload Mandatory | Object |
creationDateTime Mandatory | String Date and time of the payment instruction was created Example – "2020-05-11T15:15:13+00:00" |
endToEndIdentification Mandatory | String Unique identifier to track the transaction Example – "R1706545043112467 " |
paymentPurpose Conditional Mandatory (Based on Country and Currency) | String Reason for the transaction Example – "Export bills " |
paymentPurposeCode Conditional Mandatory (Based on Country and Currency) | String Code to identify the purpose of payment Example – "548 " |
unstructuredRemittance Optional | String Free form remittance, typically corresponds to Originator-to-Beneficiary Information (OBI) Example – "test payments " |
description Optional | String General description of the transaction Example – "Transfer" |
chargeBearer Optional | String Sender or beneficiary who bears the charges for the transaction Example – "DEBT" |
creditorAgentIBAN Conditional Mandatory (Based on Country and Currency) | String International Account number of creditor's bank or financial institution Example – "AZ21NABZ00000000137010001944" |
creditorAgentTaxID Conditional Mandatory (Based on Country and Currency) | String Tax identification number of creditor's bank or financial institution Example – "A1BCD1234ABCD1234A1B2C3D41234ABC123" |
instructedAmount | Object |
amount Mandatory | String Amount of the transaction Example – "1.10" |
currency Mandatory | String Currency in which the transaction is carried out Example – "DZD" |
creditorAgent | Object |
bic Conditional Mandatory (Based on Country and Currency) | String BIC of Beneficiary Bank (Creditor Agent). Field length: 8-11 characters Example – "BALGDZAPXXX" |
clearingMemberId Conditional Mandatory (Based on Country and Currency) | String Clearing Member ID of Beneficiary Bank (Creditor Agent) Example – "FW12354345" |
branchId Conditional Mandatory (Based on Country and Currency) | String Branch ID of creditor's specific bank Example – "10039999" |
branchName Conditional Mandatory (Based on Country and Currency) | String Branch Name of creditor's specific bank Example – "Creditor Test Branch Name" |
creditorAccount | Object |
name Optional | String Name of the beneficiary account holder Example – "mark hassan" |
accountNumber Conditional Mandatory (Based on Country and Currency) | String Account number of the beneficiary Account Number is mandatory if creditor Enterprise ID or Iban is not provided Example – "12345679991234567999" |
iban Conditional Mandatory (Based on Country and Currency) | String International Bank Account Number that provides additional information to help in identifying overseas payment Iban is mandatory if creditor bank's Account Number or Enterprise ID is not provided Example – "ZZ43214321432143214321" |
address Optional | String Address of the beneficiary account Example – "2 Creditor Test Address Wolfsburg Germany 38440" |
phoneNumber Conditional Mandatory (Based on Country and Currency) | String Contact phone number of the beneficiary account Example – "+49-8963648018" |
taxId Conditional Mandatory (Based on Country and Currency) | String Tax identification number of the account holder Example – "Test12345" |
taxIndicator Optional | String Tax code that indicates the type of tax information provided Example – "INC" |
contactName Conditional Mandatory (Based on Country and Currency) | String Contact name for inquiries related to the account Example – "John" |
debtorAccount | Object |
name Conditional Mandatory (Mandatory if enterpriseId is not provided) | String Debtor name Example – "mark hassan" |
accountNumber Conditional Mandatory (Mandatory if enterpriseId is not provided) | String Debtor account number Example – "123456799975756" |
address Conditional Mandatory (Mandatory if enterpriseId is not provided) | String Debtor address Example – "2 Creditor Test Address Wolfsburg Germany 38440" |
- cURL
- C#
- Go
- NodeJs
curl --location --globoff '{{URL}}/jsonrpc' \
--header 'Content-Type: application/json' \
--data '{"id":"1","jsonrpc":"2.0","method":"VisaService.Transfer","params":{"api":{"credential":"Basic c3VwcG9ydCsxQG5ldHN5cy1pbmMuY29tOjM5ZDYxOGJkNTVmNzQ4ZGQ4ZWY4NWI5NWQxY2RlNDE5","signature":"{{signature}}"},"payload":{"creationDateTime":"2020-05-11T15:15:13+00:00","endToEndIdentification":"R1706545043112467","paymentPurpose":"Export bills","paymentPurposeCode":"548","unstructuredRemittance":"test payments","description":"Transfer","chargeBearer":"DEBT","creditorAgentIBAN":"AZ21NABZ00000000137010001944","creditorAgentTaxID":"A1BCD1234ABCD1234A1B2C3D41234ABC123","instructedAmount":{"amount":"1.10","currency":"DZD"},"creditorAgent":{"bic":"BALGDZAPXXX","clearingMemberId":"FW12354345","branchId":"10039999","branchName":"Creditor Test Branch Name"},"creditorAccount":{"name":"mark hassan","accountNumber":"12345679991234567999","iban":"ZZ43214321432143214321","address":"2 Creditor Test Address Wolfsburg Germany 38440","phoneNumber":"+49-8963648018","taxId":"Test12345","taxIndicator":"INC","contactName":"John"},"debtorAccount":{"name":"mark hassan","accountNumber":"123456799975756","address":"2 Creditor Test Address Wolfsburg Germany 38440"}}}}'
var options = new RestClientOptions("{{URL}}/jsonrpc")
{
MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Post);
request.AddHeader("Content-Type", "application/json");
var body = @"{
" + "\n" +
@" ""id"": ""1"",
" + "\n" +
@" ""jsonrpc"": ""2.0"",
" + "\n" +
@" ""method"": ""VisaService.Transfer"",
" + "\n" +
@" ""params"": {
" + "\n" +
@" ""api"": {
" + "\n" +
@" ""credential"": ""Basic c3VwcG9ydCsxQG5ldHN5cy1pbmMuY29tOjM5ZDYxOGJkNTVmNzQ4ZGQ4ZWY4NWI5NWQxY2RlNDE5"",
" + "\n" +
@" ""signature"": ""{{signature}}""
" + "\n" +
@" },
" + "\n" +
@" ""payload"": {
" + "\n" +
@" ""creationDateTime"": ""2020-05-11T15:15:13+00:00"",
" + "\n" +
@" ""endToEndIdentification"": ""R1706545043112467"",
" + "\n" +
@" ""paymentPurpose"": ""Export bills"",
" + "\n" +
@" ""paymentPurposeCode"": ""548"",
" + "\n" +
@" ""unstructuredRemittance"": ""test payments"",
" + "\n" +
@" ""description"": ""Transfer"",
" + "\n" +
@" ""chargeBearer"": ""DEBT"",
" + "\n" +
@" ""creditorAgentIBAN"": ""AZ21NABZ00000000137010001944"",
" + "\n" +
@" ""creditorAgentTaxID"": ""A1BCD1234ABCD1234A1B2C3D41234ABC123"",
" + "\n" +
@" ""instructedAmount"": {
" + "\n" +
@" ""amount"": ""1.10"",
" + "\n" +
@" ""currency"": ""DZD""
" + "\n" +
@" },
" + "\n" +
@" ""creditorAgent"": {
" + "\n" +
@" ""bic"": ""BALGDZAPXXX"",
" + "\n" +
@" ""clearingMemberId"": ""FW12354345"",
" + "\n" +
@" ""branchId"": ""10039999"",
" + "\n" +
@" ""branchName"": ""Creditor Test Branch Name""
" + "\n" +
@" },
" + "\n" +
@" ""creditorAccount"": {
" + "\n" +
@" ""name"": ""mark hassan"",
" + "\n" +
@" ""accountNumber"": ""12345679991234567999"",
" + "\n" +
@" ""iban"": ""ZZ43214321432143214321"",
" + "\n" +
@" ""address"": ""2 Creditor Test Address Wolfsburg Germany 38440"",
" + "\n" +
@" ""phoneNumber"": ""+49-8963648018"",
" + "\n" +
@" ""taxId"": ""Test12345"",
" + "\n" +
@" ""taxIndicator"": ""INC"",
" + "\n" +
@" ""contactName"": ""John""
" + "\n" +
@" },
" + "\n" +
@" ""debtorAccount"": {
" + "\n" +
@" ""name"": ""mark hassan"",
" + "\n" +
@" ""accountNumber"": ""123456799975756"",
" + "\n" +
@" ""address"": ""2 Creditor Test Address Wolfsburg Germany 38440""
" + "\n" +
@" }
" + "\n" +
@" }
" + "\n" +
@" }
" + "\n" +
@"}";
request.AddStringBody(body, DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "{{URL}}/jsonrpc"
method := "POST"
payload := strings.NewReader(`{`+"
"+`
"id": "1",`+"
"+`
"jsonrpc": "2.0",`+"
"+`
"method": "VisaService.Transfer",`+"
"+`
"params": {`+"
"+`
"api": {`+"
"+`
"credential": "Basic c3VwcG9ydCsxQG5ldHN5cy1pbmMuY29tOjM5ZDYxOGJkNTVmNzQ4ZGQ4ZWY4NWI5NWQxY2RlNDE5",`+"
"+`
"signature": "{{signature}}"`+"
"+`
},`+"
"+`
"payload": {`+"
"+`
"creationDateTime": "2020-05-11T15:15:13+00:00",`+"
"+`
"endToEndIdentification": "R1706545043112467",`+"
"+`
"paymentPurpose": "Export bills",`+"
"+`
"paymentPurposeCode": "548",`+"
"+`
"unstructuredRemittance": "test payments",`+"
"+`
"description": "Transfer",`+"
"+`
"chargeBearer": "DEBT",`+"
"+`
"creditorAgentIBAN": "AZ21NABZ00000000137010001944",`+"
"+`
"creditorAgentTaxID": "A1BCD1234ABCD1234A1B2C3D41234ABC123",`+"
"+`
"instructedAmount": {`+"
"+`
"amount": "1.10",`+"
"+`
"currency": "DZD"`+"
"+`
},`+"
"+`
"creditorAgent": {`+"
"+`
"bic": "BALGDZAPXXX",`+"
"+`
"clearingMemberId": "FW12354345",`+"
"+`
"branchId": "10039999",`+"
"+`
"branchName": "Creditor Test Branch Name"`+"
"+`
},`+"
"+`
"creditorAccount": {`+"
"+`
"name": "mark hassan",`+"
"+`
"accountNumber": "12345679991234567999",`+"
"+`
"iban": "ZZ43214321432143214321",`+"
"+`
"address": "2 Creditor Test Address Wolfsburg Germany 38440",`+"
"+`
"phoneNumber": "+49-8963648018",`+"
"+`
"taxId": "Test12345",`+"
"+`
"taxIndicator": "INC",`+"
"+`
"contactName": "John"`+"
"+`
},`+"
"+`
"debtorAccount": {`+"
"+`
"name": "mark hassan",`+"
"+`
"accountNumber": "123456799975756",`+"
"+`
"address": "2 Creditor Test Address Wolfsburg Germany 38440"`+"
"+`
}`+"
"+`
}`+"
"+`
}`+"
"+`
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
var https = require('follow-redirects').https;
var fs = require('fs');
var options = {
'method': 'POST',
'hostname': '{{URL}}',
'path': '/jsonrpc',
'headers': {
'Content-Type': 'application/json'
},
'maxRedirects': 20
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
var postData = JSON.stringify({
"id": "1",
"jsonrpc": "2.0",
"method": "VisaService.Transfer",
"params": {
"api": {
"credential": "Basic c3VwcG9ydCsxQG5ldHN5cy1pbmMuY29tOjM5ZDYxOGJkNTVmNzQ4ZGQ4ZWY4NWI5NWQxY2RlNDE5",
"signature": "{{signature}}"
},
"payload": {
"creationDateTime": "2020-05-11T15:15:13+00:00",
"endToEndIdentification": "R1706545043112467",
"paymentPurpose": "Export bills",
"paymentPurposeCode": "548",
"unstructuredRemittance": "test payments",
"description": "Transfer",
"chargeBearer": "DEBT",
"creditorAgentIBAN": "AZ21NABZ00000000137010001944",
"creditorAgentTaxID": "A1BCD1234ABCD1234A1B2C3D41234ABC123",
"instructedAmount": {
"amount": "1.10",
"currency": "DZD"
},
"creditorAgent": {
"bic": "BALGDZAPXXX",
"clearingMemberId": "FW12354345",
"branchId": "10039999",
"branchName": "Creditor Test Branch Name"
},
"creditorAccount": {
"name": "mark hassan",
"accountNumber": "12345679991234567999",
"iban": "ZZ43214321432143214321",
"address": "2 Creditor Test Address Wolfsburg Germany 38440",
"phoneNumber": "+49-8963648018",
"taxId": "Test12345",
"taxIndicator": "INC",
"contactName": "John"
},
"debtorAccount": {
"name": "mark hassan",
"accountNumber": "123456799975756",
"address": "2 Creditor Test Address Wolfsburg Germany 38440"
}
}
}
});
req.write(postData);
req.end();
Body
{
"id": "1",
"jsonrpc": "2.0",
"method": "VisaService.Transfer",
"params": {
"api": {
"credential": "Basic c3VwcG9ydCsxQG5ldHN5cy1pbmMuY29tOjM5ZDYxOGJkNTVmNzQ4ZGQ4ZWY4NWI5NWQxY2RlNDE5",
"signature": "{{signature}}"
},
"payload": {
"creationDateTime": "2020-05-11T15:15:13+00:00",
"endToEndIdentification": "R1706545043112467",
"paymentPurpose": "Export bills",
"paymentPurposeCode": "548",
"unstructuredRemittance": "test payments",
"description": "Transfer",
"chargeBearer": "DEBT",
"creditorAgentIBAN": "AZ21NABZ00000000137010001944",
"creditorAgentTaxID": "A1BCD1234ABCD1234A1B2C3D41234ABC123",
"instructedAmount": {
"amount": "1.10",
"currency": "DZD"
},
"creditorAgent": {
"bic": "BALGDZAPXXX",
"clearingMemberId": "FW12354345",
"branchId": "10039999",
"branchName": "Creditor Test Branch Name"
},
"creditorAccount": {
"name": "mark hassan",
"accountNumber": "12345679991234567999",
"iban": "ZZ43214321432143214321",
"address": "2 Creditor Test Address Wolfsburg Germany 38440",
"phoneNumber": "+49-8963648018",
"taxId": "Test12345",
"taxIndicator": "INC",
"contactName": "John"
},
"debtorAccount": {
"name": "mark hassan",
"accountNumber": "123456799975756",
"address": "2 Creditor Test Address Wolfsburg Germany 38440"
}
}
}
}
Response: 201
Response Parameters
Parameter | Description |
---|---|
jsonrpc | String JSON RPC VERSION Example: "2.0" |
result | Object |
processId | String Unique ID for payment as assigned by NetXD Example: "000000003116" |
status | String Status of the Payment Example: "IN_PROCESS" |
endToEndIdentification | String End to End ID assigned by Originating Bank (Debtor Agent) Example: "R1706545043112468" |
transactionId | String Transaction ID Example: "6644ab9fd857fa6a9762a0e0" |
id | String Unique ID for each request Example: "1" |
{
"jsonrpc": "2.0",
"result": {
"processId": "000000003116",
"status": "IN_PROCESS",
"endToEndIdentification": "R1706545043112468",
"transactionId": "6644ab9fd857fa6a9762a0e0"
},
"id": "1"
}