Initiate a remittance payment

This API function is invoked by remittance customers to post requests for cross border remittance transaction(cross-border transaction). The recipient can receive money into mobile money account and bank accounts in the respective countries.

  1. Cross-border B2C Remittance transaction

This is Suitable for Mobile Money Payout Transactions B2C, Refunds that are cross border.

The source of funds will be a merchant Float account configured on our Payment Gateway. Therefore, the MSISDN and accountNumber can be similar.


  1. Cross-border bank payout Remittance transaction

Suitable for bank transfers. Unlike other payloads, bank transfers have a few extra parameters nested in the transactionDetails.

**destinationBankCode**- This is simply the target bank identified by its unique code to which funds will be disbursed. E.g., 000201.
**destinationBankName**- A unique name for the subject bank. E.g., GTBank plc.

**destinationAccountName**- This Should be the account holder's name to where money is being sent, known as the target account. E.g., John Doe

**destinationAccountNo**- This should be the unique account number for the target account receiving the disbursed funds.

Request

{
  "countryCode":"KE",
   "serviceCode":"KE-MPESA-REMITTANCE",
   "payerTransactionID":"{{$guid}}",
   "narration":"Remittance payout",
   "paymentDate":"2023-03-24 15:43:29",
   "credentials":{
      "username":"sandboxUser",
      "password":"sandboxPassword!"
   },
   "remitter":{
      "fullName":"Dorothy AKees",
      "email":"[email protected]",
      "address":"3068 KesslaWay Street",
      "phoneNumber":"8433606258",
      "idType":"SocialSecurityNumber",
      "idNumber":"657-18-9292",
      "idIssuePlace":"Nairobi",
      "idIssueDate":"1997/01/03",
      "idExpireDate":"1997/01/03",
      "nationality":"Kenyan",
      "dateOfBirth":"1997/01/03",
      "country":"US",
      "financialInstitution":"FooCreditUnion",
      "sourceOfFunds":"Business",
      "principalActivity":"Business",
      "state":"california",
      "city":"Nairobi",
      "postalCode":"00100",
      "zipCode":"18291",
      "relationshipWithRecipient":"sister"
   },
   "recipient":{
      "fullName":"John Doe",
      "phoneNumber":"254782694441"
   },
   "transactionDetails":{
      "sourceCurrrency":"USD",
      "destinationCurrency":"KES",
      "conversionRate":"0.08882",
      "localCurrencyAmount":14000.00,
      "foreignCurrencyAmount":100,
      "purposeOfRemmittance":"monthly allowance",
      "sourceCountryCode":"US",
      "destinationCountryCode":"KE"
   },
   "extraData":{
      "callbackUrl":""
   }
}
{
  "countryCode":"KE",
   "serviceCode":"KE-MPESA-REMITTANCE",
   "payerTransactionID":"{{$guid}}",
   "narration":"Remittance bank payout",
   "paymentDate":"2023-03-24 15:43:29",
   "credentials":{
      "username":"sandboxUser",
      "password":"sandboxPassword!"
   },
   "remitter":{
      "fullName":"Dorothy AKees",
      "email":"[email protected]",
      "address":"3068KesslaWay",
      "phoneNumber":"8433606258",
      "idType":"SocialSecurityNumber",
      "idNumber":"657-18-9292",
      "idIssuePlace":"Nairobi",
      "idIssueDate":"19970103",
      "idExpireDate":"19970103",
      "nationality":"Kenyan",
      "dateOfBirth":"19970103",
      "country":"US",
      "financialInstitution":"FooCreditUnion",
      "sourceOfFunds":"Business",
      "principalActivity":"Business",
      "state":"california",
      "city":"Nairobi",
      "postalCode":"00100",
      "zipCode":"18291",
      "relationshipWithRecipient":"sister"
   },
   "recipient":{
      "fullName":"John Doe",
      "destinationAccountName":"John Doe",
      "destinationAccountNo":"0122000000",
      "destinationBank":"KCBBank",
      "destinationBankCode":"11011",
      "phoneNumber":"254782694441"
   },
   "transactionDetails":{
      "sourceCurrrency":"USD",
      "destinationCurrency":"KES",
      "conversionRate":"0.08882",
      "localCurrencyAmount":14000.00,
      "foreignCurrencyAmount":100,
      "purposeOfRemmittance":"monthly allowance",
      "sourceCountryCode":"US",
      "destinationCountryCode":"KE"
   },
   "extraData":{
      "callbackUrl":""
   }
}
ParameterTypeDescriptionRequired
countryCodeStringCountry ISO code.Yes
serviceCodeStringCode of the service being consumedYes
payerTransactionIDStringMerchant unique identifierYes
narrationStringDescriptionNo
credentialsObject
credentials.usernameMerchant's usernameYes
credentials.passwordMerchant's passwordYes
remitterObject
remitter.fullNameStringSender's nameYes
remitter.emailStringSender's email addressYes
remitter.addressStringPermanent address of the sender
NB : Should be 64 characters, extra characters will be truncated during processing
Yes
remitter.phoneNumberStringSender's phone numberYes
remitter.idTypeStringSender's Identification e.g. Passport,NationalIDYes
remitter.idNumberStringSender's Identification numberYes
remitter.idIssuePlaceStringSender's Identification place of issueYes
remitter.idIssueDateStringSender's Identification date of issue format yy/MM/dd e.g. 1997/01/03Yes
remitter.idExpireDateStringSender's Identification expiry date format yy/MM/dd e.g. 1997/01/03.Yes
remitter.nationalityStringSender's country of origin as indicated on their Identification document e.g KenyanYes
remitter.dateOfBirthStringDate of birth in format yy/MM/dd e.g. 1997/01/03Yes
remitter.countryStringSender's country of residence e.g. USYes
remitter.financialInstitutionStringSender's financial institutionYes
remitter.sourceOfFundsStringSender's source of fundsYes
remitter.principalActivityStringSender's principal activityYes
remitter.stateStringSender's stateYes
remitter.cityStringSender's cityYes
remitter.postalCodeStringSender's postal codeYes
remitter.zipCodeStringSender's zip codeYes
remitter.relationshipWithRecipientStringSender's relationship with clientYes
recipientObject
recipient.fullNameStringRecipient's full nameYes
recipient.emailAddressStringRecipient's email addressYes
recipient.addressStringRecipient's addressYes
recipient.destinationAccountNameStringRecipient's destination account nameYes
recipient.accountNumberStringRecipient's account numberYes
recipient.phoneNumberStringRecipient's phone number in format 2547xxxxxxxxYes
recipient.idTypeStringRecipient's Identification typeYes
recipient.idNumberStringRecipient's Identification numberYes
recipient.financialInstitutionStringRecipient's financial institution e.g. KCB BankYes
recipient.institutionIdentifierStringRecipient's Institution IdentifierYes
recipient.institutionBranchStringRecipient's Institution branch e.g. NakuruYes
recipient.countryCodeStringRecipient's country code e.g. KEYes
recipient.nationalityStringRecipient's nationalityYes
transactionDetailsObject
transactionDetails.sourceCurrrencyStringTransaction source currency e.g. USDYes
transactionDetails.destinationCurrencyStringTransaction destination currency e.g. KESYes
transactionDetails.conversionRateDoubleTransaction conversion rateYes
transactionDetails.amountToSendDoubleAmount to sendYes
transactionDetails.purposeOfRemmittanceStringPurpose of money transferYes
transactionDetails.sourceCountryCodeStringSource country code e.g. USYes
transactionDetails.destinationCountryCodeStringDestinations country code e.g. KEYes
extraDataObject

Response

{
    "authStatus": {
        "authStatusCode": 131,
        "authStatusDescription": "Authentication was successful"
    },
    "results": [
        {
            "statusCode": 139,
            "statusDescription": "Payment pending acknowledgement",
            "payerTransactionID": "yourUniqueID",
            "beepTransactionID": 10324841472
        }
    ]
}

Remittance Status codes

statusCodestatusDescription
104Generic exception occurred with matching appropriate description
106Inactive service
109Customer MSISDN missing
110Invalid Customer MSISDN
111Invalid invoice amount
115Invalid currency code specified
120Account number not specified
139Payment posted successfully and pending acknowledgement.
146Invoice does not exist
167Invalid serviceID
174Generic failure occurred with appropriate status description
229Duplicate payment found
230Insufficient Float Balance
231Amount specified is greater than maximum allowed for service
232Amount specified is less than minimum allowed for service
Language
Click Try It! to start a request and see the response here!