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.

BlockchainCryptocurrencyCustodyExchangeOn-RampPaymentsTradingWalletsWeb3

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
View JSON Schema on GitHub

JSON Schema

coinbase-charge-schema.json Raw ↑
{
  "$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"]
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/coinbase-charge"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.