Download OpenAPI specification:
HoneePay is a social money platform where friends connect, share expenses, and exchange money using simple @usernames. No more awkward bank transfers - just seamless social payments.
This API allows merchants to integrate HoneePay into their applications for accepting payments from HoneePay users. To use this merchant API, you need to have a HoneePay business account and have an API public and secret key.
The API uses two types of authentication:
Initialize a new payment transaction using your public API key. This endpoint creates a payment transaction that customers can complete using their HoneePay wallet. The public key authentication is suitable for client-side initialization where the secret key should not be exposed.
Use cases:
Next steps: After initialization, you'll need to collect the customer's HoneePay handle and proceed to get their details.
| Content-Type | string Example: application/json |
| X-API-Key | string Example: {{public_key}} |
{- "amount": 500.5,
- "currency": "NGN",
- "description": "Payment for product order #12345",
- "metadata": {
- "order_id": "12345",
- "product_name": "Premium Widget"
},
}{ "statusCode": 200, "data": { "transaction_id": "adb107dd-00e3-4f48-873b-8396e2dfd37e", "reference": "MRC_LOJRWJM6Q5E5", "amount": 100.5, "currency": "NGN", "description": "Payment for product order #12345", "status": "pending", "merchant_name": "Updated Business Name", "created_at": "2026-03-17T09:36:35.000000Z", "expires_at": "2026-03-17T10:06:35.000000Z", "next_step": "customer_details_required", "authorization_url": "https://pay.honeepay.com/MRC_LOJRWJM6Q5E5" }, "message": "Transaction initialized successfully. Customer details required for payment." }
Initialize a new payment transaction using your secret API key. This provides enhanced security for payment initialization and is recommended for server-to-server communication. The secret key authentication ensures that only your backend can initiate payments.
Use cases:
Security: Always use this endpoint from your backend server, never from client-side code.
| Content-Type | string Example: application/json |
| X-API-Secret | string Example: {{secret_key}} |
{- "amount": 250.75,
- "currency": "USD",
- "description": "Premium subscription payment",
- "metadata": {
- "subscription_id": "SUB-789",
- "plan_type": "premium"
},
}{ "statusCode": 200, "data": { "transaction_id": "7e224e1c-d8bc-46ed-ad85-a6080c5f1fe3", "reference": "MRC_SJKOBIZPTIP5", "amount": 250.75, "currency": "USD", "description": "Premium subscription payment", "status": "pending", "merchant_name": "Updated Business Name", "created_at": "2026-03-17T09:38:33.000000Z", "expires_at": "2026-03-17T10:38:33.000000Z", "next_step": "customer_details_required", "authorization_url": "https://pay.honeepay.com/MRC_SJKOBIZPTIP5" }, "message": "Transaction initialized successfully. Customer details required for payment." }
Retrieve customer information and wallet balance for a specific transaction using their HoneePay handle. This endpoint validates the customer's account and checks if they have sufficient funds to complete the payment.
Information returned:
Payment flow decisions:
has_sufficient_balance: true → Ready for paymenthas_sufficient_balance: false → Customer needs to fund walletUse cases:
| transaction_reference required | string Example: MRC_PSQTRAREVQEF |
| Content-Type | string Example: application/json |
| X-API-Key | string Example: {{public_key}} |
| X-API-Secret | string Example: {{secret_key}} |
{- "customer_honeypay_handle": "mike"
}{ "statusCode": 200, "data": { "transaction_id": "adb107dd-00e3-4f48-873b-8396e2dfd37e", "reference": "MRC_LOJRWJM6Q5E5", "amount": "100.50", "currency": "NGN", "customer": { "honeypay_handle": "mike", "user_id": 1, "email": "mike@yopmail.com", "name": "mike" }, "wallet": { "balance": null, "currency": "NGN", "has_sufficient_balance": false, "balance_shortfall": 100.5 }, "next_step": "insufficient_funds", "message": "Customer needs to fund wallet before payment" }, "message": "Customer details retrieved successfully" }
Verify the status and details of a completed payment transaction using the transaction reference. This endpoint provides comprehensive information about the payment including all metadata, participant details, and balance changes.
Verification details include:
Use cases:
Security: Requires secret API key authentication to ensure only authorized merchants can verify transactions.
| transaction_reference required | string Example: MRC_PSQTRAREVQEF |
| X-API-Secret | string Example: {{secret_key}} |
{ "statusCode": 200, "data": { "transaction_id": "eef8416f-568a-4135-abcb-d7c29d6b533e", "reference": "MRC_PSQTRAREVQEF", "amount": "500.50", "currency": "NGN", "description": "Payment for product order #12345", "status": "completed", "gateway_reference": "HONEYPAY_WALLET_PMWTXLMF", "payment_intent_id": null, "charges": "0.00", "processed_at": "2026-03-17T09:52:20.000000Z", "created_at": "2026-03-17T09:51:42.000000Z", "updated_at": "2026-03-17T09:52:20.000000Z", "metadata": { "order_id": "12345", "product_name": "Premium Widget", "merchant_id": "78025b78-3300-461e-ae7e-3290014c46c0", "business_name": "Updated Business Name", "redirect_url": "https://yourwebsite.com/payment-success", "callback_url": "https://yourwebsite.com/payment-callback", "payment_method": "honeepay_wallet", "step": "completed", "customer_honeypay_handle": "mike", "customer_user_id": 1, "customer_email": "mike@yopmail.com", "customer_name": "mike", "amount_paid": "500.50", "total_deducted": 500.5, "customer_balance_before": 899.5, "customer_balance_after": "399.00", "merchant_balance_before": 100.5, "merchant_balance_after": "601.00" }, "merchant": { "merchant_id": "78025b78-3300-461e-ae7e-3290014c46c0", "business_name": "Updated Business Name", "business_email": "updated@business.com" } }, "message": "Payment verification successful" }
Retrieve the current status of a payment transaction. This is a lightweight endpoint for quickly checking if a payment is pending, completed, or failed without retrieving the full transaction details.
Status information:
Use cases:
Performance: Use this endpoint for frequent status checks as it returns minimal data compared to the full verification endpoint.
| transaction_reference required | string Example: MRC_PSQTRAREVQEF |
| X-API-Secret | string Example: {{secret_key}} |
{ "statusCode": 200, "data": { "reference": "MRC_PSQTRAREVQEF", "amount": "500.50", "currency": "NGN", "status": "completed", "description": "Payment for product order #12345", "step": "completed", "created_at": "2026-03-17T09:51:42.000000Z", "processed_at": "2026-03-17T09:52:20.000000Z" }, "message": "Transaction status retrieved successfully" }
Retrieve a paginated list of all transactions for your merchant account. This endpoint provides comprehensive transaction history with filtering capabilities for accounting, reporting, and reconciliation purposes.
Features:
Use cases:
Filtering options:
| status | string Example: status=completed Filter by transaction status |
| limit | integer Example: limit=10 Number of transactions per page |
| page | integer Example: page=1 Page number |
| Accept | string Example: application/json |
| X-API-Secret | string Example: {{secret_key}} |
{ "statusCode": 200, "data": { "data": [ { "id": "eef8416f-568a-4135-abcb-d7c29d6b533e", "reference": "MRC_PSQTRAREVQEF", "amount": "500.50", "currency": "NGN", "description": "Payment for product order #12345", "status": "completed", "customer_honeypay_handle": "mike", "customer_email": "mike@yopmail.com", "payment_method": "honeepay_wallet", "charges": "0.00", "processed_at": "2026-03-17T09:52:20.000000Z", "created_at": "2026-03-17T09:51:42.000000Z" }, { "id": "adb107dd-00e3-4f48-873b-8396e2dfd37e", "reference": "MRC_LOJRWJM6Q5E5", "amount": "100.50", "currency": "NGN", "description": "Payment for product order #12345", "status": "completed", "customer_honeypay_handle": "mike", "customer_email": "mike@yopmail.com", "payment_method": "honeepay_wallet", "charges": "0.00", "processed_at": "2026-03-17T09:49:51.000000Z", "created_at": "2026-03-17T09:36:35.000000Z" } ], "pagination": { "total": 2, "per_page": "10", "current_page": "1", "last_page": 1 } }, "message": "Merchant transactions retrieved successfully" }