Sandbox API
https://sandbox-api.nuvante.ioFlow guide
Stablecoin redemption
Redeem a chain-issued stablecoin for GBP. The engine handles custody, the issuer's burn proof and RTGS settlement for you.
Run the request
curl --request POST 'https://sandbox-api.nuvante.io/api/v1/transactions' \
--header 'Authorization: Bearer <api-key>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: redeem-20260730-0001' \
--data '{
"paymentReference": "DVP-REDEEM-0001",
"source": {
"amount": "250000.00",
"asset": {
"code": "GBPC",
"issuer": "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUWDA"
}
},
"target": {
"amount": "250000.00",
"asset": {
"code": "GBP"
}
},
"useCase": "redeem"
}'What happens on the happy path
- 1
Validate
The engine checks the request body, the participant, the source balance, the asset and issuer mapping, the payment reference and the precision. The source has to be chain-issued, and the target has to be GBP with no issuer. - 2
Lock the source funds
The member's source tokens move into the custody lock. Once AssetLocked is recorded, polling shows the chain status as Locked. - 3
Earmark the RTGS funds
The source issuer's reserve is earmarked to credit the redeeming member. The RTGS status moves through EarmarkSubmitted to Earmarked. - 4
Instruct and prove the burn
The issuer adapter handles the burn instruction. An issuer authorising the burn isn't enough on its own. Settlement only moves on once there's a verified Burned proof. - 5
Settle in RTGS
The engine submits settlement against the earmark and polls it through SettleSubmitted to Settled. - 6
Finish with no mint
GBP fiat has no issuer, so a redemption has no mint leg. The chain status becomes Completed and lifecycleStatus becomes settled.
Poll and stop
curl 'https://sandbox-api.nuvante.io/api/v1/transactions/123e4567-e89b-42d3-a456-426614174000' \
--header 'Authorization: Bearer <api-key>'Keep polling until data.terminal is true. Drive your workflow from lifecycleStatus, and use details and saga when you need to explain what happened.
Cancellations and things going wrong
Redemption outcomes
| Condition | Result | Notes |
|---|---|---|
| Before the source burn | Can be cancelled | Cancelling can release the RTGS earmark and return the locked source asset. Go by actions.cancel.allowed. |
| Settlement submitted or source burned | Can't be cancelled | Past this point, the public cancel route returns 409. |
| Earmark rejected | failed | The locked funds go back to the sender, and details.reason.code is earmark_rejected. |
| Issuer rejected | cancelled | A clear rejection before settlement automatically cancels the transaction and returns the funds. |
| Issuer failed | Parked | An unclear failure parks for an operator to look at, so we never guess whether the burn happened. |
| Issuer silent | Parked after the SLA | The transaction stays open during the approval SLA snapshotted at the start, then parks if the issuer still hasn't replied. |
