POST/api/v1/transactions

Transactions

Initiate a stable-to-stable swap

Create a swap between two issued assets.

Sandbox APIhttps://sandbox-api.nuvante.io

A swap captures the source issuer's profile (for the burn) and the target issuer's profile (for the mint) separately. Mode 2 is available when each issuer involved is set up for two-phase settlement. Mode 3 needs the mandatory issuer refund endpoint.

Parameters

Initiate a stable-to-stable swap parameters
FieldTypeRequiredDescription
Authorizationstring · headerYesBearer sandbox API key with `transactions:write`.
Idempotency-Keystring · headerNoAn optional unique key for safe retries.
useCase"swap" · bodyYesMust be `swap`.
sourceobject · bodyYesThe source issued asset, amount and issuer.
targetobject · bodyYesThe target issued asset, amount and issuer.

Responses

201Swap accepted.
400Invalid request body.

Request

curl --request POST \
  --url 'https://sandbox-api.nuvante.io/api/v1/transactions' \
  --header 'Authorization: Bearer nvt_sandbox_your_key' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: dvp-swap-0001' \
  --data '{
  "paymentReference": "DVP-SWAP-0001",
  "source": {
    "amount": "100000.00",
    "asset": {
      "code": "GBPC",
      "issuer": "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUWDA"
    }
  },
  "target": {
    "amount": "100000.00",
    "asset": {
      "code": "GBPX",
      "issuer": "GAS4V4O2B7DW5T7IQRPEEVCRXMDZESKISR7DVIGKZQYYV3OSQ5SH5LVP"
    }
  },
  "useCase": "swap"
}'

Response

{
  "data": {
    "actions": {
      "cancel": {
        "allowed": true
      },
      "override": {
        "cancel": {
          "allowed": false
        },
        "settle": {
          "allowed": false
        }
      }
    },
    "details": {
      "chain": "None",
      "rtgs": "None",
      "sagaStep": {
        "current": 3,
        "name": "Lock",
        "total": 6
      }
    },
    "id": "123e4567-e89b-42d3-a456-426614174000",
    "initiatedAt": "2026-07-30T14:00:00.000Z",
    "lifecycleStatus": "received",
    "parked": false,
    "paymentReference": "DVP-SWAP-0001",
    "receiveAmount": "250000.00",
    "platformFeeAmount": "250.00",
    "debitAmount": "250250.00",
    "feeStatus": "pending",
    "saga": {
      "currentStepIndex": 1,
      "steps": [
        {
          "happenedAt": "2026-07-30T14:00:00.000Z",
          "name": "Received",
          "status": "done"
        },
        {
          "happenedAt": "2026-07-30T14:00:00.000Z",
          "name": "Validated",
          "status": "done"
        },
        {
          "name": "Lock",
          "status": "current"
        },
        {
          "name": "Earmarked",
          "status": "pending"
        },
        {
          "name": "Burning",
          "status": "pending"
        },
        {
          "name": "Settled",
          "status": "pending"
        }
      ]
    },
    "settlement": {
      "creditor": {
        "participantId": "223e4567-e89b-42d3-a456-426614174001",
        "participantKind": "clearing_member",
        "participantName": "Example Bank"
      },
      "debtor": {
        "participantId": "323e4567-e89b-42d3-a456-426614174002",
        "participantKind": "stablecoin_issuer",
        "participantName": "GBPC Issuer"
      }
    },
    "source": {
      "amount": {
        "amount": "250000.00",
        "asset": {
          "code": "GBPC",
          "issuer": "GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJUWDA"
        }
      },
      "party": {
        "participantId": "223e4567-e89b-42d3-a456-426614174001",
        "participantKind": "clearing_member",
        "participantName": "Example Bank"
      }
    },
    "target": {
      "amount": {
        "amount": "250000.00",
        "asset": {
          "code": "GBP"
        }
      },
      "party": {
        "participantId": "323e4567-e89b-42d3-a456-426614174002",
        "participantKind": "stablecoin_issuer",
        "participantName": "GBPC Issuer"
      }
    },
    "terminal": false,
    "updatedAt": "2026-07-30T14:00:00.000Z"
  },
  "meta": {
    "commandId": "423e4567-e89b-42d3-a456-426614174003"
  }
}