Inter Bank Transfer
curl --request POST \
--url https://payout-staging.embedly.ng/api/Payout/inter-bank-transfer \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"destinationBankCode": "<string>",
"destinationAccountNumber": "<string>",
"destinationAccountName": "<string>",
"sourceAccountNumber": "<string>",
"sourceAccountName": "<string>",
"remarks": "<string>",
"amount": 123,
"currencyId": "<string>",
"customerTransactionReference": "<string>",
"stagingStatus": "<string>"
}
'import requests
url = "https://payout-staging.embedly.ng/api/Payout/inter-bank-transfer"
payload = {
"destinationBankCode": "<string>",
"destinationAccountNumber": "<string>",
"destinationAccountName": "<string>",
"sourceAccountNumber": "<string>",
"sourceAccountName": "<string>",
"remarks": "<string>",
"amount": 123,
"currencyId": "<string>",
"customerTransactionReference": "<string>",
"stagingStatus": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
destinationBankCode: '<string>',
destinationAccountNumber: '<string>',
destinationAccountName: '<string>',
sourceAccountNumber: '<string>',
sourceAccountName: '<string>',
remarks: '<string>',
amount: 123,
currencyId: '<string>',
customerTransactionReference: '<string>',
stagingStatus: '<string>'
})
};
fetch('https://payout-staging.embedly.ng/api/Payout/inter-bank-transfer', 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://payout-staging.embedly.ng/api/Payout/inter-bank-transfer",
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([
'destinationBankCode' => '<string>',
'destinationAccountNumber' => '<string>',
'destinationAccountName' => '<string>',
'sourceAccountNumber' => '<string>',
'sourceAccountName' => '<string>',
'remarks' => '<string>',
'amount' => 123,
'currencyId' => '<string>',
'customerTransactionReference' => '<string>',
'stagingStatus' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <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://payout-staging.embedly.ng/api/Payout/inter-bank-transfer"
payload := strings.NewReader("{\n \"destinationBankCode\": \"<string>\",\n \"destinationAccountNumber\": \"<string>\",\n \"destinationAccountName\": \"<string>\",\n \"sourceAccountNumber\": \"<string>\",\n \"sourceAccountName\": \"<string>\",\n \"remarks\": \"<string>\",\n \"amount\": 123,\n \"currencyId\": \"<string>\",\n \"customerTransactionReference\": \"<string>\",\n \"stagingStatus\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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://payout-staging.embedly.ng/api/Payout/inter-bank-transfer")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"destinationBankCode\": \"<string>\",\n \"destinationAccountNumber\": \"<string>\",\n \"destinationAccountName\": \"<string>\",\n \"sourceAccountNumber\": \"<string>\",\n \"sourceAccountName\": \"<string>\",\n \"remarks\": \"<string>\",\n \"amount\": 123,\n \"currencyId\": \"<string>\",\n \"customerTransactionReference\": \"<string>\",\n \"stagingStatus\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://payout-staging.embedly.ng/api/Payout/inter-bank-transfer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"destinationBankCode\": \"<string>\",\n \"destinationAccountNumber\": \"<string>\",\n \"destinationAccountName\": \"<string>\",\n \"sourceAccountNumber\": \"<string>\",\n \"sourceAccountName\": \"<string>\",\n \"remarks\": \"<string>\",\n \"amount\": 123,\n \"currencyId\": \"<string>\",\n \"customerTransactionReference\": \"<string>\",\n \"stagingStatus\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": "EMBe66029d4f6e2432a905a3642fa0dd380",
"statusCode": 200,
"code": "00",
"message": "Request is being processed.",
"succeeded": true
}
Payout
Inter Bank Transfer
This endpoint initiates a bank funds transfer from an Embedly wallet account within your organization, to an external bank account. (GTBank, OPAY, UBA, etc).
POST
/
api
/
Payout
/
inter-bank-transfer
Inter Bank Transfer
curl --request POST \
--url https://payout-staging.embedly.ng/api/Payout/inter-bank-transfer \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"destinationBankCode": "<string>",
"destinationAccountNumber": "<string>",
"destinationAccountName": "<string>",
"sourceAccountNumber": "<string>",
"sourceAccountName": "<string>",
"remarks": "<string>",
"amount": 123,
"currencyId": "<string>",
"customerTransactionReference": "<string>",
"stagingStatus": "<string>"
}
'import requests
url = "https://payout-staging.embedly.ng/api/Payout/inter-bank-transfer"
payload = {
"destinationBankCode": "<string>",
"destinationAccountNumber": "<string>",
"destinationAccountName": "<string>",
"sourceAccountNumber": "<string>",
"sourceAccountName": "<string>",
"remarks": "<string>",
"amount": 123,
"currencyId": "<string>",
"customerTransactionReference": "<string>",
"stagingStatus": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
destinationBankCode: '<string>',
destinationAccountNumber: '<string>',
destinationAccountName: '<string>',
sourceAccountNumber: '<string>',
sourceAccountName: '<string>',
remarks: '<string>',
amount: 123,
currencyId: '<string>',
customerTransactionReference: '<string>',
stagingStatus: '<string>'
})
};
fetch('https://payout-staging.embedly.ng/api/Payout/inter-bank-transfer', 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://payout-staging.embedly.ng/api/Payout/inter-bank-transfer",
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([
'destinationBankCode' => '<string>',
'destinationAccountNumber' => '<string>',
'destinationAccountName' => '<string>',
'sourceAccountNumber' => '<string>',
'sourceAccountName' => '<string>',
'remarks' => '<string>',
'amount' => 123,
'currencyId' => '<string>',
'customerTransactionReference' => '<string>',
'stagingStatus' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <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://payout-staging.embedly.ng/api/Payout/inter-bank-transfer"
payload := strings.NewReader("{\n \"destinationBankCode\": \"<string>\",\n \"destinationAccountNumber\": \"<string>\",\n \"destinationAccountName\": \"<string>\",\n \"sourceAccountNumber\": \"<string>\",\n \"sourceAccountName\": \"<string>\",\n \"remarks\": \"<string>\",\n \"amount\": 123,\n \"currencyId\": \"<string>\",\n \"customerTransactionReference\": \"<string>\",\n \"stagingStatus\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<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://payout-staging.embedly.ng/api/Payout/inter-bank-transfer")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"destinationBankCode\": \"<string>\",\n \"destinationAccountNumber\": \"<string>\",\n \"destinationAccountName\": \"<string>\",\n \"sourceAccountNumber\": \"<string>\",\n \"sourceAccountName\": \"<string>\",\n \"remarks\": \"<string>\",\n \"amount\": 123,\n \"currencyId\": \"<string>\",\n \"customerTransactionReference\": \"<string>\",\n \"stagingStatus\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://payout-staging.embedly.ng/api/Payout/inter-bank-transfer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"destinationBankCode\": \"<string>\",\n \"destinationAccountNumber\": \"<string>\",\n \"destinationAccountName\": \"<string>\",\n \"sourceAccountNumber\": \"<string>\",\n \"sourceAccountName\": \"<string>\",\n \"remarks\": \"<string>\",\n \"amount\": 123,\n \"currencyId\": \"<string>\",\n \"customerTransactionReference\": \"<string>\",\n \"stagingStatus\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"data": "EMBe66029d4f6e2432a905a3642fa0dd380",
"statusCode": 200,
"code": "00",
"message": "Request is being processed.",
"succeeded": true
}
Transaction Reference (transactionRef)
When a payout transaction is successfully submitted, atransactionRef is included in the response payload under the data object.Key Considerations:
- Store the
transactionRefsecurely on your end. It acts as the unique identifier for that specific transaction. - The
transactionRefcan be used to confirm the status of the transaction at a later time. - It is also essential for mapping webhook notifications to the correct payout transaction—especially for tracking successful debits.
Note:
On Staging environment, you must include the stagingStatus field in the request body. This allows you to simulate either a successful or failed payout. In both cases, a webhook notification will be sent indicating the outcome of the payout. On Production, you must skip this field entirely. Please ensure that you have configured your webhook URL on your staging dashboard in order to receive webhook notifications.string
required
Example:
000010string
required
Example:
1111111111string
required
Example:
Bruce Bannerstring
required
Example:
9666055662string
required
Example:
Tony Starkstring
required
Example:
Hello Worldinteger
required
Example:
100000string
required
Example:
3fa85f64-5717-4562-b3fc-2c963f66afa6string
Example:
3fa85f64-5717-4562-b3fc-2c963f66afa6string
The status of the staging process. Possible values are
success or failed.Note: This field doesn’t apply on production and
should be removed entirely.Example: success{
"data": "EMBe66029d4f6e2432a905a3642fa0dd380",
"statusCode": 200,
"code": "00",
"message": "Request is being processed.",
"succeeded": true
}
⌘I