CIRCLE_FR).
Circle applies these rules to Stablecoin Payouts and the third-party transfers
booked through the Circle Mint Core API. For CIRCLE_FR accounts, Travel Rule
requirements also apply to Stablecoin Payins; see
Stablecoin Payins (CIRCLE_FR). Circle LLC and
CIRCLE_SG payins are not subject to additional Travel Rule data requirements.
Regional rules
The Circle entity that books the payout or payin determines which rule set applies. The location of the customer or recipient is not the trigger.
The booking entity on your account, not the geography of either side of the
transfer, decides which threshold and which fields apply.
Schemas
The following sections describe the data Circle collects to satisfy Travel Rule. Use the schema appropriate to your booking entity and the recipient type.Originator identities
Applies to every Stablecoin Payout subject to Travel Rule: Circle LLC at the $3,000 threshold andCIRCLE_SG and CIRCLE_FR for all amounts. The originator
identity travels in the source.identities[] array on POST /v1/payouts. It
identifies the sender of the funds, which is your business and, where
applicable, the customer that originated the transfer.
The following example shows a single business originator identity:
Beneficiary identity (CIRCLE_SG and CIRCLE_FR)
Applies to Address Book recipients used byCIRCLE_SG-booked and
CIRCLE_FR-booked payouts. The beneficiary identity travels in the identity
object on POST /v1/addressBook/recipients. It identifies the recipient. The
schema captures legal name and, for CIRCLE_FR recipients, an optional legal
entity identifier. Addresses are not part of this object.
Individual beneficiary:
CIRCLE_FR):
identity with
PATCH. Attempts return error code 2036.
Ownership (CIRCLE_SG and CIRCLE_FR)
Applies to Address Book recipients used byCIRCLE_SG and CIRCLE_FR. The
ownership data travels in the ownership object on
POST /v1/addressBook/recipients and declares whether the recipient is your own
wallet or a third party’s wallet, and whether that wallet is hosted by a VASP or
self-hosted.
Third-party hosted-wallet recipient:
custody.type: self_hosted for CIRCLE_SG and
CIRCLE_FR, but the risk layer denies these recipients today. Build against
hosted wallets until self-hosted support ships. After creation, you cannot
modify ownership with PATCH. Attempts return error code 2037.
Virtual asset service provider lookup
GET /v1/addressBook/vasps returns the active set of virtual asset service
providers (VASPs) available for your jurisdiction. The endpoint is available
to CIRCLE_SG and CIRCLE_FR customers. Use the returned id as
ownership.custody.vaspId when you register a hosted-wallet recipient.
Payment reason codes
purposeOfTransfer on POST /v1/payouts carries a payment reason code that
describes why the funds are moving. The field is required for CIRCLE_SG-booked
and CIRCLE_FR-booked payouts and is not part of Travel Rule data collection
for Circle LLC. Values align with the Cross-Border Payments Network (CPN)
payment reason codes, with one addition (PMT000) that is unique to Stablecoin
Payouts and is intended for cases that do not match another code. PMT006 is
not valid for Stablecoin Payouts.
Supported blockchains
Travel Rule currently applies to Stablecoin Payouts on the following blockchains:- Algorand (
ALGO) - Aptos (
APTOS) - Arbitrum (
ARB) - Arc (
ARC) - Avalanche (
AVAX) - Base (
BASE) - Celo (
CELO) - Ethereum (
ETH) - NEAR (
NEAR) - Optimism (
OP) - Polygon PoS (
POLY) - XRP Ledger (
XRP) - Solana (
SOL) - Stellar (
XLM)
Failure modes
A Travel Rule problem surfaces in one of two places: at submission time as a synchronous validation error, or after submission as an asynchronous risk decision.Synchronous validation errors
Returned atPOST time with an HTTP 4xx response. Fix the request and retry
with a fresh idempotencyKey. Address Book validation spans the 2024-2037
range; 2036 and 2037 are called out separately because they cover PATCH
attempts on fields that are immutable after creation.
Asynchronous risk evaluation
The payout accepts at submission withHTTP 201, then the resource transitions
to failed. The payload carries the risk decision:
reason: 3220 indicates a Travel Rule violation. Review your originator
identities, beneficiary identity (CIRCLE_SG and CIRCLE_FR), vaspId, and
purposeOfTransfer against this reference, then re-submit with a new
idempotencyKey.
Stablecoin Payins (CIRCLE_FR)
The EU Transfer of Funds Regulation (TFR) imposes Travel Rule requirements on Stablecoin Payins booked through Circle SAS (CIRCLE_FR) only.
Payment intent fields
CIRCLE_FR accounts must supply purposeOfTransfer and beneficiaryLei when
creating a payment intent with
POST /v1/paymentIntents.
Example payment intent body including
beneficiaryLei:
Refund requirements
ForCIRCLE_FR refunds, paymentId is required on
POST /v1/paymentIntents/{id}/refund.
Supply the ID of the settled payment from paymentIds[] on the intent so Circle
can associate the refund with the original payin and carry forward its Travel
Rule data.
Refunds to a wallet address at a different VASP than the original payin aren’t
supported. For the full refund mode details, see
Refund a stablecoin payin.
For CIRCLE_SG refund requirements, see
Refund a stablecoin payin.