Skip to main content
POST
/
test
/
intents
/
{id}
/
simulate
Simulate a state transition
curl --request POST \
  --url https://api.cherp.dev/v1/test/intents/{id}/simulate \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "targetState": "confirmed",
  "failureReason": "insufficient_balance"
}
'
{
  "intent": {
    "id": "pi_abc123def456ghij",
    "chain": "solana:5eykt4UsFv8P8NJdTREpY1vzqKq2Kvdp",
    "token": "USDC",
    "amount": "10.50",
    "requestor": "<string>",
    "direction": "request",
    "state": "created",
    "reference": "<string>",
    "expiresAt": "2023-11-07T05:31:56Z",
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z",
    "livemode": true,
    "idempotencyKey": "<string>",
    "tokenAddress": "<string>",
    "amountBaseUnits": "<string>",
    "fulfiller": "<string>",
    "retryRequired": true,
    "pendingAtExpiry": true,
    "txSignature": "<string>",
    "detectedAt": "2023-11-07T05:31:56Z",
    "ataRentLamports": 123,
    "ttlSeconds": 86400,
    "confirmedAt": "2023-11-07T05:31:56Z",
    "finalizedAt": "2023-11-07T05:31:56Z",
    "metadata": {},
    "refundedBy": "<string>",
    "refundOf": "<string>"
  }
}

Authorizations

Authorization
string
header
required

API key. Use pk_live_* for production or pk_test_* for test mode.

Path Parameters

id
string
required

The Payment Intent ID

Body

application/json
targetState
enum<string>
required

The state to transition to

Available options:
confirmed,
failed,
expired,
dropped
failureReason
enum<string>

Optional failure reason when targeting failed state

Available options:
insufficient_balance,
revert,
slippage

Response

State transition simulated

intent
object