Payments
Paystack (Your Account)
target_app: "paystack_platform" · endpoint /v1/messaging/execute · Bring your own credentials
Setup
This is YOUR OWN Paystack account, used to accept payments through your app — separate from eConnect's own billing (which uses eConnect's Flutterwave account, not this).
Credentials needed on your Connections page
Actions
initialize_transaction
Start a payment — amount is in kobo (smallest unit).
Request body:
{
"user_id": "...",
"action": "initialize_transaction",
"payload": { "email": "buyer@example.com", "amount": 500000, "metadata": { "order_id": "123" } },
"target_app": "paystack_platform"
}provider_response.result shape:
{ "data": { "authorization_url": "https://checkout.paystack.com/...", "reference": "..." } }verify_transaction
Confirm a transaction actually succeeded (always do this before fulfilling an order).
Request body:
{
"user_id": "...",
"action": "verify_transaction",
"payload": { "reference": "abc123xyz" },
"target_app": "paystack_platform"
}provider_response.result shape:
{ "data": { "status": "success", "amount": 500000 } }Anticipated errors & fixes
401 Unauthorized (inside provider_response)
Cause: Secret key is wrong, or you pasted the Public key instead of the Secret key.
Fix: Copy the Secret Key (not Public) from Paystack → Settings → API Keys & Webhooks.
Amount charged looks 100x too small/large
Cause: Paystack amounts are in kobo, not naira — a common off-by-100 mistake.
Fix: Multiply your naira amount by 100 before sending (₦5,000 → 500000).
401 "Unauthorized: Invalid API key."
Cause: Your eConnect Authorization header is missing, malformed, or the key was regenerated/revoked.
Fix: Copy your api_key fresh from the eConnect dashboard and confirm the header reads exactly "Authorization: Bearer <key>".
429 "Too many requests"
Cause: You've exceeded your plan's per-minute rate limit.
Fix: Wait a minute and retry, or upgrade your plan for a higher per-minute limit.
429 "Monthly API limit exceeded"
Cause: You've used your plan's full monthly request allowance.
Fix: Wait for your next billing cycle reset, or upgrade to a plan with a higher monthly limit.