Simulate payment
PaymentsAPI REFERENCE

Simulate payment

POST/v1/payments/{paymentId}/simulate

Simulate a payment status transition. Available for test-coin assets only.

Example request

A minimal request you can copy and run.

curl -X POST https://api.suward.com/v1/payments/<payment_id>/simulate \
-H "X-Api-Key: $SUWARD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"status":"success","subStatus":"completed"}'

Path Parameters

NameTypeRequiredDescription
paymentIdstringyesPayment ID

Request body

NameTypeRequiredDescription
amountstringnoOptional simulated received amount, integer string in the asset's smallest unit (see CreatePaymentRequest.amount).
statusnoTarget main status. Required — status and subStatus are independent axes, both must be supplied.
subStatusnoTarget sub-status (amount/detail axis). Required — status and subStatus are independent axes, both must be supplied.
Request · JSON
{
"status": "success",
"subStatus": "completed"
}

Response

NameTypeRequiredDescription
acceptedAtintegernoUnix-milliseconds timestamp when the payment reached the accepted state (safe confirmations, balance credited). Null before acceptance.
activatedAtintegernoUnix-milliseconds timestamp when the payment was activated and its payment window began counting. Null before activation.
activationFlowSecondsintegernoResolved activation grace period, in seconds. Null when not configured.
addressstringnoOn-chain deposit address the customer must send funds to. Null until the payment is activated and an address is assigned.
amountstringnoInteger string in the asset's smallest unit.
amountConfirmedstringnoInteger string in the asset's smallest unit.
amountReceivedstringnoInteger string in the asset's smallest unit.
assetnoAsset the payment is denominated in, as an asset id-string (see GET /v1/assets). Null until an asset is selected for the payment.
confirmedAtintegernoUnix-milliseconds timestamp when the payment reached finalization (confirmed). Null until confirmed; may revert if a chain reorg undoes the confirmation.
createdAtintegernoUnix-milliseconds timestamp when the payment was created.
expiresAtintegernoUnix-milliseconds timestamp when the payment window closes; the payment expires (fails) if it has not been paid by then.
externalIdstringnoMerchant's own identifier for this payment, echoed from creation. Null when none was provided.
feestringnoPlatform fee: 0.4% of the amount, minimum $1 equivalent. Integer string in the asset's smallest unit.
idstringnoUnique Suward identifier of the payment. Use it in the payment endpoints (get, cancel, transactions) and as the checkout page path.
metadataobjectnoArbitrary key/value data attached by the merchant at creation, echoed back unchanged.
networkFeestringnoEstimated on-chain (gas) cost, deducted from the received amount. Integer string in the asset's smallest unit.
quotedPricestringnoUSD price of the asset locked at creation, decimal string. Fees are computed from this price at settlement, so the merchant's net is deterministic.
networkFeePayernoWho bears the network (gas) fee, echoed from creation.
serviceFeePayernoWho bears the platform (service) fee, echoed from creation.
paymentWindowSecondsintegernoResolved length of the payment window, in seconds.
projectIdstringnoIdentifier of the project that owns this payment.
redirectConfignoReturn-to-store redirect configuration echoed from creation. Null when none was configured.
statusnoMain payment lifecycle status. See the status enum for the full meaning of each value.
subStatusnoFine-grained payment sub-status describing the current step or amount condition. See the sub-status enum for the full meaning of each value.
transactionsnoPreview page of the on-chain transactions detected for this payment (newest first). Use GET /v1/payments/{paymentId}/transactions for the full paginated list.
underpaymentTolerancestringnoInteger string in the asset's smallest unit.
updatedAtintegernoUnix-milliseconds timestamp when the payment was last updated.
webhookUrlstringnoWebhook URL that receives this payment's events, echoed from creation. Null when the project default webhook is used.
paymentPageUrlstringnoAbsolute URL of the Suward-hosted checkout page where the customer pays this payment.
Response · JSON
{
"acceptedAt": 0,
"activatedAt": 0,
"activationFlowSeconds": 3600,
"address": "0xabc…def",
"amount": "100000000",
"amountConfirmed": "100000000",
"amountReceived": "100000000",
"asset": "USDT_ETHEREUM",
"confirmedAt": 0,
"createdAt": 0,
"expiresAt": 0,
"externalId": "order_abc123",
"fee": "1000000",
"id": "obj_abc123",
"metadata": {},
"networkFee": "150000",
"quotedPrice": "string",
"networkFeePayer": "merchant",
"serviceFeePayer": "merchant",
"paymentWindowSeconds": 3600,
"projectId": "obj_abc123",
"redirectConfig": {},
"status": "pending",
"subStatus": "created",
"transactions": {},
"underpaymentTolerance": "0",
"updatedAt": 0,
"webhookUrl": "https://example.com/webhook",
"paymentPageUrl": "string"
}