Skip to main content
POST
/
v1
/
global-payout
/
transfer
/
authorize
cURL
curl --request POST \
  --url https://api.nomba.com/v1/global-payout/transfer/authorize \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: application/json' \
  --header 'accountId: <accountid>' \
  --data '
{
  "amount": 500,
  "sourceCurrency": "USD",
  "destinationCurrency": "USD",
  "receiverName": "John Cena",
  "sourceCountryIsoCode": "CD",
  "destinationCountryIsoCode": "CD",
  "authCode": "2580",
  "paymentMethod": "MobileMoney",
  "accountType": "INDIVIDUAL",
  "accountNumber": "0903086112",
  "institutionCode": "access_bank",
  "institutionName": "Mpesa",
  "bankAccountType": "CHECKING",
  "purposeOfPayment": "FAMILY_SUPPORT",
  "narration": "Family support",
  "lockedExchangeRateId": "01k7pcakf0t8g03rvny3z5mr1p",
  "bankAddress": "383 Madison Avenue",
  "bankCity": "New York",
  "bankState": "NY",
  "bankZipCode": "10017",
  "beneficiary": {
    "beneficiaryEmail": "[email protected]",
    "securityQuestion": "What is your pets name?",
    "securityQuestionAnswer": "Fluffy",
    "transitNumber": "<string>",
    "beneficiaryAddress": "123 Main Street",
    "beneficiaryCity": "New York",
    "beneficiaryState": "NY",
    "beneficiaryPostCode": "10001"
  }
}
'
import requests

url = "https://api.nomba.com/v1/global-payout/transfer/authorize"

payload = {
"amount": 500,
"sourceCurrency": "USD",
"destinationCurrency": "USD",
"receiverName": "John Cena",
"sourceCountryIsoCode": "CD",
"destinationCountryIsoCode": "CD",
"authCode": "2580",
"paymentMethod": "MobileMoney",
"accountType": "INDIVIDUAL",
"accountNumber": "0903086112",
"institutionCode": "access_bank",
"institutionName": "Mpesa",
"bankAccountType": "CHECKING",
"purposeOfPayment": "FAMILY_SUPPORT",
"narration": "Family support",
"lockedExchangeRateId": "01k7pcakf0t8g03rvny3z5mr1p",
"bankAddress": "383 Madison Avenue",
"bankCity": "New York",
"bankState": "NY",
"bankZipCode": "10017",
"beneficiary": {
"beneficiaryEmail": "[email protected]",
"securityQuestion": "What is your pets name?",
"securityQuestionAnswer": "Fluffy",
"transitNumber": "<string>",
"beneficiaryAddress": "123 Main Street",
"beneficiaryCity": "New York",
"beneficiaryState": "NY",
"beneficiaryPostCode": "10001"
}
}
headers = {
"Authorization": "<authorization>",
"accountId": "<accountid>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {
Authorization: '<authorization>',
accountId: '<accountid>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
amount: 500,
sourceCurrency: 'USD',
destinationCurrency: 'USD',
receiverName: 'John Cena',
sourceCountryIsoCode: 'CD',
destinationCountryIsoCode: 'CD',
authCode: '2580',
paymentMethod: 'MobileMoney',
accountType: 'INDIVIDUAL',
accountNumber: '0903086112',
institutionCode: 'access_bank',
institutionName: 'Mpesa',
bankAccountType: 'CHECKING',
purposeOfPayment: 'FAMILY_SUPPORT',
narration: 'Family support',
lockedExchangeRateId: '01k7pcakf0t8g03rvny3z5mr1p',
bankAddress: '383 Madison Avenue',
bankCity: 'New York',
bankState: 'NY',
bankZipCode: '10017',
beneficiary: {
beneficiaryEmail: '[email protected]',
securityQuestion: 'What is your pets name?',
securityQuestionAnswer: 'Fluffy',
transitNumber: '<string>',
beneficiaryAddress: '123 Main Street',
beneficiaryCity: 'New York',
beneficiaryState: 'NY',
beneficiaryPostCode: '10001'
}
})
};

