Skip to main content
POST
Create a sandbox deposit

Overview

This sandbox-only endpoint creates a mock deposit for an existing funding account. By default, Daya runs the simulated deposit through the same processing pipeline as a real deposit:
  • Deposit creation
  • Settlement to internal balance, onchain payout, or NGN payout
  • Webhook dispatch
You can also pass scenario to trigger a specific sandbox lifecycle outcome. Use scenarios when you need to confirm your app handles specific deposit states without waiting for the sandbox processor to produce them naturally. Use this to validate deposit processing and webhook handling before going to production. Create the receive instruction with /v1/funding-accounts, then pass the returned funding account id to this endpoint.
This endpoint is not available in production. Calls in production return 403 Not available in production.
For end-to-end guidance (recommended flow, what to validate, and common flagging scenarios), see Sandbox testing.

Authentication

X-Api-Key
string
required
Your merchant API key

Request Body

funding_account_id
string
required
Funding account ID to simulate a deposit for. Daya uses the funding account to decide whether the simulated deposit is NGN or crypto, and where settlement should go.Example: 6b0e8400-e29b-41d4-a716-446655440000
scenario
string
Optional sandbox lifecycle outcome to trigger.Allowed values:
  • PROCESSING
  • COMPLETED
  • REQUIRES_REVIEW
  • FAILED
Omit this field to use the default sandbox processing flow.

Request Examples

Response

Returns a confirmation message and the simulated deposit status. Use /v1/deposits and webhook events to track the simulated deposit.
  • message: Human-readable status message
  • deposit_id: Created deposit ID
  • status: Current deposit status
  • scenario: Scenario that was applied, if provided

Testing lifecycle outcomes

Use scenario to test the state machine in your integration:
Scenario outcomes are for testing a specific lifecycle state in sandbox. PROCESSING and COMPLETED still use the funding account’s active settlement destination, so the funding account must include any required rate_id, destination wallet, or destination bank details. To test the production-like settlement processor and any natural intermediate states, omit scenario.

Error Responses

This endpoint may return:
  • 400: Invalid request
  • 401: Unauthorized
  • 403: Not available in production
  • 404: Funding account not found
  • 500: Internal server error

Next Steps

Webhooks Overview

Verify your webhook handling with sandbox events

Sandbox testing

Recommended end-to-end sandbox flow + common flagging scenarios