Skip to main content
Sends funds from your Hyparrow wallet to a recipient’s bank account. The amount is deducted from your wallet balance and forwarded to the recipient’s bank. A unique transfer code is generated and returned for status tracking.
You must have a registered API key and a funded wallet before initiating transfers. Use the Account Inquiry endpoint to verify the recipient’s account name before sending.

Authentication

x-api-key: your_api_key
x-api-secret: your_api_secret

Endpoint

POST https://api.hyparrow.com/api/v1/transfers/initiate

Request body

amount
string
required
The transfer amount in kobo. ₦1,000 = "100000".
recipientAccount
string
required
The recipient’s bank account number.
recipientBankCode
string
required
The recipient’s bank code. Obtain this from the List Banks endpoint.
recipientName
string
required
The recipient’s full name. Use the name returned by the Account Inquiry endpoint to ensure accuracy. Accepts formats such as Firstname Lastname or Firstname Middlename Lastname.
senderPhone
string
required
The sender’s phone number (e.g., 08012345678).
senderEmail
string
required
The sender’s email address.
senderLastname
string
required
The sender’s last name.
senderOthernames
string
required
The sender’s first name and any middle names.
narration
string
An optional description for the transfer (e.g., Invoice payment #1042). Appears on the recipient’s bank statement where supported.

Response

success
boolean
true when the transfer is accepted and wallet deducted.
message
string
Confirmation that the transfer was initiated and wallet debited.
data
object
Transfer result and tracking details.

Examples

curl -X POST https://api.hyparrow.com/api/v1/transfers/initiate \
  -H "Content-Type: application/json" \
  -H "x-api-key: your_api_key" \
  -H "x-api-secret: your_api_secret" \
  -d '{
    "amount": "100000",
    "recipientAccount": "0123456789",
    "recipientBankCode": "058",
    "recipientName": "Ada Chioma Okafor",
    "senderPhone": "08098765432",
    "senderEmail": "emeka.eze@example.com",
    "senderLastname": "Eze",
    "senderOthernames": "Emeka",
    "narration": "Invoice payment #1042"
  }'

Success response

{
  "success": true,
  "message": "Transfer initiated successfully and wallet debited",
  "data": {
    "TransferCode": "14531707684123456",
    "TransactionID": "f3a1b2c4-d5e6-7890-abcd-ef0987654321",
    "WalletBalance": 400000,
    "responseCode": "00",
    "responseDescription": "Approved"
  }
}

Error response (insufficient balance)

{
  "success": false,
  "error": "Insufficient wallet balance. Available: ₦500.00, Required: ₦1000.00"
}

Error response (no API client)

{
  "success": false,
  "error": "No API client found. Please create an API key first."
}
The transfer amount is deducted from your wallet and forwarded to the banking provider in a single step. If the wallet deduction succeeds but the transfer fails at the provider level, the transaction is flagged for reconciliation. Contact support with your TransferCode if you encounter this situation.