> ## Documentation Index
> Fetch the complete documentation index at: https://developers.circle.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Before reading these docs, install the relevant Circle Skill to get pre-loaded context — skills are LLM-optimized and cover architecture decisions, correct flows, and common pitfalls. In Claude Code: run /plugin marketplace add circlefin/skills then /plugin install circle-skills@circle. With Vercel Skills CLI: run npx skills add circlefin/skills. Available skills: use-usdc https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-usdc/SKILL.md (balances, transfers, approvals on EVM and Solana); EURC has no skill — see https://developers.circle.com/stablecoins/what-is-eurc.md; bridge-stablecoin https://github.com/circlefin/skills/blob/master/plugins/circle/skills/bridge-stablecoin/SKILL.md (crosschain transfers via CCTP, USDC, EURC, and third-party assets); use-arc https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-arc/SKILL.md (Arc chain config, contract deployment, USDC bridging — Arc docs: https://docs.arc.io/llms.txt); use-circle-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-circle-wallets/SKILL.md (choose wallet type); use-developer-controlled-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-developer-controlled-wallets/SKILL.md (custodial wallets for payouts and treasury); use-user-controlled-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-user-controlled-wallets/SKILL.md (embedded wallets with Web2 login); use-modular-wallets https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-modular-wallets/SKILL.md (smart contract wallets with passkeys and ERC-4337); use-gateway https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-gateway/SKILL.md (unified USDC balance, nanopayments); use-smart-contract-platform https://github.com/circlefin/skills/blob/master/plugins/circle/skills/use-smart-contract-platform/SKILL.md (deploy, interact, monitor contracts). Pair any skill with the Circle MCP server for live SDK signatures, contract addresses, and chain IDs: {"mcpServers":{"circle":{"url":"https://api.circle.com/v1/codegen/mcp"}}}.
> Read the product overview first. Each product has an overview explaining when and why to use it. Read it before quickstarts.
> Pick the right wallet type. Developer-controlled (you hold keys), user-controlled (end user holds keys via PIN/social login), or modular (smart contract wallets with passkeys). See https://developers.circle.com/wallets.md.
> Use CCTP V2 for crosschain transfers. CCTP natively transfers USDC and EURC via burn-and-mint, and supports permissionless wrapping of third-party assets via lock-and-mint. V1 is legacy; always use V2 unless V1 is specified or the chain requires it (Noble, Sui, and Aptos still require V1). Migration guide: https://developers.circle.com/cctp/migration-from-v1-to-v2.md.
> Use Bridge Kit for frontend bridging. Wraps CCTP with a simpler SDK for user-facing apps. Use CCTP directly for backend transfers.
> Gas Station vs Paymaster. Gas Station sponsors gas for Circle Wallet transactions. Paymaster lets users pay gas in USDC. Different use cases — read both overviews.
> Gateway Nanopayments for sub-cent payments. Gasless USDC micropayments down to $0.000001 via x402 and batched settlement. For pay-per-request APIs, AI agent payments, streaming.
> Look up USDC addresses per chain. Never hardcode — use https://developers.circle.com/stablecoins/usdc-contract-addresses.md.
> Prefer SDKs over raw API calls. Node.js and Python SDKs handle auth, retries, and errors.
> API key required. Bearer token in Authorization header. Testnet and mainnet use separate keys and may use different base URLs depending on the product.
> Set up webhooks when available. Most operations are async. Webhooks deliver transaction confirmations and state changes.
> When calling list endpoints, paginate using pageSize and pageAfter until no nextPageAfter cursor is returned—stopping at the first page silently misses records.
> Building an AI agent? Start with the Agent Stack—Circle CLI, agent wallets, and nanopayments built for autonomous use cases: https://developers.circle.com/agent-stack.md.

# CAMT.053 daily statements

> Integrate ISO 20022 CAMT.053 daily statement XML from Circle Mint for treasury and reconciliation workflows.

