bvn and kyc values that are required fields here.
Endpoint
Authentication
Pass your bearer JWT in theAuthorization header. Obtain a token from Generate Token.
Request body
The Shogun account number to debit. Must be an active account belonging to your business with sufficient balance to cover the transfer amount.
Name of the source account holder. This appears on the debit record.
Account number of the recipient. For inter-bank transfers this is the account number at the destination bank.
Full name of the recipient as returned by Name Enquiry in
data.account_name. Must match the registered name at the destination bank.Bank code of the recipient’s bank. Use
090823 for intra-bank (Payrep MFB) transfers. For inter-bank transfers use the recipient bank’s NIP code — retrieve the full list from Fetch Banks.Human-readable name of the recipient’s bank. Optional but recommended for your own records.
Transfer amount in NGN formatted as a decimal string (for example,
"5000.00"). Do not include currency symbols or commas. Minimum value is "1.00".Transfer mode. Use
intra for Payrep MFB-to-Payrep MFB transfers or inter for transfers to external Nigerian bank accounts via NIP.Your unique identifier for this transaction. Use this reference to query status via Transaction Status. Must be globally unique across all your transfers — the API rejects duplicate references.
Narration for the transaction. This text appears on the recipient’s bank statement. Use a value meaningful for reconciliation, such as an invoice or order identifier.
Bank Verification Number of the recipient, returned by Name Enquiry in
data.bvn. Required for inter-bank transfers.KYC level of the recipient, returned by Name Enquiry in
data.kyc. Pass the value directly — do not hardcode it.Request example
Responses
200 — Transfer initiated
Error — Insufficient funds
Error — Duplicate reference
Error — Provider unavailable
Response fields
Shogun’s internal identifier for this transaction. Store this alongside your own
reference_number for support queries.Your
reference_number echoed back. Use this to query the final status via Transaction Status.Amount transferred in NGN.
intra or inter, echoed from your request.Current status of the transfer. Possible values:
SUCCESSFUL, PENDING, FAILED.ISO 8601 timestamp of when the transfer was created.
Error codes
| Response code | Meaning |
|---|---|
00 | Success — transfer initiated |
50 | Duplicate reference number — use a unique reference_number per transfer |
51 | Insufficient balance on the source account |
80 | Core banking provider temporarily unavailable — retry with backoff |
83 | Provider rejected the transfer — check field values and retry |