Dodo Payments
Merchant of Record for digital products and SaaS. Create hosted checkouts and read payments and products; Dodo handles global sales tax and invoicing.
setup_integration or the Dashboard Vault — they're encrypted
with AES-256-GCM and never exposed.
Required Credentials
Get your API key at dodopayments.com →
Endpoints (5)
Create a hosted checkout session for one or more Dodo products. Redirect the customer to the returned checkout_url. Product prices come from Dodo, not from the request.
| Field | Type | Required | Description |
|---|---|---|---|
product_cart |
array | ✓ Yes | Products to buy. Example: [{"product_id": "pdt_xxx", "quantity": 1}]. |
customer |
array | No | Customer object, e.g. {"email": "jane@example.com", "name": "Jane Doe"}, or {"customer_id": "cus_xxx"} for an existing customer. |
billing_address |
array | No | Billing address object: country (ISO 2, required inside the object), state, city, street, zipcode. |
billing_currency |
string | No | ISO currency code to charge in, e.g. "USD", "EUR". |
return_url |
url | No | URL the customer returns to after checkout. |
discount_codes |
array | No | Discount codes to apply, e.g. ["LAUNCH20"]. |
metadata |
array | No | Key-value metadata stored with the payment, e.g. {"order_ref": "ORD-2026-0042"}. |
Get one payment with its status and amounts. Use this to confirm a payment server-side before granting access.
| Field | Type | Required | Description |
|---|---|---|---|
payment_id |
string | ✓ Yes | Dodo payment id, e.g. "pay_xxx". |
List payments, newest first. Filter by status, customer, product or date.
| Field | Type | Required | Description |
|---|---|---|---|
status |
string | No | Filter by status, e.g. "succeeded", "failed", "processing", "cancelled". |
customer_id |
string | No | Filter by customer id. |
product_id |
string | No | Filter by product id. |
created_at_gte |
string | No | Only payments created at or after this ISO 8601 time. |
created_at_lte |
string | No | Only payments created at or before this ISO 8601 time. |
page_size |
integer | No | Results per page (default 10, max 100). |
page_number |
integer | No | Page number, starting at 0. |
List products on the Dodo account.
| Field | Type | Required | Description |
|---|---|---|---|
page_size |
integer | No | Results per page (default 10, max 100). |
page_number |
integer | No | Page number, starting at 0. |
Get one product with its price and settings.
| Field | Type | Required | Description |
|---|---|---|---|
product_id |
string | ✓ Yes | Dodo product id, e.g. "pdt_xxx". |
MCP Tool Names
When using this integration through an AI assistant (Claude, ChatGPT, Cursor, etc.), the endpoints are available as MCP tools:
| Endpoint | MCP Tool Name |
|---|---|
| create-checkout | dodo-payments_create_checkout |
| get-payment | dodo-payments_get_payment |
| list-payments | dodo-payments_list_payments |
| list-products | dodo-payments_list_products |
| get-product | dodo-payments_get_product |
Website