---
title: "Create a stablecoin burn operation"
method: POST
path: "/stablecoins/{stablecoinId}/burns"
tags: ["Stablecoins"]
---

# Create a stablecoin burn operation

`POST /stablecoins/{stablecoinId}/burns`

Create a provider-backed burn/redemption operation for a registered stablecoin. Burn sources and fiat destinations are normal Grid account objects; provider-specific Brale address ids are resolved and stored internally. External Spark wallet sources return funding instructions and remain pending until the provider reports funds received.

## Headers

- `Idempotency-Key` string, required

## Request body

- StablecoinBurnRequest
  - `amount` string, required — Amount to burn in the stablecoin's smallest unit. The amount must convert exactly to a whole fiat cent for the token decimals.
  - `source` union, required
    - StablecoinExternalAccountBurnSource — External account burn source. The issuer funds the provider from a Spark external account.
      - `type` 'EXTERNAL_ACCOUNT', required — External account burn. References an active Spark external account and returns funding instructions.
      - `externalAccountId` string, required — Grid Spark `ExternalAccount` expected to fund the provider for the burn.
    - StablecoinGridInternalBurnSource — Grid internal account burn source, reserved for future Grid-controlled burn flows.
      - `type` 'GRID_INTERNAL_ACCOUNT', required — Grid internal account burn. Reserved for the Grid-controlled ledger movement flow.
      - `accountId` string, required — Grid internal source account id.
    - StablecoinProviderBalanceBurnSource — Provider internal balance burn source. No external funding is required; the provider spends existing balance.
      - `type` 'PROVIDER_INTERNAL_BALANCE', required — Provider internal balance burn. Spends stablecoin funds already held at the provider.
  - `destination` StablecoinBurnDestination, required
    - `type` 'EXTERNAL_ACCOUNT', required — Burn destination variant. V1 supports fiat Grid `ExternalAccount` destinations.
    - `externalAccountId` string, required — Grid bank `ExternalAccount` receiving fiat redemption proceeds.
    - `rail` 'WIRE' | 'ACH_CREDIT' | 'SAME_DAY_ACH_CREDIT' | 'RTP_CREDIT', required — Fiat payout rail for the burn destination.
  - `description` string — Optional platform-provided operation description.

## Response `201`

Burn operation created

- StablecoinOperation
  - `id` string, required — System-generated stablecoin issuer operation identifier.
  - `stablecoinId` string, required — Stablecoin this operation belongs to.
  - `operationType` 'MINT' | 'BURN', required — Stablecoin issuer operation type.
  - `status` 'CREATED' | 'PENDING_FUNDING' | 'PENDING_PROVIDER' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'EXPIRED', required — Stablecoin issuer operation lifecycle status.
  - `amount` string, required — Operation amount in the stablecoin's smallest unit.
  - `provider` 'BRALE', required — Stablecoin provider backing the linked account, stablecoin, or operation.
  - `providerEnvironment` 'SANDBOX' | 'PRODUCTION', required — Provider environment derived from the authenticated Grid platform mode.
  - `stablecoinProviderAccountId` string, required — Stablecoin provider account link used for the operation.
  - `source` StablecoinOperationSource — Source of a stablecoin operation, as reported on a `StablecoinOperation`. A single merged shape (superset of the mint funding source and burn source request variants) so the field is unambiguously deserializable regardless of operation type: `externalAccountId` is present for external-account funded mints and external-account burns, `accountId` for Grid internal account sources, and `sourceTokenIdentifier`/`cryptoNetwork` for provider internal balance sources.
    - `type` 'WIRE' | 'ACH_DEBIT' | 'SAME_DAY_ACH_DEBIT' | 'EXTERNAL_ACCOUNT' | 'GRID_INTERNAL_ACCOUNT' | 'PROVIDER_INTERNAL_BALANCE', required — Source variant. Mint funding uses `WIRE`, `ACH_DEBIT`, or `SAME_DAY_ACH_DEBIT`; burns use `EXTERNAL_ACCOUNT`. `GRID_INTERNAL_ACCOUNT` and `PROVIDER_INTERNAL_BALANCE` are shared across mint and burn.
    - `externalAccountId` string — Grid `ExternalAccount` funding the operation, present for ACH debit mints and external-account burns.
    - `accountId` string — Grid internal account id, present for Grid internal account sources.
    - `sourceTokenIdentifier` string — Provider token/value type, present for provider internal balance sources.
    - `cryptoNetwork` string — Source crypto network, present for provider internal balance sources.
  - `fundingInstructions` StablecoinFundingInstructions — Provider funding instructions safe to show publicly. Present for wire-funded mint operations and external-source burn operations when available. The common fields below are always declared; the exact set of remaining fields is rail- and provider-specific (for example, wire instructions carry bank beneficiary/account/routing details while Spark and on-chain instructions carry a deposit address), so `additionalProperties` stays open to pass those through without a spec change per rail.
    - `rail` string — Funding rail these instructions apply to (e.g. `SPARK`, `WIRE`).
    - `network` string — Network the funds should be sent on, when applicable.
    - `address` string — Deposit address the issuer sends funds to, for on-chain or Spark rails.
    - `valueType` string — Provider token/value type the deposit address expects.
  - `destination` StablecoinOperationDestination — Destination of a stablecoin operation, as reported on a `StablecoinOperation`. A single merged (flat) shape so the field is unambiguously deserializable regardless of operation type: `accountId` identifies the receiving account (its `ExternalAccount:` / `InternalAccount:` prefix disambiguates external vs Grid-managed), and `rail` is present for burn (fiat payout) destinations and absent for mint destinations.
    - `accountId` string, required — Grid account that received the funds. An `ExternalAccount:` id for external destinations or an `InternalAccount:` id for Grid-managed destinations.
    - `rail` 'WIRE' | 'ACH_CREDIT' | 'SAME_DAY_ACH_CREDIT' | 'RTP_CREDIT' — Fiat payout rail, present for burn (fiat redemption) destinations.
  - `estimatedDelivery` StablecoinEstimatedDelivery — Static rail timing estimate for fiat redemption delivery. This is guidance, not a guaranteed arrival time.
    - `rail` string — Fiat payout rail the estimate applies to.
    - `amount` string — Estimated delivery amount in the smallest unit of `currency` (e.g. cents for USD).
    - `currency` string — ISO 4217 currency code of the fiat payout.
    - `timing` string — Human-readable rail timing estimate.
  - `expiresAt` string, date-time — Expiry for operations awaiting external funding.
  - `providerStatus` string — Sanitized provider status when available.
  - `failureReason` string — Stable internal failure code for terminal failed operations.
  - `description` string — Platform-provided operation description.
  - `createdAt` string, date-time, required — Creation timestamp.
  - `updatedAt` string, date-time, required — Last update timestamp.

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `404` — Stablecoin or referenced account not found
- `409` — Conflict
- `500` — Internal service error
- `503` — Provider temporarily unavailable

---

[API](https://skmtc.net/stainless-api/apis/grid-api.md) · [All operations](https://skmtc.net/stainless-api/apis/grid-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/stainless-api/grid-api/versions/526036c12609/schema)
