Skip to content

Suggested

Dashboard

RecipesSimulate a payment

Simulate a payment

Close a payment lifecycle in sandbox without a real provider by triggering a simulated fund receipt.

In sandbox, payment providers never transfer real funds, so a payment created and captured stays in CAPTURED indefinitely. Use POST /simulate/payment to fire a synthetic provider webhook that advances the transaction to RECEIVED and then SETTLED — the same path a real payment takes.

Attention

This endpoint is only available in sandbox. Calling it in production returns 403.

01
Create payment

Create and capture the payment as usual.

02
Simulate receipt

Call POST /simulate/payment with the payment ID.

03
Wait for SETTLED

The transaction advances within a few seconds.

04
Handle webhook

Your webhook endpoint receives the final state event.

Follow the standard Create a payment flow. Once the payment reaches CREATED or AUTHORIZED, proceed to the simulation step.

Request
POST /sandbox/simulate/payment HTTP/1.1
Host: api.conomyhq.com
x-api-key: {YOUR_API_KEY}
Authorization: Bearer {ACCESS_TOKEN}
conomyhq-api-version: 24-04-2025
User-Agent: MyApp/1.0
Content-Type: application/json
Accept: application/json

{
  "transactionId": "<PAYMENT_ID>",
  "amount": "10000"
}
Response
{
  "ok": true,
  "transactionId": "<PAYMENT_ID>",
  "simulatedAmount": "10000",
  "currency": "ARS",
  "message": "Payment simulated successfully. The transaction should advance to SETTLED within a few seconds.",
  "reference": "sandbox-sim-1716220800000-x7k3m2"
}
Note

amount is optional. Omitting it defaults to "5000". The value does not need to match the original payment amount — it represents the amount the simulated provider reports as received.

Poll the payment until the status reaches SETTLED, or wait for the webhook event your endpoint is subscribed to.

Request
GET /sandbox/payments/{PAYMENT_ID} HTTP/1.1
Host: api.conomyhq.com
x-api-key: {YOUR_API_KEY}
Authorization: Bearer {ACCESS_TOKEN}
conomyhq-api-version: 24-04-2025
User-Agent: MyApp/1.0
Accept: application/json
Response
{
  "id": "<PAYMENT_ID>",
  "status": "SETTLED",
  "settledAt": "2026-05-18T10:02:11Z"
}
StatusCauseFix
400transactionId missing or body invalidInclude transactionId in the request body.
403Called in productionOnly available in sandbox.
422Payment not in CREATED or AUTHORIZEDVerify the payment status before simulating.