Pay.so Core
Core v0
Search
K
Comment on page

Sandbox Special Moves

Only used when developing in Sandbox
When developing on the staging server, you can ping these endpoints to simulate a KYB/C check passing or a Payment Detail being approved.

Update the status of a User's KYC application

Note: only the status attribute can be updated to one of the values listed here. If you want to clear the User, set status to approved.
curl https://{{base_url}}/sandbox/users/:user_id/kycs
-X PATCH \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-type: application/json"
-d '{
"kyc": {
"status": "approved"
}
}'

Update the status of a Payment Detail

Note: only the status attribute can be updated to one of the values listed here. If you flip the status to approved any pending Outstanding Actions associated with the Payment Detail will be marked and verified as complete.
curl https://{{base_url}}/sandbox/users/:user_id/payment_details/:payment_detail_id
-X PATCH \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-type: application/json"
-d '{
"payment_detail": {
"status": "approved"
}
}'

Simulate Webhooks

Sometimes you want to test webhook handling without having to perform the actions necessary to trigger a webhook firing. This endpoint will return a payload in response to your request, but will then also send an asynchronous response to your defined callback URL. You can use this endpoint to trigger web-hooks with a variety of statuses to test how your integration will handle them. To test against specific objects you can also send a UUID for offramp_id, user_id or payment_detail_id. The payload we return will reflect the specified UUID for that attribute.
curl https://{{base_url}}/sandbox/webhook?webhook_type=WEBHOOK_TYPE&status=STATUS&user_id=USER_ID&payment_detail_id=PAYMENT_DETAIL_ID&offramp_id=OFFRAMP_ID
-X GET \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-type: application/json"

Query Params

Possible values for webhook_type
Possible values for statuses
kyc
"not_started", "initiated", "pending_assessment", "application_queued", "awaiting_manual_review", "retry_required", "retry_denied", "approved", "failed"
payment_detail
"initiated", "approved", "pending", "failed"
offramp
"initiated", "pending_internal_assessment", "sending_fiat", "ongoing_checks", "fiat_sent", "failed"

Using the Goerli network

When using the staging environment, you can specify your Offramp to have a blockchain value of ethereum and anetworkvalue of goerli.
With these values submitted, you can also submit a tx_id of a transaction on the Goerli network for validation.
Last modified 4mo ago