Partner guide

Overview

Sample data
Why this exists

Help partners go from zero to production-ready.

RampKit is a practical guide for Daya partners. It explains the main API flows, shows safe sample responses, and helps teams debug common blockers before they need support.

Rates Chains NGN funding Crypto funding Transfers Deposits
9 Core flows
0 Real money moved
2 Rate directions
Core flows

What partners can test and learn

1

Supported chains

Check which chains and tokens are available before showing options to users.

2

Rates

Use the right rate direction: BUY for NGN funding, SELL for crypto funding.

3

NGN funding account

Create an NGN virtual account and display the exact amount to pay.

4

Crypto funding account

Create a crypto deposit address with bank resolution and payout tracking.

5

Transfers

Prepare outbound transfer requests with idempotency keys and recipient details.

6

Deposit events

Receive funding account and deposit events as money moves through the flow.

7

Balances and ledger

Understand collection balance, withdrawal balance, and partner-owned user ledgers.

8

Unstuck guide

Translate common API errors and partner questions into next actions.

9

Go-live checklist

Check KYB, dashboard access, webhooks, idempotency, fees, and support metadata.

Integration rules shown here

  • Never hard-code supported chains.
  • Use BUY for NGN funding and SELL for crypto funding.
  • Display the exact API-returned NGN funding amount.
  • Use idempotency keys for retryable money movement.
  • Do not duplicate payouts during processing delays.
  • Keep a partner-side user ledger.

How to use RampKit

Start at Overview, walk through each flow, then use Unstuck when something in an integration does not behave as expected. RampKit is designed to answer the common questions before they become support tickets.

  • Use the sample data to understand expected states.
  • Compare request previews with your backend implementation.
  • Use Unstuck for common errors, rate questions, and webhook delays.
Runtime checks

Currently supported chains and tokens

This list reflects current availability and can expand as more chains and tokens are enabled. Partners should still fetch supported chains at runtime before showing options to users. Direction matters: deposit-enabled tokens can receive crypto funding account deposits; withdraw-enabled tokens can be used for NGN funding account on-chain settlement.

Chain Token Deposit enabled Withdraw enabled Partner meaning
NGN to stablecoin

Create an NGN funding account

Fetch a BUY rate before creating an NGN funding account that settles onchain.
Create an NGN funding account to see exact payment details.

Request preview

Stablecoin to NGN

Create a crypto funding account

Fetch a SELL rate before creating a temporary crypto funding account with NGN payout.
Resolve the bank account before creating a crypto funding account with NGN payout.
Create a crypto funding account to see address and payout state.

Request preview

Withdrawal balance

Create a transfer request

Transfers are funded from withdrawal balance. Always resolve bank details first and include an idempotency key so retries do not create duplicate sends.

Create a transfer to see the request status and response.

Request preview

Async events

Deposit lifecycle event log

Funding accounts become active before deposits complete. Partners should listen for both funding account events and deposit events before updating their own ledger.

Local webhook receiver

Use this path as the webhook shape to implement in your own backend.

POST /api/webhooks/daya

Received webhook events

Fetch events received by the RampKit backend during this server session.

Support-ready state

Balances and reconciliation dashboard

Collection balance

Funding account deposits land here first. Partners credit users in their own ledger after webhook and API reconciliation.

Withdrawal balance

Transfers, payouts, and withdrawals are funded here. Move funds from collection balance before initiating outbound money movement.

API state

PENDING

The API resource has been created.

Webhook state

WAITING

No webhook has been received yet.

Partner ledger

NOT CREDITED

User balance has not changed.

What to send support

Common blockers

Get unstuck faster

Use this section when an integration behaves differently from what a partner expected. It turns common Daya support conversations into quick checks and next actions.

1

No funding address

If funding returns setup_status: NOT_STARTED, the merchant account is invited but not fully set up yet. The account setup endpoint or dashboard setup flow must be completed before deposit addresses can be generated.

2

Unsupported chain/token

Call supported chains at runtime before showing options. A token can be enabled for deposits, withdrawals, both, or neither.

3

Wrong rate direction

Use BUY when a customer pays NGN and receives stablecoins. Use SELL when a customer sends stablecoins and receives NGN.

4

Temporary rate expiry

Temporary funding accounts require a rate ID. The rate is locked for the temporary account window, currently 25 minutes.

5

Amount mismatch refund

For NGN funding, show the exact amount returned by the API. If the customer sends a different amount, the transaction may be refunded or handled as an amount mismatch.

6

Webhook not final yet

Do not treat an initiated or processing state as final. Reconcile API state, webhook state, and your own user ledger before crediting or retrying.

7

Offramp seems stuck

Provider delays can leave payouts in a disbursing state even after bank receipt. Keep polling or wait for the final webhook before duplicate action.

8

Pro app rate differs

The order book shows what market participants are bidding or offering. The external API rate is the rate Daya can execute within the rate expiry window.

9

Support escalation

Send request ID, customer ID, funding account ID, chain, token, rate ID, amount, webhook event ID, and timestamp when escalating.

Partner readiness

Go-live checklist

Access and setup

  • KYB approved for production access.
  • Dashboard invite accepted with the correct business email.
  • Production API keys generated and stored server-side only.
  • Webhook endpoint configured in the Daya dashboard.

Integration checks

  • Supported chains checked at runtime.
  • BUY and SELL rate directions handled correctly.
  • Exact NGN funding amount displayed without rounding.
  • Bank accounts resolved before NGN payouts and transfers.

Operational safety

  • Idempotency keys included on retryable requests.
  • Webhook signature verification implemented before production.
  • Partner ledger reconciles API state, webhook state, and user balances.
  • Support escalation includes request ID, funding account ID, chain/token, and webhook logs.

Partner UX

  • Fees, payout timing, and expected destination amount shown before confirmation.
  • Processing states shown honestly during provider delays.
  • Duplicate payouts blocked while final webhook is pending.
  • Minimum amount and fee edge cases tested before production.