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

# Create a stablecoin mint operation

`POST /stablecoins/{stablecoinId}/mints`

Create a provider-backed mint operation for a registered stablecoin. Funding and destination accounts are normal Grid `ExternalAccount` objects; any provider-specific Brale address linkage is managed internally by Grid. Wire-funded mints return funding instructions and remain pending until the provider reports funds received.

## Headers

- `Idempotency-Key` string, required

## Request body

- StablecoinMintRequest
  - `amount` string, required — Amount to mint in the stablecoin's smallest unit. The amount must convert exactly to a whole fiat cent for the token decimals.
  - `fundingSource` union, required
    - StablecoinWireFundingSource — Wire funding source. The issuer wires fiat to the provider using the returned funding instructions.
      - `type` 'WIRE', required — Wire-funded mint. Funding instructions are returned on the resulting operation.
    - StablecoinAchDebitFundingSource — ACH debit funding source. The provider debits the referenced external account.
      - `type` 'ACH_DEBIT', required — ACH debit funding.
      - `externalAccountId` string, required — Grid `ExternalAccount` debited to fund the mint.
    - StablecoinSameDayAchDebitFundingSource — Same-day ACH debit funding source. The provider debits the referenced external account.
      - `type` 'SAME_DAY_ACH_DEBIT', required — Same-day ACH debit funding.
      - `externalAccountId` string, required — Grid `ExternalAccount` debited to fund the mint.
    - StablecoinGridInternalFundingSource — Grid internal account funding source, reserved for future Grid-funded mint flows.
      - `type` 'GRID_INTERNAL_ACCOUNT', required — Grid internal account funding. Reserved for the follow-up Grid-funded mint flow.
      - `accountId` string, required — Grid internal funding account id.
    - StablecoinProviderBalanceFundingSource — Provider internal balance funding source, reserved for future provider-funded mint flows.
      - `type` 'PROVIDER_INTERNAL_BALANCE', required — Provider internal balance funding. Reserved for the follow-up provider-balance mint flow.
      - `sourceTokenIdentifier` string, required — Provider token/value type spent from the provider internal balance.
      - `cryptoNetwork` string, required — Source crypto network for the provider internal balance funds.
  - `destination` StablecoinMintDestination, required — Account that receives the minted stablecoin. External and Grid-managed accounts are represented as a single account reference, matching the `accountId` pattern used elsewhere in the API; the id prefix (`ExternalAccount:` or `InternalAccount:`) determines which. In the initial Brale-backed flow this must reference an active Spark external account.
    - `accountId` string, required — Grid account receiving the minted stablecoin. Accepts an `ExternalAccount:` id (initial Brale-backed flow) or an `InternalAccount:` id for Grid-managed destinations.
  - `description` string — Optional platform-provided operation description.

## Response `201`

Mint 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/151f2d9bad9c/schema)
