Request transfer cancellation
Changed onCancel a transfer. If it has not received funds, it becomes CANCELLED. If the transfer is already in review, crypto has been received, and the payout has not been sent, it becomes CANCELLED (funds stay on the deposit wallet) or REVERSED (crypto is sent to the configured refund address). If funds are in motion and the transfer is not already in review, it moves to IN_REVIEW and is not cancelled yet. A transfer already in review that cannot be returned automatically is rejected and its status does not change. Completed, failed, reversed, or already cancelled transfers cannot be cancelled.
Request
- Base URLhttps://sandbox.api.infinite.dev
- AuthHTTP bearer
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Path parameters
Headers
API key
Request body
Example request
{
"reason": "Customer requested cancellation"
}Response
Cancellation accepted. The response status is CANCELLED or REVERSED when the transfer is finished, IN_REVIEW when cancellation is not finished yet, or the current non-terminal status while cancellation processing completes.
Example response
{
"id": "tfr_1234567890abcdef",
"organizationId": "org_abc123",
"clientReferenceId": "order_abc123",
"sourceCustomerId": "cus_abc123",
"counterpartyId": "cp_abc123",
"agentId": "agt_abc123",
"flow": "CRYPTO_TO_FIAT",
"status": "COMPLETED",
"source": {
"currency": "usd",
"fundingCurrency": "usdc",
"paymentRail": "ACH",
"direction": "CREDIT",
"accountId": "vba_abc123",
"accountType": "VIRTUAL_BANK",
"externalAccountId": "ext_bank_456",
"fromAddress": "0x1234567890abcdef1234567890abcdef12345678",
"refundAccountId": "inw_abc123",
"accountName": "Acme Corporation",
"originator": {
"name": "Acme Suppliers LLC",
"bankName": "Example National Bank",
"routingNumber": "021000021",
"accountNumber": "987654321",
"swiftBic": "CHASUS33",
"bankCountry": "US",
"paymentReference": "INV-2025-001"
}
},
"destination": {
"currency": "USDC",
"paymentRail": "ETHEREUM",
"accountId": "vwa_def456",
"accountType": "EXTERNAL_BANK",
"externalAccountId": "ext_bank_789",
"toAddress": "0x1234567890abcdef1234567890abcdef12345678",
"accountName": "Acme Corporation",
"bankName": "JPMorgan Chase Bank",
"bankCountryCode": "US",
"wireMessage": "Payment for invoice INV-2026-001",
"achReference": "ORDER123",
"swiftReference": "Payment for invoice INV-2026-001",
"rtpReference": "Payment for invoice INV-2026-001",
"payoutReference": "INV2026"
},
"sourceAmount": {
"currency": "USD",
"exponent": 2,
"value": "12345",
"displayValue": "123.45"
},
"destinationAmount": {
"currency": "USD",
"exponent": 2,
"value": "12345",
"displayValue": "123.45"
},
"deliveredAmount": {
"currency": "USD",
"exponent": 2,
"value": "12345",
"displayValue": "123.45"
},
"providerFee": {
"currency": "USD",
"exponent": 2,
"value": "12345",
"displayValue": "123.45"
},
"refund": {
"status": "COMPLETED",
"reason": "Fees exceed deposit amount",
"amount": {
"currency": "USD",
"exponent": 2,
"value": "12345",
"displayValue": "123.45"
},
"address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
"txHash": "0x1234567890abcdef..."
},
"quoteId": "quote_abc123",
"exchangeRate": "0.99985",
"referenceRate": "1.158691536019208779",
"referenceRateAsOf": "2026-09-02T18:30:04.000Z",
"referenceProvider": "XE",
"developerFeeFixed": "100",
"developerFeePercent": 0.005,
"developerFee": {
"amount": {
"currency": "USD",
"exponent": 2,
"value": "12345",
"displayValue": "123.45"
},
"fixed": "100",
"percent": 0.005,
"txHash": "0x1234567890abcdef..."
},
"depositInstructions": {
"type": "crypto",
"paymentRail": "ETHEREUM",
"toAddress": "0x1234567890abcdef1234567890abcdef12345678",
"amount": {
"currency": "USD",
"exponent": 2,
"value": "12345",
"displayValue": "123.45"
},
"accountId": "acc_abc123"
},
"createdAt": "2026-09-15T10:00:00.000Z",
"updatedAt": "2026-09-15T10:00:00.000Z",
"returnedToAccountId": "acc_123",
"returnedAt": "2026-09-15T10:00:00.000Z",
"legs": [
{
"id": "tleg_abc123",
"type": "DEPOSIT_CRYPTO",
"inputCurrency": "USDC",
"outputCurrency": "USD",
"inputRail": "ETHEREUM",
"outputRail": "ACH",
"status": "PENDING",
"uetr": "9b6f37f2-21f0-4b2b-b03c-1893364782ce",
"imad": "20260309EREBBANK000002",
"omad": "20260309MMQFMP0B012345",
"achTraceNumber": "021000021234567",
"txHash": "0x1234567890abcdef...",
"developerFee": {
"currency": "USD",
"exponent": 2,
"value": "12345",
"displayValue": "123.45"
},
"feeTxHash": "0x1234567890abcdef..."
}
],
"remarks": "Partial payment - remaining balance to be paid next month",
"uetr": "9b6f37f2-21f0-4b2b-b03c-1893364782ce",
"imad": "20260309EREBBANK000002",
"omad": "20260309MMQFMP0B012345",
"achTraceNumber": "021000021234567",
"wireTracking": {
"uetr": "9b6f37f2-21f0-4b2b-b03c-1893364782ce",
"imad": "20260309EREBBANK000002",
"omad": "20260309MMQFMP0B012345",
"achTraceNumber": "021000021234567"
},
"statusDetail": {
"reason": "The transfer could not be completed.",
"code": "INSUFFICIENT_FUNDS"
},
"originatingAccount": {
"routingNumber": "044016018",
"accountNumber": "37216498313366"
},
"txHash": "0x1234567890abcdef...",
"systemRemark": "Tracking is unavailable for this SWIFT transfer. We will auto-complete it after 24 hours and mark it with an asterisk because settlement is assumed rather than confirmed.",
"metadata": {
"swiftRouting": {
"source": "GPI_ROUTE",
"senderBic": "CHASUS33",
"receiverBic": "CLRBGB22",
"checkedAt": "2026-05-10T16:34:42.597Z",
"steps": [
{
"label": "Sender bank",
"bic": "CHASUS33",
"bankName": "JP Morgan Chase",
"status": "Confirmed Active"
}
]
}
},
"estimatedSettlementAt": "2026-05-26T13:00:00.000Z",
"nextCutoffAt": "2026-05-19T19:00:00.000Z",
"cutoffTimezone": "America/New_York",
"counterparty": {
"id": "cp_abc123",
"name": "Jane Doe",
"beneficiaryType": "INDIVIDUAL",
"address": {
"addressLine1": "123 Main Street",
"addressLine2": "Apt 4B",
"city": "San Francisco",
"state": "CA",
"postalCode": "94102",
"country": "US",
"transliterated": {
"addressLine1": "123 Main Street",
"addressLine2": "Apt 4B",
"city": "Beijing",
"state": "Hebei"
}
}
}
}Changes
- info
added the optional property
to the response with the status - info
added the optional property
to the response with the status
- info
- info
added the optional property
to the response with the status - info
added the optional property
to the response with the status
- info