The Charge object
The Charge object represents a single attempt to move money into your Zoneless account. PaymentIntent confirmation is the most common way to create Charges. Some legacy payment flows create Charges directly, which is not recommended for new integrations.
Attributes
Amount intended to be collected by this payment. A positive integer in the smallest currency unit. For USDC, this is cents (e.g., 100 = $1 USDC). The amount value supports up to eight digits.
Amount in the smallest currency unit captured (can be less than amount if a partial capture was made).
Amount in the smallest currency unit refunded (can be less than amount if a partial refund was issued).
The amount of the application fee (if any) requested for the charge, in the smallest currency unit.
ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes).
Billing information associated with the payment method at the time of the transaction.
The full statement descriptor after static and dynamic portions are combined. Retained for API compatibility; USDC transfers on Solana do not display bank statement descriptors.
Difference from Stripe: Blockchain payments have no card network statement descriptor. This field is typically null.
If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured.
Three-letter currency code, in lowercase. For Zoneless, this is typically usdc.
Difference from Stripe: Uses usdc instead of fiat currency codes like usd.
An arbitrary string attached to the object. Often useful for displaying to users.
ID of the balance transaction that describes the reversal of the balance on your account due to payment failure.
Message further explaining the reason for charge failure, if available.
Has the value true if the object exists in live mode or the value false if the object exists in test mode.
Set of key-value pairs that you can attach to an object. Useful for storing additional information in a structured format.
The connected account (if any) the charge was made on behalf of without triggering an automatic transfer.
Details about the payment method at the time of the transaction.
Difference from Stripe: Zoneless charges typically use type: "crypto" with USDC wallet details. Other payment method hashes may appear for API compatibility but are not used for settlement.
Information about the currency presentation to the customer, including the displayed currency and amount used for conversion.
The transaction number that appears on email receipts sent for this charge. This attribute is null until a receipt has been sent.
Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute remains false.
The transfer ID which created this charge. Only present if the charge came from another Zoneless account.
Text that appears as the statement descriptor for non-card charges. Retained for API compatibility; Solana USDC transfers do not display bank statement descriptors.
Suffix concatenated with the account statement descriptor prefix. Retained for API compatibility.
The status of the payment.
succeededThe charge succeeded.pendingThe charge is authorized but not yet captured, or still processing.failedThe charge failed.ID of the transfer to the destination account (only applicable if the charge was created using destination / transfer data).
An optional dictionary including the account to automatically transfer to as part of a destination charge.
{
"id": "ch_z_3NqR2xLkdIwHu7ix8kP4mQ2a",
"object": "charge",
"amount": 2500,
"amount_captured": 2500,
"amount_refunded": 0,
"application": null,
"application_fee": null,
"application_fee_amount": null,
"balance_transaction": "txn_z_3NqR2xLkdIwHu7ix2bR9nT4c",
"billing_details": {
"address": {
"city": null,
"country": null,
"line1": null,
"line2": null,
"postal_code": null,
"state": null
},
"email": "ava.chen@example.com",
"name": "Ava Chen",
"phone": null,
"tax_id": null
},
"calculated_statement_descriptor": null,
"captured": true,
"created": 1716234567,
"currency": "usdc",
"customer": "cus_z_NffrFeUfNV2Hib",
"description": "Order #4821",
"disputed": false,
"failure_balance_transaction": null,
"failure_code": null,
"failure_message": null,
"fraud_details": {},
"livemode": false,
"metadata": {},
"on_behalf_of": null,
"outcome": {
"advice_code": null,
"network_advice_code": null,
"network_decline_code": null,
"network_status": "approved_by_network",
"reason": null,
"risk_level": "normal",
"risk_score": null,
"rule": null,
"seller_message": "Payment complete.",
"type": "authorized"
},
"paid": true,
"payment_intent": "pi_z_3NqR2xLkdIwHu7ix1aK8vL3d",
"payment_method": "pm_z_1NqR2xLkdIwHu7ixWallet9",
"payment_method_details": {
"type": "crypto",
"crypto": {
"buyer_address": "8xK2Nv3FpQ7mR9sT1uVwXyZ4aBcDeFgH",
"fingerprint": null,
"network": "solana",
"token_currency": "usdc",
"transaction_hash": "5xK9mNpQ2rStUvWxYzAbCdEfGhIjKlMnOpQr"
}
},
"presentment_details": null,
"radar_options": null,
"receipt_email": "ava.chen@example.com",
"receipt_number": null,
"receipt_url": null,
"refunded": false,
"refunds": {
"object": "list",
"data": [],
"has_more": false,
"url": "/v1/charges/ch_z_3NqR2xLkdIwHu7ix8kP4mQ2a/refunds"
},
"review": null,
"shipping": null,
"source_transfer": null,
"statement_descriptor": null,
"statement_descriptor_suffix": null,
"status": "succeeded",
"transfer": null,
"transfer_data": null,
"transfer_group": null,
"platform_account": "acct_z_Platform123abc"
}