Transfers

List transfers for your organization. Use this to view and monitor your transfer activity.

Sorting: Results are sorted by creation time in descending order (newest first). Transfers with the same creation time are returned in a consistent order across pages.

Status Filtering: Filter by specific status to efficiently manage transfers:

  • ?status=processing - Monitor active transfers.
  • ?status=quoted - Find transfers awaiting execution.
  • ?status=failed - Review failed transfers for troubleshooting.
  • ?status=completed - Find completed transfers.

Account Filtering: Filter by account ID to find transfers involving a specific account:

  • ?accountId=<ID> - All transfers where the account is either source or target (OR semantics).
  • ?sourceAccountId=<ID> - Only transfers where the account is the source (outbound).
  • ?targetAccountId=<ID> - Only transfers where the account is the target (inbound). Providing accountId together with sourceAccountId, targetAccountId, sourceAddress, targetAddress, or targetEmail is a validation error and returns HTTP 400.

Date Range Filtering: Filter by creation or last-updated time for reconciliation:

  • ?createdAfter=2026-01-01T00:00:00Z&createdBefore=2026-01-31T23:59:59Z - Transfers created within a date range.
  • ?updatedAfter=2026-01-01T00:00:00Z - Transfers updated since a given time. Useful for incremental sync.

Asset Filtering: Filter by source or target asset symbol:

  • ?sourceAsset=usd - Transfers funded from a USD account.
  • ?targetAsset=usdc - Transfers delivering USDC to the target. Supported asset symbols include usdc, eurc, usd, and eur.

Other Filters:

  • ?sourceAddress=0x... - Transfers from a specific on-chain source address.
  • ?targetAddress=0x... - Transfers to a specific on-chain destination address.
  • ?targetEmail=user@example.com - Transfers to a specific email recipient.
  • ?transferId=transfer_... - Look up a single transfer by ID; bypasses pagination.

Filter Combinations: The following combinations are validation errors and return HTTP 400:

  • accountId with any of sourceAccountId, targetAccountId, sourceAddress, targetAddress, or targetEmail.
  • sourceAccountId with sourceAddress.
  • More than one of targetAccountId, targetAddress, and targetEmail.
  • transferId with any other filter. Pagination parameters are permitted.
get/v2/transfers

Request

  • Base URL: https://api.cdp.coinbase.com/platform
  • URL: https://api.cdp.coinbase.com/platform/v2/transfers
  • Auth: HTTP bearer

Query parameters

status'quoted' | 'processing' | 'completed' | 'failed'

The current status of the transfer, indicating what action you need to take next. Required when validateOnly is false.

Example:quoted

Filter transfers by status. Useful for building dashboards, monitoring active transfers, or finding transfers needing action.

accountIdstring

The ID of the Account, which is a UUID prefixed by the string account_.

Example:account_af2937b0-9846-4fe7-bfe9-ccc22d935114

Filter transfers by account ID. Returns transfers where the specified account is either the source or target (OR semantics). Cannot be combined with sourceAccountId, targetAccountId, sourceAddress, targetAddress, or targetEmail.

sourceAccountIdstring

The ID of the Account, which is a UUID prefixed by the string account_.

Example:account_af2937b0-9846-4fe7-bfe9-ccc22d935114

Filter transfers by source account ID. Returns only transfers where the specified account is the source. Cannot be combined with accountId or sourceAddress.

targetAccountIdstring

The ID of the Account, which is a UUID prefixed by the string account_.

Example:account_af2937b0-9846-4fe7-bfe9-ccc22d935114

Filter transfers by target account ID. Returns only transfers where the specified account is the target. Cannot be combined with accountId, targetAddress, or targetEmail.

createdAfterstring date-time

Filter transfers to those created at or after this datetime (inclusive). ISO 8601 format.

createdBeforestring date-time

Filter transfers to those created at or before this datetime (inclusive). ISO 8601 format.

updatedAfterstring date-time

Filter transfers to those updated at or after this datetime (inclusive). ISO 8601 format. Useful for incremental sync — poll for transfers that changed state since your last check.

updatedBeforestring date-time

Filter transfers to those updated at or before this datetime (inclusive). ISO 8601 format.

sourceAssetstring

Filter transfers by source asset symbol (e.g., usd, usdc, eurc, eur).

targetAssetstring

Filter transfers by target asset symbol (e.g., usdc, eurc, usd, eur).

sourceAddressstring

A blockchain address. Format varies by network (e.g., 0x-prefixed for EVM, base58 for Solana).

Example:0x742d35Cc6634C0532925a3b844Bc454e4438f44e

Filter transfers by the on-chain address of the source. Cannot be combined with accountId or sourceAccountId.

targetAddressstring

A blockchain address. Format varies by network (e.g., 0x-prefixed for EVM, base58 for Solana).

Example:0x742d35Cc6634C0532925a3b844Bc454e4438f44e

Filter transfers by the on-chain destination address of the target. Cannot be combined with accountId, targetAccountId, or targetEmail.

targetEmailstring email

An email address. Maximum length 254 characters per RFC 5321.

Example:user@example.com

Filter transfers by the email address of the target recipient. Cannot be combined with accountId, targetAccountId, or targetAddress.

transferIdstring

Filter to a specific transfer by ID. When provided, returns only the matching transfer and bypasses pagination. Cannot be combined with any other filter.

pageSizeinteger

The number of resources to return per page.

pageTokenstring

The token for the next page of resources, if any.

Response

Successfully listed transfers.

nextPageTokenstring

The token for the next page of items, if any.

Example response

{
  "transfers": [
    {
      "transferId": "transfer_af2937b0-9846-4fe7-bfe9-ccc22d935114",
      "status": "completed",
      "source": {
        "accountId": "account_af2937b0-9846-4fe7-bfe9-ccc22d935114",
        "asset": "usd"
      },
      "target": {
        "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "network": "base",
        "asset": "usdc"
      },
      "sourceAmount": "103.50",
      "sourceAsset": "usd",
      "targetAmount": "100.00",
      "targetAsset": "usdc",
      "completedAt": "2025-01-01T00:05:00Z",
      "createdAt": "2025-01-01T00:00:00Z",
      "updatedAt": "2025-01-01T00:05:00Z"
    }
  ],
  "nextPageToken": "eyJsYXN0X2lkIjogImFiYzEyMyIsICJ0aW1lc3RhbXAiOiAxNzA3ODIzNzAxfQ=="
}

Changes

    • warning

      added the new incompatible_event_types enum value to the response property for the response status

    • warning

      added the new invalid_webhook_headers enum value to the response property for the response status

    • warning

      added the new invalid_webhook_url enum value to the response property for the response status

    • warning

      added the new mandate_action_pending enum value to the response property for the response status

    • warning

      added the new mandate_canceled enum value to the response property for the response status

    • warning

      added the new mandate_expired enum value to the response property for the response status

    • warning

      added the new mandate_invalid_status enum value to the response property for the response status

    • warning

      added the new mandate_policy_violation enum value to the response property for the response status

    • warning

      added the new mandate_revoked enum value to the response property for the response status

    • warning

      added the new subscription_limit_exceeded enum value to the response property for the response status

    • warning

      added the new mfa_challenge_not_found enum value to the response property for the response status

    • warning

      added the new operation_in_progress enum value to the response property for the response status