Circle's APIs are built around several resources that represent payments, payouts, transfers, and their associated objects.

# Primary Resources

## Payment Object

A `payment` object represents a payment from a customer and can be funded from a card or an incoming wire.

### Example Payment Object



### Payment Attributes




**`id`** _string_ A `UUID` for the payment.




**`type`** _string_ The type of payment object. Possible values: `payment`, `refund`, `cancel`.




**`merchantId`** _string_ The UUID of the merchant.




**`merchantWalletId`** _string_ The id of the merchant's wallet.




**`amount`** _object_ A [Money object](🔗) representing the total payment amount that is charged to the source.




**`source`** _object_ A [Source object](🔗) representing the payment source.




**`description`** _string_ Description of the payment.




**`status`** _string_ Enumerated status of the payment. `pending` means the payment is waiting to be processed. `confirmed` means the payment has been approved by the bank and the merchant can treat it as successful, but settlement funds are not yet available to the merchant. `paid` means settlement funds have been received and are available to the merchant. `failed` means something went wrong (most commonly that the payment was denied). Terminal states are `paid` and `failed`.




**`verification`** _object_ Status of verification checks. Attributes include `avs` and `cvv`. For `avs`, the value represents the raw AVS response, expressed as an upper-case letter. `not_requested` indicates check was not made, and `pending` is pending/processing. For `cvv`, `not_requested` indicates check was not made. `pass` indicates value is correct. `fail` indicates value is incorrect. `unavailable` indicates card issuer did not do the provided check. `pending` indicates check is pending/processing.




**`cancel`** _object_ A [Cancel object](🔗) if one exists.




**`refunds`** _[object]_ An array of [Refund objects](🔗) if they exist.




**`fees`** _[object]_ A [Money object](🔗) representing fees associated with this payment.




**`trackingRef`** _string_ Payment tracking reference.




**`errorCode`** _string_ Indicates the failure reason of a payment. Only present for payments in failed state. See [Entity Errors](🔗) for a full list of possible codes.




**`metadata`** _object_ The `email` and `phoneNumber` provided during payment creation.




**`riskEvaluation`** _object_ An object with two attributes, `decision` and `reason`.




**`createDate`** _string_ ISO-8601 UTC date/time format.




**`updateDate`** _string_ ISO-8601 UTC date/time format.

## Payout Object

A `payout` object represents a payout to a customer, vendor, or supplier.

### Example Payout Object



### Payout Attributes




**`id`** _string_ A `UUID` for the payout.




**`sourceWalletId`** _string_ The identifier of the source wallet used to fund a payout.




**`destination`** _object_ The [Destination object](🔗) the payout is being made to.




**`amount`** _object_ A [Money object](🔗) representing the total amount that is paid to the destination.




**`toAmount`** _object_ A [Money object](🔗) representing the amount that is paid to the destination currency. Only included for crypto payouts.




**`fees`** _object_ A [Money object](🔗) representing fees associated with this payment.




**`status`** _string_ Status of the payout. `pending` indicates that the payout is in process; `complete` indicates it finished successfully; `failed` indicates it failed.




**`trackingRef`** _string_ Payout tracking reference. Only included on fiat payouts.




**`externalRef`** _string_ External network identifier which will be present once provided from the applicable network.




**`errorCode`** _string_ Indicates the failure reason of a payout. Only present for payouts in failed state. Possible values are `insufficient_funds`, `transaction_denied`, `transaction_failed`, and `transaction_returned`.




**`riskEvaluation`** _object_ An object with two attributes, `decision` and `reason`.




**`return`** _object_ A Return object if the payout was returned.




**`createDate`** _string_ ISO-8601 UTC date/time format.




**`updateDate`** _string_ ISO-8601 UTC date/time format.

## Transfer Object

A `transfer` object represents a transfer of funds from a Circle wallet to a blockchain address, from a blockchain address to a Circle wallet, or between two Circle wallets.

### Example Transfer Object



### Transfer Attributes




**`id`** _string_ A `UUID` for the transfer.




**`source`** _object_ A [Source object](🔗) representing the source of the transfer.




**`destination`** _object_ A [Destination object](🔗) representing the destination of the transfer.




**`amount`** _object_ A [Money object](🔗) representing the amount transferred between source and destination.




**`transactionHash`** _string_ A hash that uniquely identifies an on-chain transaction. This is only available when either `source` or `destination` are of type `blockchain`.




**`status`** _string_ Status of the transfer. Status `pending` indicates that the transfer is in the process of running; `complete` indicates it finished successfully; `failed` indicates it failed. **`createDate`** _string_ ISO-8601 UTC date/time format.




# Methods and Instruments

## Card Object



## Wire Account Object



## Wallet Object

Wallets represent balances managed by Circle. A single wallet is designed to hold multiple balances, but only one balance per currency. As the only supported currency is "USD", all wallets today have a single balance.

Unlike other resources in our APIs, wallet IDs are shorter numerical strings and are not represented as longer UUIDs.



# Additional Resources

Below is a list of resources that relate to an original payment or payout. They represent subsequent events that happen after the initial creation or settlement of the payment/payout.

## Settlement Object

When one or more payments in a batch settle, it means that the funds have cleared, USDC has been minted, and your funds have been made available at the specified `merchantWalletId`. Generally, payments made on the same business day are batched and settle together. Payments that have settled will have a `status` of `paid`.

Settlements can also include debits caused by refunds, reversals, and chargebacks.

The total credits, debits, and fees are all summed into a single settlement object.



## Chargeback Object

Chargebacks apply only to card payments, and occur when a customer requests their bank to return the funds for a purchase or when a customer's bank detects a problem with the transaction.

The `paymentId` points to the original payment that is being charged back, and the `merchantId` is the merchant that the original payment was paid to.



## Cancel Object

A cancel object represents an attempt at canceling a payment. Cancellations apply only to card payments, and its presence doesn't necessarily mean that the cancellation was successful. A successful cancellation has a `status` of `paid`.



## Refund Object

A refund object represents an attempt at refunding a payment. Its presence doesn't mean that the refund was successful. A successful refund has a `status` of `paid`.



## Return Object

Returns apply to payouts (wires) and represent instances where the receiving bank subsequently rejected/returned a payout.



# Nested Resources

Below is a list of resources that are commonly used in other objects.

## Source and Destination Objects

Payments, payouts, and transfers reference `source` and `destination` objects, which as the names suggest, tell you where the funds are coming from and where they're going.

Sources and destinations can have the following types:

  • `card` for card payments

  • `wire` for wire payments and payouts

  • `blockchain` for transfers to/from blockchain addresses

  • `wallet` for transfers to/from a Circle `wallet`



## Money Object

Monetary amounts across our APIs are represented as Money objects, which consist of an `amount` and a `currency`. The only supported currency at the moment is `USD`, and the amount is denominated in dollars as a string with fractional cents. In the example below, the amount being represented is $3.14.



## Blockchain Addresses



## Merchants