Coinbase · Schema
Coinbase Commerce Charge
A Commerce charge representing a cryptocurrency payment request. Charges generate blockchain addresses where customers can send payments, and track the payment lifecycle from creation through confirmation or failure.
BlockchainCryptocurrencyCustodyExchangeOnrampPaymentsTradingWalletWeb3
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Unique charge identifier assigned by Coinbase Commerce |
| code | string | Short unique code for the charge, used in hosted URLs |
| name | string | Name describing what the charge is for |
| description | string | Detailed description of the charge |
| pricing_type | string | Pricing model for the charge |
| local_price | object | Price in a local fiat currency (required for fixed_price) |
| pricing | object | Pricing expressed in multiple currencies |
| addresses | object | Blockchain addresses generated for receiving payment, keyed by network name |
| hosted_url | string | URL for the hosted payment page |
| redirect_url | string | URL to redirect to after successful payment |
| cancel_url | string | URL to redirect to if payment is cancelled |
| payments | array | Payments received for this charge |
| timeline | array | Chronological list of status changes |
| metadata | object | Custom key-value metadata for integrations |
| created_at | string | When the charge was created |
| confirmed_at | string | When the charge was confirmed |
| expires_at | string | When the charge expires |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://coinbase.com/schemas/coinbase/charge.json",
"title": "Coinbase Commerce Charge",
"description": "A Commerce charge representing a cryptocurrency payment request. Charges generate blockchain addresses where customers can send payments, and track the payment lifecycle from creation through confirmation or failure.",
"type": "object",
"required": ["name", "description", "pricing_type"],
"properties": {
"id": {
"type": "string",
"description": "Unique charge identifier assigned by Coinbase Commerce"
},
"code": {
"type": "string",
"description": "Short unique code for the charge, used in hosted URLs",
"pattern": "^[A-Z0-9]+$"
},
"name": {
"type": "string",
"description": "Name describing what the charge is for",
"minLength": 1,
"maxLength": 200
},
"description": {
"type": "string",
"description": "Detailed description of the charge",
"maxLength": 1000
},
"pricing_type": {
"type": "string",
"description": "Pricing model for the charge",
"enum": ["no_price", "fixed_price"]
},
"local_price": {
"$ref": "#/$defs/Money",
"description": "Price in a local fiat currency (required for fixed_price)"
},
"pricing": {
"type": "object",
"description": "Pricing expressed in multiple currencies",
"additionalProperties": {
"$ref": "#/$defs/Money"
}
},
"addresses": {
"type": "object",
"description": "Blockchain addresses generated for receiving payment, keyed by network name",
"additionalProperties": {
"type": "string",
"description": "Blockchain address"
}
},
"hosted_url": {
"type": "string",
"format": "uri",
"description": "URL for the hosted payment page"
},
"redirect_url": {
"type": "string",
"format": "uri",
"description": "URL to redirect to after successful payment"
},
"cancel_url": {
"type": "string",
"format": "uri",
"description": "URL to redirect to if payment is cancelled"
},
"payments": {
"type": "array",
"description": "Payments received for this charge",
"items": {
"$ref": "#/$defs/Payment"
}
},
"timeline": {
"type": "array",
"description": "Chronological list of status changes",
"items": {
"$ref": "#/$defs/TimelineEntry"
}
},
"metadata": {
"type": "object",
"description": "Custom key-value metadata for integrations",
"additionalProperties": {
"type": "string"
}
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "When the charge was created"
},
"confirmed_at": {
"type": "string",
"format": "date-time",
"description": "When the charge was confirmed"
},
"expires_at": {
"type": "string",
"format": "date-time",
"description": "When the charge expires"
}
},
"$defs": {
"Money": {
"type": "object",
"description": "A monetary value with currency",
"required": ["amount", "currency"],
"properties": {
"amount": {
"type": "string",
"description": "Monetary amount as a decimal string",
"pattern": "^[0-9]+(\\.[0-9]+)?$"
},
"currency": {
"type": "string",
"description": "Currency code (e.g., USD, BTC, ETH)",
"minLength": 1,
"maxLength": 10
}
}
},
"Payment": {
"type": "object",
"description": "A blockchain payment received for a charge",
"properties": {
"network": {
"type": "string",
"description": "Blockchain network the payment was made on"
},
"transaction_id": {
"type": "string",
"description": "Blockchain transaction hash"
},
"status": {
"type": "string",
"description": "Payment confirmation status",
"enum": ["PENDING", "CONFIRMED", "FAILED"]
},
"value": {
"$ref": "#/$defs/Money",
"description": "Payment value"
},
"block": {
"type": "object",
"description": "Blockchain block information",
"properties": {
"height": {
"type": "integer",
"description": "Block height",
"minimum": 0
},
"hash": {
"type": "string",
"description": "Block hash"
},
"confirmations_required": {
"type": "integer",
"description": "Number of confirmations required",
"minimum": 1
},
"confirmations": {
"type": "integer",
"description": "Number of confirmations received",
"minimum": 0
}
}
}
}
},
"TimelineEntry": {
"type": "object",
"description": "A status change entry in the charge timeline",
"properties": {
"time": {
"type": "string",
"format": "date-time",
"description": "When the status change occurred"
},
"status": {
"type": "string",
"description": "Status at this point in the timeline",
"enum": ["NEW", "PENDING", "COMPLETED", "EXPIRED", "UNRESOLVED", "RESOLVED", "CANCELED"]
}
}
}
}
}