[ISO 20022](https://www.iso20022.org/) CAMT.053 is a standard bank-to-customer
statement format used for treasury reconciliation. Circle Mint generates one
CAMT.053.001.13 XML file per calendar day (UTC), covering all USDC and EURC
activity on your account. You
[retrieve the file](/circle-mint/references/camt053-statements#retrieve-the-report)
through the Circle Mint API and parse it to reconcile balances, match
transactions, and integrate with your treasury systems.

<Note>
  This page covers Circle Mint accounts. For Managed Payments, request the
  `camt_managed` report type instead of `camt053`. See [Managed Payments
  reporting](/cpn/managed-payments/references/reporting).
</Note>

## Availability and SLA

* **Coverage**: Each report covers the prior calendar day from 00:00 through
  24:00 UTC.
* **When it's ready**: Circle delivers the report by 06:00 UTC the next day,
  typically around 02:00 UTC.
* **One file, multiple currencies**: Circle delivers USDC and EURC statements in
  a single XML file as separate `Stmt` blocks.

<Tip>
  Subscribe to the [Circle status page](https://status.circle.com/) to receive
  updates on CAMT.053 outages.
</Tip>

## Retrieve the report

Retrieve the CAMT.053 report by first calling
[Request a report](/api-reference/circle-mint/account/request-report) with
`reportType: camt053` and `date` in `YYYY-MM-DD` format (the UTC calendar date
the statement covers), then use the returned `id` with one of the following
endpoints:

* [Get report by ID](/api-reference/circle-mint/account/get-report-by-id):
  Returns JSON with a `data` object that includes `downloadUrl` and `expiresAt`.
  Download the XML from `downloadUrl` before the time indicated by `expiresAt`.
* [Get report content](/api-reference/circle-mint/account/get-report-content):
  Returns the raw XML as `application/xml`. The response uses a
  `Content-Disposition` attachment filename such as
  `camt053_YYYY-MM-DD_report.xml`.

## Read and reconcile the report

### File format at a glance

The report uses ISO 20022 CAMT.053.001.13 XML structure. See the
[ISO 20022 message definitions catalog](https://www.iso20022.org/iso-20022-message-definitions)
for official message definitions.

* The file uses namespace `urn:iso:std:iso:20022:tech:xsd:camt.053.001.13`.
* The root is `Document` → `BkToCstmrStmt` → one or more `Stmt` elements.
* Each `Stmt` is one account and currency.
* Inside a statement you will see opening and closing balances and `Ntry`
  (entry) elements. There is one `Ntry` per movement that affects the balance.

### Balances

Each `Stmt` includes opening and closing balances for the report date:

* `OPBD`: Opening booked balance for the report date.
* `CLBD`: Closing booked balance for the report date.

Each balance has an amount with `Ccy` (currency), `CdtDbtInd` (credit or debit
side of the balance), and a timestamp. For reconciliation, check that the
opening balance plus the sum of credits and debits aligns with the closing
balance for that statement.

### Currency vs token

Standard ISO 20022 fields follow ISO 4217. They use three-letter currency codes
on `Amt` and related standard elements:

* `USD` for USDC transactions, for example `<Amt Ccy="USD">`.
* `EUR` for EURC transactions, for example `<Amt Ccy="EUR">`.

Circle preserves the full token identifier (`USDC` or `EURC`) on each
transaction line. At the transaction level it follows the path `Ntry` →
`NtryDtls` → `TxDtls` → `SplmtryData` →
[`CircleTxn`](/circle-mint/references/camt053-statements#circle-transaction-details-circletxn)
→ `Token`.

Use both when you need to match fiat-style accounting codes and token
identifiers.

### Transaction entries (`<Ntry>`)

Each `Ntry` is one transaction line. Important children include the following:

* `Amt`: Amount and ISO currency on the amount (`USD` or `EUR`).
* `CdtDbtInd`: `CRDT` (credit) or `DBIT` (debit).
* `Sts`: Booking status appears in `Cd` with the following possible values:
  * `BOOK`: Booked
  * `PDNG`: Pending
  * `RJCT`: Rejected
  * `FAIL`: Failed
* `BookgDt`: Booking time in `DtTm`, UTC (ISO 8601).
* `BkTxCd`: Circle's label for the transaction type, found under `Prtry` / `Cd`.
  Unmapped types appear as `Unknown`.

### Transaction type codes

The value at `BkTxCd` → `Prtry` → `Cd` is case-sensitive. Circle Mint and
Managed Payments use different code sets, so select the table that matches the
`reportType` you requested. Your parser should continue accepting unknown values
so that a newly introduced transaction type doesn't stop reconciliation.

<Tabs>
  <Tab title="Circle Mint">
    The `camt053` report emits the following values:

    | Code | Transaction category |
    | - | - |
    | `Escheatment` | Unclaimed-property debit |
    | `Mint` | Fiat or wrapped-token mint |
    | `Redeem` | Fiat or wrapped-token redemption |
    | `Crypto Payout` | Stablecoin payout |
    | `Crypto Refund` | Stablecoin payment refund |
    | `Crypto Payment` | Stablecoin payment |
    | `Crypto Payout Reversal` | Reversed or canceled stablecoin payout |
    | `Crypto Payment Fee` | Stablecoin payment fee |
    | `Crypto Payout Fee` | Stablecoin payout fee |
    | `Borrow` | DeFi credit borrow |
    | `Repayment` | DeFi credit repayment |
    | `Add Collateral` | DeFi collateral deposit |
    | `Advance` | Line-of-credit advance |
    | `Advance Repayment` | Line-of-credit repayment |
    | `Advance Overpayment` | Line-of-credit overpayment refund |
    | `Advance Fee` | Line-of-credit fee |
    | `Unsupported Funds Recovery` | Recovery of unsupported funds |
    | `Send On-chain` | Onchain send |
    | `Receive On-chain` | Onchain receive |
    | `Unwithdrawal` | Reversed fiat withdrawal |
    | `Redemption Fee` | Fiat redemption fee |
    | `Trade Settlement` | Foreign-exchange trade settlement |
    | `Trade Withdrawal` | Foreign-exchange trade withdrawal |
    | `Trade Mint` | Foreign-exchange trade mint |
    | `Trade Unwithdrawal` | Reversed foreign-exchange trade withdrawal |
    | `Convert Withdrawal` | Currency-conversion withdrawal |
    | `Convert Mint` | Currency-conversion mint |
    | `Invoice Transfer` | Invoice transfer |
    | `Subwallet Funding` | Legacy code name for sub-account funding |
    | `CeFi Funding` | Centralized-finance funding |
    | `CeFi Withdrawal` | Centralized-finance withdrawal |
    | `Wallet Transfer` | Other wallet transfer |
    | `Unknown` | Transaction without a mapped category |
  </Tab>

  <Tab title="Managed Payments">
    The `camt_managed` report emits compact proprietary codes. This column shows the
    corresponding transaction category for reconciliation:

    | Code | Transaction category |
    | - | - |
    | `Escheatment` | Unclaimed-property debit |
    | `Fiat` | Fiat mint or redemption |
    | `CryptoPayout` | Stablecoin payout |
    | `CryptoRefund` | Stablecoin payment refund |
    | `CryptoPayment` | Stablecoin payment deposit |
    | `CryptoPayoutReversal` | Reversed or canceled stablecoin payout |
    | `CryptoPaymentFee` | Stablecoin payment fee |
    | `CryptoPayoutFee` | Stablecoin payout fee |
    | `Borrow` | DeFi credit borrow |
    | `Repayment` | DeFi credit repayment |
    | `AddCollateral` | DeFi collateral deposit |
    | `SettlementCredit` | Line-of-credit advance |
    | `AdvanceRepayment` | Line-of-credit repayment |
    | `AdvanceOverpayment` | Line-of-credit overpayment refund |
    | `LineOfCreditAdvanceFee` | Line-of-credit fee |
    | `UnsupportedFundsRecovery` | Recovery of unsupported funds |
    | `SendOnChain` | Onchain send |
    | `ReceiveOnChain` | Onchain receive |
    | `Unwithdrawal` | Reversed fiat withdrawal |
    | `RedemptionFee` | Fiat redemption fee |
    | `TradeSettlement` | Foreign-exchange trade settlement |
    | `TradeWithdrawal` | Foreign-exchange trade withdrawal |
    | `TradeMint` | Foreign-exchange trade mint |
    | `TradeUnwithdrawal` | Reversed foreign-exchange withdrawal |
    | `ConvertWithdrawal` | Currency-conversion withdrawal |
    | `ConvertMint` | Currency-conversion mint |
    | `InvoiceTransfer` | Invoice transfer |
    | `SubwalletFunding` | Legacy code name for sub-account funding |
    | `CeFiFunding` | Centralized-finance funding |
    | `CeFiWithdrawal` | Centralized-finance withdrawal |
    | `WalletTransfer` | Other wallet transfer |
    | `Unknown` | Transaction without a mapped category |
  </Tab>
</Tabs>

### Circle transaction details (`CircleTxn`)

Circle adds detail under `Ntry` → `NtryDtls` → `TxDtls` → `SplmtryData` where
`PlcAndNm` is `CircleTransactionData`. Inside the envelope, `CircleTxn` uses
namespace `urn:circle:camt053:transaction`.

The following child elements may appear on a transaction line. This list isn't
exhaustive. Your parser must tolerate additional elements, and any of the
following fields may be absent on a given line.

* `TransactionId`: Identifier for the movement.
* `JobId`: Related job identifier.
* `Token`: Full token identifier (`USDC` or `EURC`).
* `CustomReferenceId`: Customer-provided reference when supplied.
* `ExternalReferenceId`: Electronic Funds Transfer (EFT) reference when
  supplied, for example `IMAD` or `UETR`.
* `Blockchain`: Blockchain identifier when the movement is onchain.
* `TransactionHash`: Onchain transaction hash when present.
* `Source`: Originating party or address when populated.
* `SourceType`: Type of source when populated, for example, fiat account or
  blockchain address.
* `Destination`: Receiving party or address when populated.
* `DestinationType`: Type of destination when populated.
* `CustomerId`: Customer association when present.

Use these fields to tie a line back to APIs, onchain activity, or your records.

## Example truncated statement

The following example shows the header, one statement with opening and closing
balances, and one abbreviated entry. It's only for orientation. Your real files
can contain many entries and a second statement for the other currency.

```xml Example CAMT.053 fragment theme={null}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.13">
  <BkToCstmrStmt>
    <GrpHdr>
      <MsgId>CAMT053_0455_20251006</MsgId>
      <CreDtTm>2025-10-07T14:30:45Z</CreDtTm>
      <MsgRcpt>
        <Id>
          <OrgId>
            <Othr>
              <Id>e0549c6e-c80e-4e5f-95ee-c66f7d1be455</Id>
              <SchmeNm>
                <Prtry>EntityId</Prtry>
              </SchmeNm>
            </Othr>
          </OrgId>
        </Id>
      </MsgRcpt>
    </GrpHdr>
    <Stmt>
      <Id>0455_1000123456_USD_20251006</Id>
      <Acct>
        <Id>
          <Othr>
            <Id>1000123456</Id>
          </Othr>
        </Id>
        <Ccy>USD</Ccy>
      </Acct>
      <Bal>
        <Tp>
          <CdOrPrtry>
            <Cd>OPBD</Cd>
          </CdOrPrtry>
        </Tp>
        <Amt Ccy="USD">1750000.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Dt>
          <DtTm>2025-10-06T00:00:00Z</DtTm>
        </Dt>
      </Bal>
      <Bal>
        <Tp>
          <CdOrPrtry>
            <Cd>CLBD</Cd>
          </CdOrPrtry>
        </Tp>
        <Amt Ccy="USD">1775000.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Dt>
          <DtTm>2025-10-06T23:59:59Z</DtTm>
        </Dt>
      </Bal>
      <Ntry>
        <Amt Ccy="USD">25000.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Sts>
          <Cd>BOOK</Cd>
        </Sts>
        <BookgDt>
          <DtTm>2025-10-06T08:15:23Z</DtTm>
        </BookgDt>
        <BkTxCd>
          <Prtry>
            <Cd>Mint</Cd>
          </Prtry>
        </BkTxCd>
        <NtryDtls>
          <TxDtls>
            <LclInstrm>
              <Prtry>wire</Prtry>
            </LclInstrm>
            <SplmtryData>
              <PlcAndNm>CircleTransactionData</PlcAndNm>
              <Envlp>
                <CircleTxn xmlns="urn:circle:camt053:transaction">
                  <TransactionId>550e8400-e29b-41d4-a716-446655440000</TransactionId>
                  <JobId>660e9511-f3ac-52e5-b827-557766551111</JobId>
                  <Token>USDC</Token>
                </CircleTxn>
              </Envlp>
            </SplmtryData>
          </TxDtls>
        </NtryDtls>
      </Ntry>
    </Stmt>
  </BkToCstmrStmt>
</Document>
```

## See also

* [Webhook notifications](/circle-mint/references/webhook-notifications):
  Subscribe to event notifications for transactions and account activity.
* [Supported payment rails](/circle-mint/references/supported-payment-rails):
  Review the bank rails and blockchains available for funding and withdrawals.
* [Error codes](/api-reference/circle-mint/error-codes): Look up API error codes
  returned by Circle Mint endpoints.