fetch('https://api.nomba.com/v1/global-payout/transfer/authorize', 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.nomba.com/v1/global-payout/transfer/authorize",
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([
'amount' => 500,
'sourceCurrency' => 'USD',
'destinationCurrency' => 'USD',
'receiverName' => 'John Cena',
'sourceCountryIsoCode' => 'CD',
'destinationCountryIsoCode' => 'CD',
'authCode' => '2580',
'paymentMethod' => 'MobileMoney',
'accountType' => 'INDIVIDUAL',
'accountNumber' => '0903086112',
'institutionCode' => 'access_bank',
'institutionName' => 'Mpesa',
'bankAccountType' => 'CHECKING',
'purposeOfPayment' => 'FAMILY_SUPPORT',
'narration' => 'Family support',
'lockedExchangeRateId' => '01k7pcakf0t8g03rvny3z5mr1p',
'bankAddress' => '383 Madison Avenue',
'bankCity' => 'New York',
'bankState' => 'NY',
'bankZipCode' => '10017',
'beneficiary' => [
'beneficiaryEmail' => '[email protected]',
'securityQuestion' => 'What is your pets name?',
'securityQuestionAnswer' => 'Fluffy',
'transitNumber' => '<string>',
'beneficiaryAddress' => '123 Main Street',
'beneficiaryCity' => 'New York',
'beneficiaryState' => 'NY',
'beneficiaryPostCode' => '10001'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: application/json",
"accountId: <accountid>"
],
]);

$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.nomba.com/v1/global-payout/transfer/authorize"

payload := strings.NewReader("{\n \"amount\": 500,\n \"sourceCurrency\": \"USD\",\n \"destinationCurrency\": \"USD\",\n \"receiverName\": \"John Cena\",\n \"sourceCountryIsoCode\": \"CD\",\n \"destinationCountryIsoCode\": \"CD\",\n \"authCode\": \"2580\",\n \"paymentMethod\": \"MobileMoney\",\n \"accountType\": \"INDIVIDUAL\",\n \"accountNumber\": \"0903086112\",\n \"institutionCode\": \"access_bank\",\n \"institutionName\": \"Mpesa\",\n \"bankAccountType\": \"CHECKING\",\n \"purposeOfPayment\": \"FAMILY_SUPPORT\",\n \"narration\": \"Family support\",\n \"lockedExchangeRateId\": \"01k7pcakf0t8g03rvny3z5mr1p\",\n \"bankAddress\": \"383 Madison Avenue\",\n \"bankCity\": \"New York\",\n \"bankState\": \"NY\",\n \"bankZipCode\": \"10017\",\n \"beneficiary\": {\n \"beneficiaryEmail\": \"[email protected]\",\n \"securityQuestion\": \"What is your pets name?\",\n \"securityQuestionAnswer\": \"Fluffy\",\n \"transitNumber\": \"<string>\",\n \"beneficiaryAddress\": \"123 Main Street\",\n \"beneficiaryCity\": \"New York\",\n \"beneficiaryState\": \"NY\",\n \"beneficiaryPostCode\": \"10001\"\n }\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "<authorization>")
req.Header.Add("accountId", "<accountid>")
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.nomba.com/v1/global-payout/transfer/authorize")
.header("Authorization", "<authorization>")
.header("accountId", "<accountid>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 500,\n \"sourceCurrency\": \"USD\",\n \"destinationCurrency\": \"USD\",\n \"receiverName\": \"John Cena\",\n \"sourceCountryIsoCode\": \"CD\",\n \"destinationCountryIsoCode\": \"CD\",\n \"authCode\": \"2580\",\n \"paymentMethod\": \"MobileMoney\",\n \"accountType\": \"INDIVIDUAL\",\n \"accountNumber\": \"0903086112\",\n \"institutionCode\": \"access_bank\",\n \"institutionName\": \"Mpesa\",\n \"bankAccountType\": \"CHECKING\",\n \"purposeOfPayment\": \"FAMILY_SUPPORT\",\n \"narration\": \"Family support\",\n \"lockedExchangeRateId\": \"01k7pcakf0t8g03rvny3z5mr1p\",\n \"bankAddress\": \"383 Madison Avenue\",\n \"bankCity\": \"New York\",\n \"bankState\": \"NY\",\n \"bankZipCode\": \"10017\",\n \"beneficiary\": {\n \"beneficiaryEmail\": \"[email protected]\",\n \"securityQuestion\": \"What is your pets name?\",\n \"securityQuestionAnswer\": \"Fluffy\",\n \"transitNumber\": \"<string>\",\n \"beneficiaryAddress\": \"123 Main Street\",\n \"beneficiaryCity\": \"New York\",\n \"beneficiaryState\": \"NY\",\n \"beneficiaryPostCode\": \"10001\"\n }\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.nomba.com/v1/global-payout/transfer/authorize")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["accountId"] = '<accountid>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": 500,\n \"sourceCurrency\": \"USD\",\n \"destinationCurrency\": \"USD\",\n \"receiverName\": \"John Cena\",\n \"sourceCountryIsoCode\": \"CD\",\n \"destinationCountryIsoCode\": \"CD\",\n \"authCode\": \"2580\",\n \"paymentMethod\": \"MobileMoney\",\n \"accountType\": \"INDIVIDUAL\",\n \"accountNumber\": \"0903086112\",\n \"institutionCode\": \"access_bank\",\n \"institutionName\": \"Mpesa\",\n \"bankAccountType\": \"CHECKING\",\n \"purposeOfPayment\": \"FAMILY_SUPPORT\",\n \"narration\": \"Family support\",\n \"lockedExchangeRateId\": \"01k7pcakf0t8g03rvny3z5mr1p\",\n \"bankAddress\": \"383 Madison Avenue\",\n \"bankCity\": \"New York\",\n \"bankState\": \"NY\",\n \"bankZipCode\": \"10017\",\n \"beneficiary\": {\n \"beneficiaryEmail\": \"[email protected]\",\n \"securityQuestion\": \"What is your pets name?\",\n \"securityQuestionAnswer\": \"Fluffy\",\n \"transitNumber\": \"<string>\",\n \"beneficiaryAddress\": \"123 Main Street\",\n \"beneficiaryCity\": \"New York\",\n \"beneficiaryState\": \"NY\",\n \"beneficiaryPostCode\": \"10001\"\n }\n}"

response = http.request(request)
puts response.read_body
{
  "code": "00",
  "description": "Successful",
  "data": {
    "wtTransactionId": "01kky197w3xc6wyjenpc5r0tnp",
    "coreTransactionId": "API-FX_TX_DR-08A1B-6add611a-e538-4e67-bcf9-661c77a16804",
    "status": "PROCESSING",
    "coreStatus": "PAYMENT_SUCCESSFUL",
    "type": "TRANSFER",
    "prettyStatus": "Successful",
    "meta": {
      "source_amount": "250.0",
      "destination_amount": "250.0",
      "source_currency": "USD",
      "destination_currency": "USD",
      "amount_charged": "255.0",
      "currency_pair_name": "USD/USD",
      "payment_method": "MobileMoney",
      "destination_country": "CD",
      "destination_country_name": "Congo DR",
      "source_country": "CD",
      "narration": "Family support",
      "trade_side": "BUY",
      "spread_amount": "0.0",
      "spread_currency": "USD",
      "wt_transaction_id": "01kky197w3xc6wyjenpc5r0tnp",
      "trade_context": "default",
      "transactionCategory": "General",
      "payment_destination_type": "Account",
      "tradeType": "FIXED_TRADE"
    }
  }
}

Headers

Authorization
string
required

Bearer token for authentication.

Example:

"Bearer <token>"

accountId
string
required

The parent accountId of the business.

Example:

"890022ce-bae0-45c1-9b9d-ee7872e6ca27"

Body

application/json

Transfer authorization payload

amount
number
required
Example:

500

sourceCurrency
string
required
Example:

"USD"

destinationCurrency
string
required
Example:

"USD"

receiverName
string
required
Example:

"John Cena"

sourceCountryIsoCode
string
required
Example:

"CD"

destinationCountryIsoCode
string
required
Example:

"CD"

authCode
string<password>
required
Example:

"2580"

paymentMethod
enum<string>
required

Payment rail. Determines which additional fields are required. Use Fetch Payment Methods with code or name to get method-specific requirements.

Available options:
BANK,
MobileMoney,
INTERAC,
FASTER_PAYMENTS,
SEPA,
ACH,
WIRE
Example:

"MobileMoney"

accountType
enum<string>
required

Required account type of the recipient. Select one of the values returned in accountTypes from Fetch Payment Methods. ACH supports only INDIVIDUAL; WIRE supports INDIVIDUAL and CORPORATE.

Available options:
INDIVIDUAL,
CORPORATE
Example:

"INDIVIDUAL"

accountNumber
string

Account number, IBAN, or phone number for MobileMoney. Required for BANK, MobileMoney, FASTER_PAYMENTS, SEPA.

Example:

"0903086112"

institutionCode
string

Routing code. Bank code from /bank/providers for BANK (DRC). Sort code for FASTER_PAYMENTS, SWIFT/BIC for SEPA, institution number for BANK (Canada).

Example:

"access_bank"

institutionName
string

Bank or provider display name. Use displayName from List Institution Providers.

Example:

"Mpesa"

bankAccountType
enum<string>

Recipient bank account type. Required for ACH and WIRE. Select one of the values returned in bankAccountTypes from Fetch Payment Methods.

Available options:
CHECKING,
SAVINGS
Example:

"CHECKING"

purposeOfPayment
string

Reason for the transfer. Required for ACH, WIRE, and SEPA. Select one of the values returned in purposeOfPayments from Fetch Payment Methods; do not send arbitrary text.

Example:

"FAMILY_SUPPORT"

narration
string
Example:

"Family support"

lockedExchangeRateId
string

Optional locked exchange rate ID from Convert Money. Use this when you want to lock the exchange rate and destination amount before authorizing.

Example:

"01k7pcakf0t8g03rvny3z5mr1p"

bankAddress
string

Bank street address. Required for United States WIRE.

Example:

"383 Madison Avenue"

bankCity
string

Bank city. Required for United States WIRE.

Example:

"New York"

bankState
string

Bank state. Required for United States WIRE.

Example:

"NY"

bankZipCode
string

Bank ZIP code. Required for United States WIRE.

Example:

"10017"

beneficiary
object

Required for INTERAC; partially required for BANK (Canada).

Response

200 - application/json

Transfer authorized successfully.

code
string
Example:

"00"

description
string
Example:

"Successful"

data
object