← All platforms

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

api_keySecret Key. Find it: dashboard.paystack.com/#/settings/developer

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.

← Back to all platforms