Skip to main content
Songhai Exchange(SHE) is Fincode’s payment switching platform that facilitates cross-border transactions, enabling services such as bank transfers, mobile money payments, and wallet management across multiple currencies and countries.

Base URL

All API requests for the staging environment should be sent to:
https://api.stag.songhaiexchange.io

Authentication

The API uses OAuth2 for security.
  1. Generate Token: Call the POST /oauth/token endpoint using Basic Authentication (Client ID and Secret) along with your username and password.
  2. Make Requests: Use the returned access_token as a Bearer token in the Authorization header for all protected endpoints.
Authorization: Bearer <your_access_token>

Transaction Reference (PCN)

Every transaction is identified by a unique Reference Code (often referred to as PCN). This code is generated by you (the partner) and must be unique for every request. It is used to:
  • Track the status of a transaction.
  • Reconcile payments.

Reference Data

Transaction Types

Use these values for the transaction_type field.
ValueDescription
AIRTIME_TOPUPAirtime Top-up
ACCOUNTPAYMENTBank Transfer
ACCOUNTPAYMENT_DEBIT_CARDDebit Card
ACCOUNTPAYMENT_CREDIT_CARDCredit Card
CASHPICKUPCash Pickup
CURRENCY_CONVERTERBureau de Change
CRYPTO_CURRENCYCryptocurrency
BILL_PAYMENTBill Payment
WALLETWallet
MERCHANT_PRODUCTMerchant Product
MOBILE_MONEYMobile Money
MERCHANT_PAYMENTMerchant Payment

Transaction Purposes

Use these values for the transaction_purpose field.
ValueDescription
FAMILY_SUPPORTFamily support
EDUCATIONEducation
GIFT_AND_DONATIONGift and other donations
MEDICAL_TREATMENTMedical treatment
MAINTENANCE_EXPENSESMaintenance or other expenses
TRAVELTravel
SMALL_VALUE_REMITTANCESmall value remittance
LIBERALIZED_REMITTANCELiberalized remittance
OTHEROther purposes

Beneficiary Relationships

Common values for beneficiaryRelationship: FRIENDS, PARENTS, RELATIVES, SPOUSE, SIBLING, SELF, BUSINESS_PARTNER, etc.

Document Types

Documents required for KYC/Compliance.
Value
Passport
National Id
Driving License
Voter’s card
Proof of Address
Customer declaration form
Certificate of Incorporation
… (and others)

Response Statuses

The lifecycle status of a transaction.
StatusDescriptionLifecycle
SUCCESSInstruction successfully received.Incomplete
PAIDSuccessfully paid out to beneficiary.Completed
FAILEDProcessed but unsuccessful.Completed
PENDINGSent to beneficiary bank, awaiting confirmation.Incomplete
READY_TO_CALLQueued to be sent to beneficiary bank.Incomplete
PROCESSINGQueued for processing.Incomplete
CANCELInstruction canceled.Completed
ERRORTechnical issue occurred.Completed

Response Codes

Specific error or success codes returned in msg_code.
CodeStatusDescription
00PAIDPaid successfully
0000PENDINGAwaiting processing
0001FAILEDInvalid Bank Account Number
0002FAILEDRecipient Contact Details Invalid
0005FAILEDInvalid Bank Code
0030FAILEDInsufficient Funds
0042PENDINGReady to Call (Queued)
50004FAILEDUnknown Error / Transaction Failed

HTTP Status Codes

Client Errors
CodeDescription
400Bad Request
401Unauthorized
403Forbidden
404Not Found
429Too Many Requests (implied)
Server Errors
CodeDescription
500Internal Server Error
502Bad Gateway
503Service Unavailable
504Gateway Timeout