Overview
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.
What partners can test and learn
Supported chains
Check which chains and tokens are available before showing options to users.
Rates
Use the right rate direction: BUY for NGN funding, SELL for crypto funding.
NGN funding account
Create an NGN virtual account and display the exact amount to pay.
Crypto funding account
Create a crypto deposit address with bank resolution and payout tracking.
Transfers
Prepare outbound transfer requests with idempotency keys and recipient details.
Deposit events
Receive funding account and deposit events as money moves through the flow.
Balances and ledger
Understand collection balance, withdrawal balance, and partner-owned user ledgers.
Unstuck guide
Translate common API errors and partner questions into next actions.
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.
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 |
|---|
Create an NGN funding account
Request preview
Create a crypto funding account
Request preview
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.
Request preview
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.
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
PENDINGThe API resource has been created.
Webhook state
WAITINGNo webhook has been received yet.
Partner ledger
NOT CREDITEDUser balance has not changed.
What to send support
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.
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.
Unsupported chain/token
Call supported chains at runtime before showing options. A token can be enabled for deposits, withdrawals, both, or neither.
Wrong rate direction
Use BUY when a customer pays NGN and receives stablecoins. Use SELL when a customer sends stablecoins and receives NGN.
Temporary rate expiry
Temporary funding accounts require a rate ID. The rate is locked for the temporary account window, currently 25 minutes.
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.
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.
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.
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.
Support escalation
Send request ID, customer ID, funding account ID, chain, token, rate ID, amount, webhook event ID, and timestamp when escalating.
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.