Browse the docs

Products

Products in Allpage: its screens, what you can do there and its operations.

Availability. Works when the business has it turned on and its plan includes it. Otherwise its tools answer needs (kind module) with how to turn it on: business.useTool, or a plan that includes it.

Screens

  • Products (/products)
  • Orders (/orders)
  • Gift cards (/gift-cards)
  • Money (/money)
  • Sales tax (/sales-tax)

What you can do

  • Add a product: the assistant asks you first
  • Change a product: the assistant asks you first
  • Take a product off sale: the assistant asks you first
  • Put a product back on sale: the assistant asks you first
  • Set how many are in stock: the assistant can do it on its own
  • Set where you collect sales tax: the assistant can do it on its own
  • Set a price: the assistant asks you first
  • Stop offering a price: the assistant asks you first
  • Offer a price again: the assistant asks you first
  • Keep a quote: the assistant can do it on its own
  • Add an audience: the assistant asks you first
  • Change an audience: the assistant asks you first
  • Retire an audience: the assistant asks you first
  • Bring back an audience: the assistant asks you first
  • Add a customer to an audience: the assistant can do it on its own
  • Take a customer out of an audience: the assistant asks you first
  • Make a link into an audience: the assistant can do it on its own
  • Turn off a link into an audience: the assistant asks you first
  • Set a discount: the assistant asks you first
  • Stop a discount: the assistant asks you first
  • Start a discount again: the assistant asks you first
  • Add a code: the assistant asks you first
  • Turn off a code: the assistant asks you first
  • Turn a code back on: the assistant asks you first
  • Write an offer: the assistant can do it on its own
  • Send an offer: the assistant can prepare it and you confirm it, twice
  • Withdraw an offer: the assistant asks you first
  • Mark a charge paid: the assistant asks you first
  • Approve and charge: the assistant can prepare it and you confirm it, twice
  • Charge the balance: the assistant can prepare it and you confirm it, twice
  • Charge the hold: the assistant can prepare it and you confirm it, twice
  • Pause: the assistant asks you first
  • Resume: the assistant asks you first
  • Choose what happens when a card keeps failing: the assistant asks you first
  • Cancel a sale: the assistant can prepare it and you confirm it, twice
  • Decline a quote request: the assistant asks you first
  • Freeze billing on a repeating charge: the assistant asks you first
  • End a billing freeze: the assistant asks you first
  • Refund a charge: the assistant can prepare it and you confirm it, twice
  • Give store credit: the assistant can prepare it and you confirm it, twice
  • Update orders: the assistant asks you first
  • Cancel an order: the assistant can prepare it and you confirm it, twice
  • Skip a delivery: the assistant asks you first
  • Change where orders go: the assistant asks you first
  • Change shipping: the assistant asks you first
  • Buy a shipping label: the assistant can prepare it and you confirm it, twice
  • Download your sales: only you can do it, on its screen

For apps

Tools

  • sales_createProduct (Add a product): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_updateProduct (Change a product): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_archiveProduct (Take a product off sale): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_restoreProduct (Put a product back on sale): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_setInventory (Set how many are in stock): a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
  • sales_setTaxRegions (Set where you collect sales tax): a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
  • sales_publishPrice (Set a price): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_archivePrice (Stop offering a price): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_restorePrice (Offer a price again): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_saveQuote (Keep a quote): a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
  • sales_createAudience (Add an audience): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_updateAudience (Change an audience): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_archiveAudience (Retire an audience): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_restoreAudience (Bring back an audience): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_addToAudience (Add a customer to an audience): a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
  • sales_removeFromAudience (Take a customer out of an audience): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_createAudienceLink (Make a link into an audience): a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
  • sales_revokeAudienceLink (Turn off a link into an audience): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_publishAdjustment (Set a discount): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_archiveAdjustment (Stop a discount): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_restoreAdjustment (Start a discount again): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_createCode (Add a code): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_archiveCode (Turn off a code): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_restoreCode (Turn a code back on): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_draftOffer (Write an offer): a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval
  • sales_sendOffer (Send an offer): waits for the owner to confirm it in Allpage, whatever they chose for your app
  • sales_withdrawOffer (Withdraw an offer): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_markPaid (Mark a charge paid): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_approveCharge (Approve and charge): waits for the owner to confirm it in Allpage, whatever they chose for your app
  • sales_collectBalance (Charge the balance): waits for the owner to confirm it in Allpage, whatever they chose for your app
  • sales_capture (Charge the hold): waits for the owner to confirm it in Allpage, whatever they chose for your app
  • sales_pauseAgreement (Pause): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_resumeAgreement (Resume): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_setUnpaidPolicy (Choose what happens when a card keeps failing): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_cancelAgreement (Cancel a sale): waits for the owner to confirm it in Allpage, whatever they chose for your app
  • sales_declineRequest (Decline a quote request): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_freezeAgreement (Freeze billing on a repeating charge): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_unfreezeAgreement (End a billing freeze): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_refundCharge (Refund a charge): waits for the owner to confirm it in Allpage, whatever they chose for your app
  • sales_giveCredit (Give store credit): waits for the owner to confirm it in Allpage, whatever they chose for your app
  • sales_markOrders (Update orders): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_cancelOrder (Cancel an order): waits for the owner to confirm it in Allpage, whatever they chose for your app
  • sales_skipDelivery (Skip a delivery): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_setShipTo (Change where orders go): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_saveShipping (Change shipping): customers see it: waits for the owner’s approval unless they chose Just do it for your app
  • sales_buyLabel (Buy a shipping label): waits for the owner to confirm it in Allpage, whatever they chose for your app

Reads

  • sales_money (See what came in, what’s owed and what was kept in a month)
  • sales_salesTax (See where you collect sales tax)
  • sales_revenue (See what you took in a month)
  • sales_invoices (List your invoices)
  • sales_products (List products)
  • sales_product (Look up a product)
  • sales_productPolicies (The cancellation policy products are sold under)
  • sales_prices (A product’s prices)
  • sales_quote (Price a cart)
  • sales_priceList (What things cost)
  • sales_audiences (Audiences)
  • sales_segmentMembers (See who’s in an audience)
  • sales_adjustments (Discounts)
  • sales_codes (Discount codes)
  • sales_previewSale (See a sale before it’s agreed)
  • sales_agreements (List your sales and what each needs)
  • sales_agreement (See one sale in full)
  • sales_offer (An offer to accept)
  • sales_quoteRequests (Quote requests)
  • sales_paidUp (Whether a sale is paid up)
  • sales_payment (A payment to make)
  • sales_priceConfirmation (A new price to confirm)
  • sales_heldPayment (A held booking to pay)
  • sales_policyMoney (See how your policies use payments)
  • sales_giftCardBalance (Check a gift card’s balance)
  • sales_giftCards (Gift cards and store credit)
  • sales_orders (Orders to send)
  • sales_order (An order)
  • sales_pickups (Pickups by time)
  • sales_pickupDays (Pickup days with room)
  • sales_shipping (How you ship)
  • sales_labelRates (Label rates for an order)
  • sales_today (See what’s owed and what’s to send)
  • sales_customer (See what a customer owes and has bought)
  • sales_salesOwed (See what’s owed on some sales)
  • sales_summary (What’s going on)

Only the owner, in Allpage

  • Download your sales

The owner’s screens

  • Products (/products)
  • Orders (/orders)
  • Gift cards (/gift-cards)
  • Money (/money)
  • Sales tax (/sales-tax)

Operations

Each one's input and output, as JSON Schema. Ids are typed (typed ids).

commerce.addToAudience

Add a customer to an audience

Kind
Change
Tool
sales_addToAudience
Scope
commerce:write
Reached by
API, MCP

a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "audienceId": {
      "type": "string",
      "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A audience id: aud_ and 26 letters and digits."
    },
    "customerId": {
      "type": "string",
      "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A customer id: cus_ and 26 letters and digits."
    }
  },
  "required": [
    "audienceId",
    "customerId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.adjustments

Discounts

Kind
Read
Tool
sales_adjustments
Scope
commerce:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "archived": {
      "default": false,
      "description": "Include stopped ones.",
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "adjustments": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "adjustmentId": {
                    "type": "string",
                    "pattern": "^adj_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A adjustment id: adj_ and 26 letters and digits."
                  },
                  "versionId": {
                    "type": "string",
                    "pattern": "^adv_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A adjustment version id: adv_ and 26 letters and digits."
                  },
                  "version": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "name": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "effect": {
                    "type": "string",
                    "enum": [
                      "percent",
                      "amount",
                      "fixed_price",
                      "free_item",
                      "buy_x_get_y"
                    ]
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "active",
                      "archived"
                    ]
                  },
                  "stackingGroup": {
                    "type": "string"
                  },
                  "priority": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "audienceId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A audience id: aud_ and 26 letters and digits."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "requiresCode": {
                    "type": "boolean"
                  },
                  "reads": {
                    "type": "string",
                    "enum": [
                      "pinned",
                      "live"
                    ]
                  },
                  "firstNCharges": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "startsAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "endsAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "used": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "spentMinor": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "maxRedemptions": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "budgetMinor": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "findings": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "type": "string",
                          "enum": [
                            "shadowed",
                            "duplicate_priority",
                            "unseen_value",
                            "public_price",
                            "duplicate_price"
                          ]
                        },
                        "message": {
                          "type": "string"
                        },
                        "adjustmentId": {
                          "type": "string",
                          "pattern": "^adj_[0-9a-hjkmnp-tv-z]{26}$",
                          "description": "A adjustment id: adj_ and 26 letters and digits."
                        },
                        "priceId": {
                          "type": "string",
                          "pattern": "^pri_[0-9a-hjkmnp-tv-z]{26}$",
                          "description": "A price id: pri_ and 26 letters and digits."
                        }
                      },
                      "required": [
                        "kind",
                        "message"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "adjustmentId",
                  "versionId",
                  "version",
                  "name",
                  "label",
                  "effect",
                  "status",
                  "stackingGroup",
                  "priority",
                  "audienceId",
                  "requiresCode",
                  "reads",
                  "firstNCharges",
                  "startsAt",
                  "endsAt",
                  "used",
                  "spentMinor",
                  "maxRedemptions",
                  "budgetMinor",
                  "findings"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "adjustments"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.agreement

See one sale in full

Kind
Read
Tool
sales_agreement
Scope
commerce:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A agreement id: agr_ and 26 letters and digits."
    }
  },
  "required": [
    "agreementId"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "agreementId": {
              "type": "string",
              "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
              "description": "A agreement id: agr_ and 26 letters and digits."
            },
            "customerId": {
              "type": "string",
              "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
              "description": "A customer id: cus_ and 26 letters and digits."
            },
            "status": {
              "type": "string",
              "enum": [
                "draft",
                "offered",
                "accepted",
                "active",
                "past_due",
                "paused",
                "active_unpaid",
                "cancel_scheduled",
                "cancelled",
                "fulfilled",
                "expired",
                "abandoned"
              ]
            },
            "collect": {
              "type": "string",
              "enum": [
                "card",
                "authorize",
                "save_then_charge",
                "invoice",
                "in_person"
              ]
            },
            "what": {
              "type": "string"
            },
            "total": {
              "type": "string"
            },
            "repeats": {
              "type": "boolean"
            },
            "lines": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "productId": {
                    "type": "string",
                    "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A product id: prd_ and 26 letters and digits."
                  },
                  "name": {
                    "type": "string"
                  },
                  "quantity": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "versionId": {
                    "type": "string",
                    "pattern": "^prv_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A price version id: prv_ and 26 letters and digits."
                  },
                  "total": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "service",
                      "physical",
                      "digital",
                      "access",
                      "bundle",
                      "gift_card",
                      "shipping"
                    ]
                  }
                },
                "required": [
                  "productId",
                  "name",
                  "quantity",
                  "versionId",
                  "total",
                  "type"
                ],
                "additionalProperties": false
              }
            },
            "terms": {
              "type": "string"
            },
            "renewalTerms": {
              "type": [
                "string",
                "null"
              ]
            },
            "charges": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "chargeId": {
                    "type": "string",
                    "pattern": "^chg_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A charge id: chg_ and 26 letters and digits."
                  },
                  "step": {
                    "type": "string",
                    "enum": [
                      "charge_now",
                      "deposit_now",
                      "balance_at",
                      "authorize_now",
                      "charge_on",
                      "recurring",
                      "invoice",
                      "in_person",
                      "fee",
                      "installment",
                      "stored_value"
                    ]
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "pending",
                      "needs_consent",
                      "held",
                      "due_in_person",
                      "collecting",
                      "requires_action",
                      "authorized",
                      "paid",
                      "failed",
                      "refunded",
                      "disputed",
                      "cancelled"
                    ]
                  },
                  "amountMinor": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "amount": {
                    "type": "string"
                  },
                  "dueAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "paidAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "periodStart": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "periodEnd": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "trial": {
                    "type": "boolean"
                  },
                  "descriptor": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "refundedMinor": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "taxMinor": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "paymentIntent": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "disputeStatus": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "open",
                          "won",
                          "lost"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "words": {
                    "type": "string"
                  },
                  "failure": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "why": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "engineVersion": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "versions": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "productId": {
                                  "type": "string",
                                  "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
                                  "description": "A product id: prd_ and 26 letters and digits."
                                },
                                "versionId": {
                                  "type": "string",
                                  "pattern": "^prv_[0-9a-hjkmnp-tv-z]{26}$",
                                  "description": "A price version id: prv_ and 26 letters and digits."
                                },
                                "why": {
                                  "type": "string",
                                  "enum": [
                                    "list",
                                    "audience",
                                    "pinned",
                                    "migrated"
                                  ]
                                }
                              },
                              "required": [
                                "productId",
                                "versionId",
                                "why"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "audiences": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "audienceId": {
                                  "type": "string",
                                  "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$",
                                  "description": "A audience id: aud_ and 26 letters and digits."
                                },
                                "proof": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "audienceId",
                                "proof"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "adjustments": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "adjustmentId": {
                                  "type": "string",
                                  "pattern": "^adj_[0-9a-hjkmnp-tv-z]{26}$",
                                  "description": "A adjustment id: adj_ and 26 letters and digits."
                                },
                                "versionId": {
                                  "type": "string",
                                  "pattern": "^adv_[0-9a-hjkmnp-tv-z]{26}$",
                                  "description": "A adjustment version id: adv_ and 26 letters and digits."
                                },
                                "amountMinor": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "adjustmentId",
                                "versionId",
                                "amountMinor"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "engineVersion",
                          "versions",
                          "audiences",
                          "adjustments"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "chargeId",
                  "step",
                  "status",
                  "amountMinor",
                  "amount",
                  "dueAt",
                  "paidAt",
                  "periodStart",
                  "periodEnd",
                  "trial",
                  "descriptor",
                  "refundedMinor",
                  "taxMinor",
                  "paymentIntent",
                  "disputeStatus",
                  "words",
                  "failure",
                  "why"
                ],
                "additionalProperties": false
              }
            },
            "audiences": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "audienceId": {
                    "type": "string",
                    "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A audience id: aud_ and 26 letters and digits."
                  },
                  "name": {
                    "type": "string"
                  },
                  "proof": {
                    "type": "string"
                  },
                  "linkId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^aul_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A audience link id: aul_ and 26 letters and digits."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "codeId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^cod_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A code id: cod_ and 26 letters and digits."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "audienceId",
                  "name",
                  "proof",
                  "linkId",
                  "codeId"
                ],
                "additionalProperties": false
              }
            },
            "adjustments": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "adjustmentId": {
                    "type": "string",
                    "pattern": "^adj_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A adjustment id: adj_ and 26 letters and digits."
                  },
                  "versionId": {
                    "type": "string",
                    "pattern": "^adv_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A adjustment version id: adv_ and 26 letters and digits."
                  },
                  "codeId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^cod_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A code id: cod_ and 26 letters and digits."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "name": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "string"
                  },
                  "firstNCharges": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "reads": {
                    "type": "string",
                    "enum": [
                      "pinned",
                      "live"
                    ]
                  }
                },
                "required": [
                  "adjustmentId",
                  "versionId",
                  "codeId",
                  "name",
                  "amount",
                  "firstNCharges",
                  "reads"
                ],
                "additionalProperties": false
              }
            },
            "access": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "endsAt": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "date-time",
                          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "endsAt",
                    "status"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "grantIds": {
              "type": "array",
              "items": {
                "type": "string",
                "pattern": "^grt_[0-9a-hjkmnp-tv-z]{26}$",
                "description": "A grant id: grt_ and 26 letters and digits."
              }
            },
            "frozen": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "from": {
                      "type": "string"
                    },
                    "until": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "from",
                    "until"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "expiresAt": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "approveBy": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "eventAt": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "trialEndsAt": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "nextChargeOn": {
              "type": [
                "string",
                "null"
              ]
            },
            "cancelAt": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "needs": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "send",
                    "approve",
                    "mark_paid",
                    "collect_balance",
                    "capture"
                  ]
                },
                {
                  "type": "null"
                }
              ]
            },
            "cardSaved": {
              "type": "boolean"
            },
            "canCancel": {
              "type": "boolean"
            },
            "cancelWords": {
              "type": [
                "string",
                "null"
              ]
            },
            "stopsOn": {
              "type": [
                "string",
                "null"
              ]
            },
            "order": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "orderId": {
                      "type": "string",
                      "pattern": "^ord_[0-9a-hjkmnp-tv-z]{26}$",
                      "description": "A order id: ord_ and 26 letters and digits."
                    },
                    "agreementId": {
                      "type": "string",
                      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
                      "description": "A agreement id: agr_ and 26 letters and digits."
                    },
                    "customerId": {
                      "type": "string",
                      "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
                      "description": "A customer id: cus_ and 26 letters and digits."
                    },
                    "customer": {
                      "type": "string"
                    },
                    "number": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    "subscription": {
                      "type": "boolean"
                    },
                    "method": {
                      "type": "string",
                      "enum": [
                        "ship",
                        "local_delivery",
                        "pickup"
                      ]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "unfulfilled",
                        "packed",
                        "shipped",
                        "delivered",
                        "picked_up",
                        "cancelled"
                      ]
                    },
                    "statusLabel": {
                      "type": "string"
                    },
                    "what": {
                      "type": "string"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "quantity": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "name",
                          "quantity"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "shipTo": {
                      "anyOf": [
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "pickupOn": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "pickupAt": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "date-time",
                          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "note": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "tracking": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "carrier": {
                              "type": "string"
                            },
                            "number": {
                              "type": "string"
                            },
                            "url": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "carrier",
                            "number",
                            "url"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "stockNote": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "service": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "labelUrl": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "labelBuying": {
                      "type": "boolean"
                    },
                    "next": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "unfulfilled",
                          "packed",
                          "shipped",
                          "delivered",
                          "picked_up",
                          "cancelled"
                        ]
                      }
                    },
                    "canCancel": {
                      "type": "boolean"
                    },
                    "placedAt": {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                    }
                  },
                  "required": [
                    "orderId",
                    "agreementId",
                    "customerId",
                    "customer",
                    "number",
                    "subscription",
                    "method",
                    "status",
                    "statusLabel",
                    "what",
                    "items",
                    "shipTo",
                    "pickupOn",
                    "pickupAt",
                    "note",
                    "tracking",
                    "stockNote",
                    "service",
                    "labelUrl",
                    "labelBuying",
                    "next",
                    "canCancel",
                    "placedAt"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "agreementId",
            "customerId",
            "status",
            "collect",
            "what",
            "total",
            "repeats",
            "lines",
            "terms",
            "renewalTerms",
            "charges",
            "audiences",
            "adjustments",
            "access",
            "grantIds",
            "frozen",
            "expiresAt",
            "approveBy",
            "eventAt",
            "trialEndsAt",
            "nextChargeOn",
            "cancelAt",
            "needs",
            "cardSaved",
            "canCancel",
            "cancelWords",
            "stopsOn",
            "order"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.agreements

List your sales and what each needs

Kind
Read
Tool
sales_agreements
Scope
commerce:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "show": {
      "default": "open",
      "description": "Open: not ended yet (offers, running sales). Ended: done, cancelled or lapsed.",
      "type": "string",
      "enum": [
        "open",
        "ended",
        "all"
      ]
    },
    "customerId": {
      "type": "string",
      "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A customer id: cus_ and 26 letters and digits."
    }
  },
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "agreements": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "agreementId": {
                    "type": "string",
                    "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A agreement id: agr_ and 26 letters and digits."
                  },
                  "customerId": {
                    "type": "string",
                    "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A customer id: cus_ and 26 letters and digits."
                  },
                  "customer": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "offered",
                      "accepted",
                      "active",
                      "past_due",
                      "paused",
                      "active_unpaid",
                      "cancel_scheduled",
                      "cancelled",
                      "fulfilled",
                      "expired",
                      "abandoned"
                    ]
                  },
                  "what": {
                    "type": "string"
                  },
                  "total": {
                    "type": "string"
                  },
                  "collect": {
                    "type": "string",
                    "enum": [
                      "card",
                      "authorize",
                      "save_then_charge",
                      "invoice",
                      "in_person"
                    ]
                  },
                  "repeats": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                  },
                  "expiresAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "approveBy": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "nextChargeOn": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "needs": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "send",
                          "approve",
                          "mark_paid",
                          "collect_balance",
                          "capture"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "chargeId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^chg_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A charge id: chg_ and 26 letters and digits."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "charges": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "chargeId": {
                          "type": "string",
                          "pattern": "^chg_[0-9a-hjkmnp-tv-z]{26}$",
                          "description": "A charge id: chg_ and 26 letters and digits."
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "pending",
                            "needs_consent",
                            "held",
                            "due_in_person",
                            "collecting",
                            "requires_action",
                            "authorized",
                            "paid",
                            "failed",
                            "refunded",
                            "disputed",
                            "cancelled"
                          ]
                        },
                        "amount": {
                          "type": "string"
                        },
                        "words": {
                          "type": "string"
                        },
                        "refundable": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "chargeId",
                        "status",
                        "amount",
                        "words",
                        "refundable"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "onUnpaid": {
                    "type": "string",
                    "enum": [
                      "pause",
                      "cancel",
                      "keep"
                    ]
                  },
                  "frozen": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "from": {
                            "type": "string"
                          },
                          "until": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "from",
                          "until"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "skip": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "on": {
                            "type": "string"
                          },
                          "title": {
                            "type": "string"
                          },
                          "lines": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "on",
                          "title",
                          "lines"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "agreementId",
                  "customerId",
                  "customer",
                  "status",
                  "what",
                  "total",
                  "collect",
                  "repeats",
                  "createdAt",
                  "expiresAt",
                  "approveBy",
                  "nextChargeOn",
                  "needs",
                  "chargeId",
                  "charges",
                  "onUnpaid",
                  "frozen",
                  "skip"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "agreements"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.approveCharge

Approve and charge

Kind
Change
Tool
sales_approveCharge
Scope
commerce:write
Reached by
API, MCP, ChatGPT

waits for the owner to confirm it in Allpage, whatever they chose for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A agreement id: agr_ and 26 letters and digits."
    }
  },
  "required": [
    "agreementId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.archiveAdjustment

Stop a discount

Kind
Change
Tool
sales_archiveAdjustment
Scope
commerce:write
Reached by
API, MCP, ChatGPT

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "adjustmentId": {
      "type": "string",
      "pattern": "^adj_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A adjustment id: adj_ and 26 letters and digits."
    }
  },
  "required": [
    "adjustmentId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.archiveAudience

Retire an audience

Kind
Change
Tool
sales_archiveAudience
Scope
commerce:write
Reached by
API, MCP

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "audienceId": {
      "type": "string",
      "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A audience id: aud_ and 26 letters and digits."
    }
  },
  "required": [
    "audienceId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.archiveCode

Turn off a code

Kind
Change
Tool
sales_archiveCode
Scope
commerce:write
Reached by
API, MCP, ChatGPT

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "codeId": {
      "type": "string",
      "pattern": "^cod_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A code id: cod_ and 26 letters and digits."
    }
  },
  "required": [
    "codeId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.archivePrice

Stop offering a price

Kind
Change
Tool
sales_archivePrice
Scope
commerce:write
Reached by
API, MCP

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "priceId": {
      "type": "string",
      "pattern": "^pri_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A price id: pri_ and 26 letters and digits."
    }
  },
  "required": [
    "priceId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.archiveProduct

Take a product off sale

Kind
Change
Tool
sales_archiveProduct
Scope
commerce:write
Reached by
API, MCP, ChatGPT

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "productId": {
      "type": "string",
      "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A product id: prd_ and 26 letters and digits."
    }
  },
  "required": [
    "productId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.audiences

Audiences

Kind
Read
Tool
sales_audiences
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "archived": {
      "default": false,
      "description": "Include retired ones.",
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "audiences": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "audienceId": {
                    "type": "string",
                    "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A audience id: aud_ and 26 letters and digits."
                  },
                  "key": {
                    "type": "string"
                  },
                  "value": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "members",
                      "rule",
                      "experiment"
                    ]
                  },
                  "rule": {
                    "anyOf": [
                      {},
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "sharePercent": {
                    "type": [
                      "number",
                      "null"
                    ]
                  },
                  "binding": {
                    "type": "string",
                    "enum": [
                      "each_charge",
                      "at_purchase"
                    ]
                  },
                  "retention": {
                    "type": "string",
                    "enum": [
                      "lifetime",
                      "until_revoked",
                      "until_date"
                    ]
                  },
                  "retainUntil": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "qualify": {
                    "type": "string",
                    "enum": [
                      "signed_link",
                      "code",
                      "open"
                    ]
                  },
                  "showAsTag": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "active",
                      "archived"
                    ]
                  },
                  "holders": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "links": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "linkId": {
                          "type": "string",
                          "pattern": "^aul_[0-9a-hjkmnp-tv-z]{26}$",
                          "description": "A audience link id: aul_ and 26 letters and digits."
                        },
                        "channel": {
                          "type": "string"
                        },
                        "label": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "linkId",
                        "channel",
                        "label"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "audienceId",
                  "key",
                  "value",
                  "name",
                  "kind",
                  "rule",
                  "sharePercent",
                  "binding",
                  "retention",
                  "retainUntil",
                  "qualify",
                  "showAsTag",
                  "status",
                  "holders",
                  "links"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "audiences"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.buyLabel

Buy a shipping label

Kind
Change
Tool
sales_buyLabel
Scope
commerce:write
Reached by
API, MCP, ChatGPT

waits for the owner to confirm it in Allpage, whatever they chose for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "orderId": {
      "type": "string",
      "pattern": "^ord_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "The order (`orderId` from commerce.orders). A order id: ord_ and 26 letters and digits."
    },
    "rate": {
      "type": "string",
      "maxLength": 400,
      "description": "The rate to buy (`token` from commerce.labelRates)."
    }
  },
  "required": [
    "orderId",
    "rate"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.cancelAgreement

Cancel a sale

Kind
Change
Tool
sales_cancelAgreement
Scope
commerce:write
Reached by
API, MCP, ChatGPT

waits for the owner to confirm it in Allpage, whatever they chose for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A agreement id: agr_ and 26 letters and digits."
    },
    "when": {
      "default": "period_end",
      "description": "Something that repeats stops at the end of its paid period, or now.",
      "type": "string",
      "enum": [
        "now",
        "period_end"
      ]
    },
    "refund": {
      "description": "Give back what was paid online. Defaults to yes when you cancel a one-time sale before it’s done.",
      "type": "boolean"
    },
    "restock": {
      "default": true,
      "description": "Put what it took back in stock. Say false when it already went out, like a mug that broke on the way. Seats and rooms always come back.",
      "type": "boolean"
    },
    "reason": {
      "type": "string",
      "maxLength": 300
    }
  },
  "required": [
    "agreementId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.cancelOrder

Cancel an order

Kind
Change
Tool
sales_cancelOrder
Scope
commerce:write
Reached by
API, MCP, ChatGPT

waits for the owner to confirm it in Allpage, whatever they chose for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "orderId": {
      "type": "string",
      "pattern": "^ord_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "The order (`orderId` from commerce.orders). A order id: ord_ and 26 letters and digits."
    },
    "refund": {
      "default": true,
      "description": "Give back what was paid for it. Defaults to yes.",
      "type": "boolean"
    },
    "restock": {
      "default": true,
      "description": "Put what it holds back in stock. Defaults to yes.",
      "type": "boolean"
    },
    "reason": {
      "default": "",
      "type": "string",
      "maxLength": 300
    }
  },
  "required": [
    "orderId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.capture

Charge the hold

Kind
Change
Tool
sales_capture
Scope
commerce:write
Reached by
API, MCP, ChatGPT

waits for the owner to confirm it in Allpage, whatever they chose for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A agreement id: agr_ and 26 letters and digits."
    }
  },
  "required": [
    "agreementId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.codes

Discount codes

Kind
Read
Tool
sales_codes
Scope
commerce:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "codes": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "codeId": {
                    "type": "string",
                    "pattern": "^cod_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A code id: cod_ and 26 letters and digits."
                  },
                  "code": {
                    "type": "string"
                  },
                  "adjustmentId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^adj_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A adjustment id: adj_ and 26 letters and digits."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "audienceId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A audience id: aud_ and 26 letters and digits."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "active",
                      "archived"
                    ]
                  },
                  "maxRedemptions": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "oncePerCustomer": {
                    "type": "boolean"
                  },
                  "used": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "startsAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "endsAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "codeId",
                  "code",
                  "adjustmentId",
                  "audienceId",
                  "status",
                  "maxRedemptions",
                  "oncePerCustomer",
                  "used",
                  "startsAt",
                  "endsAt"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "codes"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.collectBalance

Charge the balance

Kind
Change
Tool
sales_collectBalance
Scope
commerce:write
Reached by
API, MCP, ChatGPT

waits for the owner to confirm it in Allpage, whatever they chose for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A agreement id: agr_ and 26 letters and digits."
    }
  },
  "required": [
    "agreementId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.createAudience

Add an audience

Kind
Change
Tool
sales_createAudience
Scope
commerce:write
Reached by
API, MCP

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "pattern": "^[a-z0-9_-]{1,40}$",
      "description": "What it groups by: tier, channel, experiment."
    },
    "value": {
      "type": "string",
      "pattern": "^[a-z0-9_-]{1,40}$",
      "description": "Its value: gold, instagram, spring_test."
    },
    "kind": {
      "type": "string",
      "enum": [
        "members",
        "rule",
        "experiment"
      ]
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "rule": {
      "description": "Who matches a rule audience: tags, custom fields, grants, visits and the channel they came through ({ channel: { is: \"instagram\" } }). Visits: { visited: { offeringId?, kind?, since?: { days } }, gte? } counts sessions they came to; { daysSinceVisit: {}, gte: 30 } is everyone away 30 days or more (pair it with { visited: {} } for people who came before).",
      "$ref": "#/$defs/__schema0"
    },
    "sharePercent": {
      "description": "An experiment’s share of buyers, in percent.",
      "type": "number",
      "minimum": 0.01,
      "maximum": 99.99
    },
    "binding": {
      "description": "each_charge: checked again at every charge (a lapsed member loses it). at_purchase: kept from the purchase.",
      "type": "string",
      "enum": [
        "each_charge",
        "at_purchase"
      ]
    },
    "retention": {
      "type": "string",
      "enum": [
        "lifetime",
        "until_revoked",
        "until_date"
      ]
    },
    "retainUntil": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        {
          "type": "null"
        }
      ]
    },
    "qualify": {
      "description": "How someone who isn’t a member qualifies: signed_link (a link you share), code, or open (anyone can claim it, so treat its prices as public).",
      "type": "string",
      "enum": [
        "signed_link",
        "code",
        "open"
      ]
    },
    "showAsTag": {
      "description": "Show its members as a customer tag in automations.",
      "type": "boolean"
    }
  },
  "required": [
    "key",
    "value",
    "kind",
    "name"
  ],
  "additionalProperties": false,
  "$defs": {
    "__schema0": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "all": {
              "minItems": 1,
              "type": "array",
              "items": {
                "$ref": "#/$defs/__schema0"
              }
            }
          },
          "required": [
            "all"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "any": {
              "minItems": 1,
              "type": "array",
              "items": {
                "$ref": "#/$defs/__schema0"
              }
            }
          },
          "required": [
            "any"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "not": {
              "$ref": "#/$defs/__schema0"
            }
          },
          "required": [
            "not"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "count": {
              "type": "object",
              "properties": {
                "event": {
                  "type": "string",
                  "minLength": 1
                },
                "since": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "event": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "required": [
                        "event"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "days": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 3650
                        }
                      },
                      "required": [
                        "days"
                      ],
                      "additionalProperties": false
                    }
                  ]
                },
                "where": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {
                    "type": [
                      "string",
                      "number",
                      "boolean"
                    ]
                  }
                }
              },
              "required": [
                "event"
              ],
              "additionalProperties": false
            },
            "gte": {
              "type": "number"
            },
            "lte": {
              "type": "number"
            },
            "eq": {
              "type": "number"
            }
          },
          "required": [
            "count"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "sum": {
              "type": "object",
              "properties": {
                "event": {
                  "type": "string",
                  "minLength": 1
                },
                "since": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "event": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "required": [
                        "event"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "days": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 3650
                        }
                      },
                      "required": [
                        "days"
                      ],
                      "additionalProperties": false
                    }
                  ]
                },
                "where": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {
                    "type": [
                      "string",
                      "number",
                      "boolean"
                    ]
                  }
                },
                "field": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "event",
                "field"
              ],
              "additionalProperties": false
            },
            "gte": {
              "type": "number"
            },
            "lte": {
              "type": "number"
            },
            "eq": {
              "type": "number"
            }
          },
          "required": [
            "sum"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "daysSince": {
              "type": "object",
              "properties": {
                "event": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "event"
              ],
              "additionalProperties": false
            },
            "gte": {
              "type": "number"
            },
            "lte": {
              "type": "number"
            },
            "eq": {
              "type": "number"
            }
          },
          "required": [
            "daysSince"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "visited": {
              "type": "object",
              "properties": {
                "offeringId": {
                  "description": "One offering’s visits only.",
                  "type": "string",
                  "pattern": "^off_[0-9a-hjkmnp-tv-z]{26}$"
                },
                "kind": {
                  "description": "One kind of offering only: class, appointment, workshop.",
                  "type": "string",
                  "pattern": "^[a-z_]{1,40}$"
                },
                "since": {
                  "type": "object",
                  "properties": {
                    "days": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 3650
                    }
                  },
                  "required": [
                    "days"
                  ],
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            },
            "gte": {
              "type": "number"
            },
            "lte": {
              "type": "number"
            },
            "eq": {
              "type": "number"
            }
          },
          "required": [
            "visited"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "daysSinceVisit": {
              "type": "object",
              "properties": {
                "offeringId": {
                  "description": "One offering’s visits only.",
                  "type": "string",
                  "pattern": "^off_[0-9a-hjkmnp-tv-z]{26}$"
                },
                "kind": {
                  "description": "One kind of offering only: class, appointment, workshop.",
                  "type": "string",
                  "pattern": "^[a-z_]{1,40}$"
                }
              },
              "additionalProperties": false
            },
            "gte": {
              "type": "number"
            },
            "lte": {
              "type": "number"
            },
            "eq": {
              "type": "number"
            }
          },
          "required": [
            "daysSinceVisit"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "hasGrant": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string"
                },
                "productId": {
                  "type": "string"
                },
                "benefit": {
                  "description": "A membership or pack by its benefit name: membership:gold.",
                  "type": "string",
                  "pattern": "^(membership|pack|pass):[a-z0-9][a-z0-9_-]{0,62}$"
                }
              },
              "additionalProperties": false
            }
          },
          "required": [
            "hasGrant"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "balance": {
              "type": "object",
              "properties": {
                "unit": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "unit"
              ],
              "additionalProperties": false
            },
            "gte": {
              "type": "number"
            },
            "lte": {
              "type": "number"
            },
            "eq": {
              "type": "number"
            }
          },
          "required": [
            "balance"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "tag": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                }
              },
              "required": [
                "name"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "tag"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "channel": {
              "type": "object",
              "properties": {
                "is": {
                  "type": "string",
                  "pattern": "^[a-z0-9_-]{1,40}$"
                }
              },
              "required": [
                "is"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "channel"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "field": {
              "type": "object",
              "properties": {
                "record": {
                  "type": "string",
                  "const": "customer"
                },
                "key": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                }
              },
              "required": [
                "record",
                "key"
              ],
              "additionalProperties": false
            },
            "is": {
              "type": [
                "string",
                "number",
                "boolean"
              ]
            },
            "gte": {
              "type": "number"
            },
            "lte": {
              "type": "number"
            },
            "exists": {
              "type": "boolean"
            }
          },
          "required": [
            "field"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "state": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "key"
              ],
              "additionalProperties": false
            },
            "is": {
              "type": [
                "string",
                "number",
                "boolean"
              ]
            },
            "gte": {
              "type": "number"
            },
            "lte": {
              "type": "number"
            },
            "exists": {
              "type": "boolean"
            }
          },
          "required": [
            "state"
          ],
          "additionalProperties": false
        }
      ]
    }
  }
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.createCode

Add a code

Kind
Change
Tool
sales_createCode
Scope
commerce:write
Reached by
API, MCP, ChatGPT

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "code": {
      "description": "What customers type, like SPRING10.",
      "type": "string"
    },
    "adjustmentId": {
      "description": "The discount it gives.",
      "type": "string",
      "pattern": "^adj_[0-9a-hjkmnp-tv-z]{26}$"
    },
    "audienceId": {
      "description": "The audience it admits them to (its prices and offers).",
      "type": "string",
      "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$"
    },
    "maxRedemptions": {
      "description": "How many times it can be used in all; null for no limit.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 1000000
        },
        {
          "type": "null"
        }
      ]
    },
    "oncePerCustomer": {
      "type": "boolean"
    },
    "startsAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "endsAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "code"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.createProduct

Add a product

Kind
Change
Tool
sales_createProduct
Scope
commerce:write
Reached by
API, MCP, ChatGPT

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "service",
        "physical",
        "digital",
        "access",
        "bundle",
        "gift_card"
      ]
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "description": {
      "type": "string",
      "maxLength": 2000
    },
    "fulfillment": {
      "description": "How the customer gets it. Services: at_appointment or on_site; physical: pickup, ship or local_delivery; digital: digital; passes: on_site or digital; bundles: any, except a bundle of only passes, packs and services: on_site, at_appointment or digital. Left out, it’s the first of those.",
      "type": "string",
      "enum": [
        "at_appointment",
        "pickup",
        "ship",
        "local_delivery",
        "digital",
        "on_site"
      ]
    },
    "durationMinutes": {
      "description": "How long a service takes. Services need it.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 5,
          "maximum": 1440,
          "multipleOf": 5
        },
        {
          "type": "null"
        }
      ]
    },
    "inventoryCount": {
      "description": "How many are left to sell; null when you don’t count. Physical, digital and passes only. With options, each new combination starts with it.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        {
          "type": "null"
        }
      ]
    },
    "locationId": {
      "description": "Where it’s sold or done, when the business has more than one place.",
      "anyOf": [
        {
          "type": "string",
          "pattern": "^loc_[0-9a-hjkmnp-tv-z]{26}$",
          "description": "A location id: loc_ and 26 letters and digits."
        },
        {
          "type": "null"
        }
      ]
    },
    "priceMinor": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000,
      "description": "Its price in cents."
    },
    "deposit": {
      "description": "Take part of the price online when they book or order (a percent or an amount in cents); the rest is due at the appointment, pickup or delivery. Null takes the whole price.",
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "percent": {
              "type": "integer",
              "minimum": 1,
              "maximum": 99
            },
            "amountMinor": {
              "type": "integer",
              "minimum": 0,
              "maximum": 1000000
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "payWhatYouWant": {
      "description": "Let the customer pick what they pay, in cents: at least minMinor, with an optional suggestedMinor shown first and maxMinor cap. priceMinor is then only a fallback. Null goes back to the one price.",
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "minMinor": {
              "type": "integer",
              "minimum": 0,
              "maximum": 1000000,
              "description": "The least they can pay, in cents; 0 for free."
            },
            "suggestedMinor": {
              "description": "The amount shown first, in cents.",
              "type": "integer",
              "minimum": 0,
              "maximum": 1000000
            },
            "maxMinor": {
              "description": "The most they can pay, in cents.",
              "type": "integer",
              "minimum": 0,
              "maximum": 1000000
            }
          },
          "required": [
            "minMinor"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "taxCode": {
      "description": "A Stripe tax code. Left out, it’s the usual one for the kind of product (physical goods, services or digital).",
      "anyOf": [
        {
          "type": "string",
          "pattern": "^txcd_\\d{8}$"
        },
        {
          "type": "null"
        }
      ]
    },
    "options": {
      "description": "Up to three options customers pick, like Size and Color, each with its values. Not on bundles.",
      "maxItems": 3,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          "values": {
            "minItems": 1,
            "maxItems": 20,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 40
            }
          }
        },
        "required": [
          "name",
          "values"
        ],
        "additionalProperties": false
      }
    },
    "components": {
      "description": "What a bundle holds: your other products, each so many times. A bundle of packs sells as a package that gives each pack; a membership (a repeating price) can’t go in one.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
            "description": "A product id: prd_ and 26 letters and digits."
          },
          "variantId": {
            "type": "string",
            "pattern": "^var_[0-9a-hjkmnp-tv-z]{26}$",
            "description": "A variant id: var_ and 26 letters and digits."
          },
          "quantity": {
            "default": 1,
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          }
        },
        "required": [
          "productId"
        ],
        "additionalProperties": false
      }
    },
    "credits": {
      "description": "A pass only: how many uses it holds, like a 10-class pack. Each class booked takes one. A dollar pack (grants.savePack with counts: cents) holds its amount in cents, up to $10,000.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 1000000
        },
        {
          "type": "null"
        }
      ]
    },
    "validDays": {
      "description": "A pass with uses: days it’s good for from purchase. Null never runs out.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 3650
        },
        {
          "type": "null"
        }
      ]
    },
    "repeats": {
      "description": "Charge it again every interval until the customer cancels, like a monthly membership. Null is paid once.",
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "interval": {
              "type": "string",
              "enum": [
                "week",
                "month",
                "year"
              ]
            },
            "count": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 12
            },
            "trialDays": {
              "default": 0,
              "type": "integer",
              "minimum": 0,
              "maximum": 90
            }
          },
          "required": [
            "interval"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "policies": {
      "description": "Its own policies, ahead of the business’s (a retreat’s 60-day cancellation): the policyId of a named policy (policy.accept with a name) for each kind it differs in. Sales read that policy’s newest version. Null goes back to the business’s own.",
      "type": "object",
      "properties": {
        "cancellation": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^pol_[0-9a-hjkmnp-tv-z]{26}$",
              "description": "A policy id: pol_ and 26 letters and digits."
            },
            {
              "type": "null"
            }
          ]
        },
        "deposit": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^pol_[0-9a-hjkmnp-tv-z]{26}$",
              "description": "A policy id: pol_ and 26 letters and digits."
            },
            {
              "type": "null"
            }
          ]
        },
        "noShow": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^pol_[0-9a-hjkmnp-tv-z]{26}$",
              "description": "A policy id: pol_ and 26 letters and digits."
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "custom": {
      "type": "object",
      "propertyNames": {
        "type": "string",
        "maxLength": 40
      },
      "additionalProperties": {
        "anyOf": [
          {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              }
            ]
          },
          {
            "type": "null"
          }
        ]
      },
      "description": "The business’s own fields on products, by key; null clears one."
    },
    "images": {
      "description": "Photos from your files, by file id (files.list with kind `web`); the first is the main one. Replaces its photos.",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^fil_[0-9a-hjkmnp-tv-z]{26}$",
        "description": "A file id: fil_ and 26 letters and digits."
      }
    },
    "downloads": {
      "description": "A digital product’s files, by file id (files.list with visibility `private`), in order. Buyers download them once it’s paid. Replaces its files.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^fil_[0-9a-hjkmnp-tv-z]{26}$",
        "description": "A file id: fil_ and 26 letters and digits."
      }
    },
    "downloadLimit": {
      "description": "A digital product’s downloads of each file per purchase. Null for no limit.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        {
          "type": "null"
        }
      ]
    },
    "pickupPerDay": {
      "description": "Something picked up: how many can be picked up each day, like 40 cakes. Customers choose a day with room at checkout. Null for no limit.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 10000
        },
        {
          "type": "null"
        }
      ]
    },
    "weightOz": {
      "description": "Something shipped: one of it boxed, in ounces (32 for 2 lb). Shipping rates are worked out from it. Null uses your default weight per item.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 2400
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "type",
    "name",
    "priceMinor"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.customer

See what a customer owes and has bought

Kind
Read
Tool
sales_customer
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "customerId": {
      "type": "string",
      "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A customer id: cus_ and 26 letters and digits."
    }
  },
  "required": [
    "customerId"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "owed": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "chargeId": {
                        "type": "string",
                        "pattern": "^chg_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A charge id: chg_ and 26 letters and digits."
                      },
                      "agreementId": {
                        "type": "string",
                        "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A agreement id: agr_ and 26 letters and digits."
                      },
                      "what": {
                        "type": "string"
                      },
                      "amount": {
                        "type": "string",
                        "description": "What’s owed, with tax: \"$40.00\"."
                      },
                      "since": {
                        "type": "string",
                        "description": "When the sale was made: \"Oct 2, 2026\"."
                      }
                    },
                    "required": [
                      "chargeId",
                      "agreementId",
                      "what",
                      "amount",
                      "since"
                    ],
                    "additionalProperties": false
                  }
                },
                "total": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "totalMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "currency": {
                  "type": "string"
                }
              },
              "required": [
                "items",
                "total",
                "totalMinor",
                "currency"
              ],
              "additionalProperties": false
            },
            "sales": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "agreementId": {
                        "type": "string",
                        "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A agreement id: agr_ and 26 letters and digits."
                      },
                      "what": {
                        "type": "string"
                      },
                      "at": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                      },
                      "when": {
                        "type": "string"
                      },
                      "total": {
                        "type": "string"
                      },
                      "repeats": {
                        "type": "boolean"
                      },
                      "ended": {
                        "type": "boolean"
                      },
                      "owed": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "chargeId": {
                                "type": "string",
                                "pattern": "^chg_[0-9a-hjkmnp-tv-z]{26}$",
                                "description": "A charge id: chg_ and 26 letters and digits."
                              },
                              "amount": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "chargeId",
                              "amount"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "agreementId",
                      "what",
                      "at",
                      "when",
                      "total",
                      "repeats",
                      "ended",
                      "owed"
                    ],
                    "additionalProperties": false
                  }
                },
                "total": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "items",
                "total"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "owed",
            "sales"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.declineRequest

Decline a quote request

Kind
Change
Tool
sales_declineRequest
Scope
commerce:write
Reached by
API, MCP

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "requestId": {
      "type": "string",
      "pattern": "^qr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A quote request id: qr_ and 26 letters and digits."
    }
  },
  "required": [
    "requestId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.draftOffer

Write an offer

Kind
Change
Tool
sales_draftOffer
Scope
commerce:write
Reached by
API, MCP, ChatGPT

a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "customerId": {
      "type": "string",
      "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A customer id: cus_ and 26 letters and digits."
    },
    "lines": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
            "description": "A product id: prd_ and 26 letters and digits."
          },
          "variantId": {
            "description": "The option combination, for a product with options.",
            "type": "string",
            "pattern": "^var_[0-9a-hjkmnp-tv-z]{26}$"
          },
          "priceId": {
            "description": "A price of the product to use (Monthly, Drop-in). Left out, the best one open to the customer.",
            "type": "string",
            "pattern": "^pri_[0-9a-hjkmnp-tv-z]{26}$"
          },
          "quantity": {
            "default": 1,
            "type": "integer",
            "minimum": 1,
            "maximum": 1000
          },
          "units": {
            "description": "For a price per unit: how many (hours, dogs).",
            "type": "integer",
            "minimum": 1,
            "maximum": 10000
          },
          "amountMinor": {
            "description": "For pay what you want: the amount picked, in cents.",
            "type": "integer",
            "minimum": 0,
            "maximum": 100000000
          },
          "quotedMinor": {
            "description": "For something priced by quote: what you’re quoting them, per item, in cents.",
            "type": "integer",
            "minimum": 0,
            "maximum": 100000000
          }
        },
        "required": [
          "productId"
        ],
        "additionalProperties": false
      }
    },
    "codes": {
      "default": [],
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 40
      }
    },
    "collect": {
      "default": "card",
      "description": "How they pay: card now (a deposit when the price takes one), authorize (hold now, charge at eventAt, within 7 days), save_then_charge (save their card now, charge when you approve), invoice (due in netDays), in_person.",
      "type": "string",
      "enum": [
        "card",
        "authorize",
        "save_then_charge",
        "invoice",
        "in_person"
      ]
    },
    "eventAt": {
      "description": "The appointment or pickup a hold is charged at, or a balance is due.",
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "approveWithinDays": {
      "description": "save_then_charge: days you have to approve the charge.",
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    },
    "netDays": {
      "description": "invoice: days they have to pay.",
      "type": "integer",
      "minimum": 0,
      "maximum": 120
    },
    "expiresInDays": {
      "default": 30,
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    },
    "requestId": {
      "description": "The quote request this answers.",
      "type": "string",
      "pattern": "^qr_[0-9a-hjkmnp-tv-z]{26}$"
    }
  },
  "required": [
    "customerId",
    "lines"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.freezeAgreement

Freeze billing on a repeating charge

Kind
Change
Tool
sales_freezeAgreement
Scope
commerce:write
Reached by
API, MCP

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A agreement id: agr_ and 26 letters and digits."
    },
    "from": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "The first day frozen, the business’s date."
    },
    "until": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "The day it starts again: billing and access resume then."
    }
  },
  "required": [
    "agreementId",
    "from",
    "until"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.giftCardBalance

Check a gift card’s balance

Kind
Read
Tool
sales_giftCardBalance
Scope
commerce:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    }
  },
  "required": [
    "code"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "const": "ok"
                },
                "label": {
                  "type": "string"
                },
                "balanceMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "balance": {
                  "type": "string"
                }
              },
              "required": [
                "status",
                "label",
                "balanceMinor",
                "balance"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "const": "refused"
                },
                "message": {
                  "type": "string"
                }
              },
              "required": [
                "status",
                "message"
              ],
              "additionalProperties": false
            }
          ]
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.giftCards

Gift cards and store credit

Kind
Read
Tool
sales_giftCards
Scope
commerce:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "customerId": {
      "description": "Only the ones this customer holds.",
      "type": "string",
      "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$"
    }
  },
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "cards": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "giftCardId": {
                    "type": "string",
                    "pattern": "^gc_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A gift card id: gc_ and 26 letters and digits."
                  },
                  "grantId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^grt_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A grant id: grt_ and 26 letters and digits."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "customerId": {
                    "type": "string",
                    "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A customer id: cus_ and 26 letters and digits."
                  },
                  "holder": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "credit": {
                    "type": "boolean"
                  },
                  "valueMinor": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "balanceMinor": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "balance": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "waiting",
                      "active",
                      "void"
                    ]
                  },
                  "issuedAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "giftCardId",
                  "grantId",
                  "customerId",
                  "holder",
                  "label",
                  "credit",
                  "valueMinor",
                  "balanceMinor",
                  "balance",
                  "status",
                  "issuedAt"
                ],
                "additionalProperties": false
              }
            },
            "owedMinor": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "owed": {
              "type": "string"
            }
          },
          "required": [
            "cards",
            "owedMinor",
            "owed"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.giveCredit

Give store credit

Kind
Change
Tool
sales_giveCredit
Scope
commerce:write
Reached by
API, MCP, ChatGPT

waits for the owner to confirm it in Allpage, whatever they chose for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "customerId": {
      "type": "string",
      "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A customer id: cus_ and 26 letters and digits."
    },
    "amountMinor": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000000
    },
    "reason": {
      "default": "",
      "type": "string",
      "maxLength": 200
    },
    "requestId": {
      "description": "A fresh random id you make for each new request. Send the same one again only to retry that exact request; a different request with it is refused.",
      "type": "string",
      "maxLength": 200
    }
  },
  "required": [
    "customerId",
    "amountMinor"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.heldPayment

A held booking to pay

Kind
Read
Tool
sales_heldPayment
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A agreement id: agr_ and 26 letters and digits."
    }
  },
  "required": [
    "agreementId"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "agreementId": {
              "type": "string",
              "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
              "description": "A agreement id: agr_ and 26 letters and digits."
            },
            "status": {
              "type": "string",
              "enum": [
                "due",
                "paid",
                "released"
              ]
            },
            "what": {
              "type": "string"
            },
            "amount": {
              "type": "string"
            },
            "until": {
              "type": "string"
            }
          },
          "required": [
            "agreementId",
            "status",
            "what",
            "amount",
            "until"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.invoices

List your invoices

Kind
Read
Tool
sales_invoices
Scope
commerce:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "invoices": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "chargeId": {
                    "type": "string",
                    "pattern": "^chg_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A charge id: chg_ and 26 letters and digits."
                  },
                  "agreementId": {
                    "type": "string",
                    "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A agreement id: agr_ and 26 letters and digits."
                  },
                  "number": {
                    "type": "string"
                  },
                  "customerId": {
                    "type": "string",
                    "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A customer id: cus_ and 26 letters and digits."
                  },
                  "customer": {
                    "type": "string"
                  },
                  "what": {
                    "type": "string"
                  },
                  "state": {
                    "type": "string",
                    "enum": [
                      "open",
                      "paid",
                      "refunded",
                      "disputed",
                      "void"
                    ]
                  },
                  "totalMinor": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "total": {
                    "type": "string"
                  },
                  "tax": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "taxNote": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "dueOn": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "paidOn": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "failure": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "chargeId",
                  "agreementId",
                  "number",
                  "customerId",
                  "customer",
                  "what",
                  "state",
                  "totalMinor",
                  "total",
                  "tax",
                  "taxNote",
                  "dueOn",
                  "paidOn",
                  "failure"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "invoices"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.labelRates

Label rates for an order

Kind
Read
Tool
sales_labelRates
Scope
commerce:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "orderId": {
      "type": "string",
      "pattern": "^ord_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A order id: ord_ and 26 letters and digits."
    }
  },
  "required": [
    "orderId"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "options": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "price": {
                    "type": "string"
                  },
                  "days": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "token",
                  "name",
                  "price",
                  "days"
                ],
                "additionalProperties": false
              }
            },
            "suggested": {
              "type": [
                "string",
                "null"
              ]
            },
            "paid": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "options",
            "suggested",
            "paid"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.markOrders

Update orders

Kind
Change
Tool
sales_markOrders
Scope
commerce:write
Reached by
API, MCP, ChatGPT

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "orderIds": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^ord_[0-9a-hjkmnp-tv-z]{26}$",
        "description": "A order id: ord_ and 26 letters and digits."
      },
      "description": "The orders (`orderId` from commerce.orders)."
    },
    "status": {
      "type": "string",
      "enum": [
        "unfulfilled",
        "packed",
        "shipped",
        "delivered",
        "picked_up"
      ],
      "description": "packed (for pickup: ready to pick up), shipped (for local delivery: out for delivery), delivered, picked_up, or unfulfilled to undo packed."
    },
    "tracking": {
      "description": "With `shipped` and one order: its tracking, which the customer gets.",
      "type": "object",
      "properties": {
        "carrier": {
          "type": "string",
          "enum": [
            "usps",
            "ups",
            "fedex",
            "dhl",
            "other"
          ],
          "description": "Who carries it."
        },
        "number": {
          "type": "string",
          "minLength": 4,
          "maxLength": 60,
          "description": "The tracking number the carrier gave."
        },
        "url": {
          "label": "Link",
          "control": "url",
          "description": "A tracking page, when the carrier isn’t one we link to ourselves.",
          "type": "string"
        }
      },
      "required": [
        "carrier",
        "number"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "orderIds",
    "status"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.markPaid

Mark a charge paid

Kind
Change
Tool
sales_markPaid
Scope
commerce:write
Reached by
API, MCP, ChatGPT

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "chargeId": {
      "type": "string",
      "pattern": "^chg_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A charge id: chg_ and 26 letters and digits."
    }
  },
  "required": [
    "chargeId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.money

See what came in, what’s owed and what was kept in a month

Kind
Read
Tool
sales_money
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "month": {
      "description": "The month, like 2026-09, in the business’s time zone. This month when left out. What’s owed is every month.",
      "type": "string",
      "pattern": "^\\d{4}-(0[1-9]|1[0-2])$"
    }
  },
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "month": {
              "type": "string",
              "description": "The month shown, like 2026-10."
            },
            "label": {
              "type": "string",
              "description": "\"October 2026\"."
            },
            "previous": {
              "type": "string"
            },
            "next": {
              "description": "Null for this month.",
              "type": [
                "string",
                "null"
              ]
            },
            "took": {
              "type": "object",
              "properties": {
                "revenueMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "revenue": {
                  "type": "string",
                  "description": "Sales after refunds, before tax and fees."
                },
                "sales": {
                  "type": "string"
                },
                "refunds": {
                  "type": "string"
                },
                "refundsMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "fees": {
                  "type": "string"
                },
                "disputes": {
                  "type": "string"
                },
                "disputesMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "tax": {
                  "type": "string"
                },
                "taxMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "keptMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "kept": {
                  "type": "string",
                  "description": "What reached the business after refunds, fees and disputes."
                }
              },
              "required": [
                "revenueMinor",
                "revenue",
                "sales",
                "refunds",
                "refundsMinor",
                "fees",
                "disputes",
                "disputesMinor",
                "tax",
                "taxMinor",
                "keptMinor",
                "kept"
              ],
              "additionalProperties": false
            },
            "months": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "month": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "revenueMinor": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "revenue": {
                    "type": "string"
                  }
                },
                "required": [
                  "month",
                  "label",
                  "revenueMinor",
                  "revenue"
                ],
                "additionalProperties": false
              }
            },
            "sold": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "string"
                  },
                  "charges": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "key",
                  "name",
                  "amount",
                  "charges"
                ],
                "additionalProperties": false
              }
            },
            "memberships": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "string"
                  },
                  "charges": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "key",
                  "name",
                  "amount",
                  "charges"
                ],
                "additionalProperties": false
              }
            },
            "audiences": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "string"
                  },
                  "charges": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "key",
                  "name",
                  "amount",
                  "charges"
                ],
                "additionalProperties": false
              }
            },
            "campaigns": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "string"
                  },
                  "charges": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "key",
                  "name",
                  "amount",
                  "charges"
                ],
                "additionalProperties": false
              }
            },
            "locations": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "amount": {
                    "type": "string"
                  },
                  "charges": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "key",
                  "name",
                  "amount",
                  "charges"
                ],
                "additionalProperties": false
              }
            },
            "refunds": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "customerId": {
                        "type": "string",
                        "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A customer id: cus_ and 26 letters and digits."
                      },
                      "customer": {
                        "type": "string"
                      },
                      "what": {
                        "type": "string"
                      },
                      "amount": {
                        "type": "string"
                      },
                      "on": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "customerId",
                      "customer",
                      "what",
                      "amount",
                      "on"
                    ],
                    "additionalProperties": false
                  }
                },
                "total": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "items",
                "total"
              ],
              "additionalProperties": false
            },
            "owed": {
              "type": "object",
              "properties": {
                "people": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "customerId": {
                        "type": "string",
                        "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A customer id: cus_ and 26 letters and digits."
                      },
                      "customer": {
                        "type": "string"
                      },
                      "charges": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "amount": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "customerId",
                      "customer",
                      "charges",
                      "amount"
                    ],
                    "additionalProperties": false
                  }
                },
                "customers": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "charges": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "totalMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "total": {
                  "type": "string"
                }
              },
              "required": [
                "people",
                "customers",
                "charges",
                "totalMinor",
                "total"
              ],
              "additionalProperties": false
            },
            "payout": {
              "type": "object",
              "properties": {
                "connected": {
                  "type": "boolean"
                },
                "balanceMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "balance": {
                  "type": "string"
                },
                "last": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "amount": {
                          "type": "string"
                        },
                        "on": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "amount",
                        "on"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "connected",
                "balanceMinor",
                "balance",
                "last"
              ],
              "additionalProperties": false
            },
            "alerts": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "text": {
                    "type": "string"
                  },
                  "href": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "text",
                  "href"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "month",
            "label",
            "previous",
            "next",
            "took",
            "months",
            "sold",
            "memberships",
            "audiences",
            "campaigns",
            "locations",
            "refunds",
            "owed",
            "payout",
            "alerts"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.offer

An offer to accept

Kind
Read
Tool
sales_offer
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A agreement id: agr_ and 26 letters and digits."
    }
  },
  "required": [
    "agreementId"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "agreementId": {
              "type": "string",
              "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
              "description": "A agreement id: agr_ and 26 letters and digits."
            },
            "status": {
              "type": "string",
              "enum": [
                "draft",
                "offered",
                "accepted",
                "active",
                "past_due",
                "paused",
                "active_unpaid",
                "cancel_scheduled",
                "cancelled",
                "fulfilled",
                "expired",
                "abandoned"
              ]
            },
            "words": {
              "type": "object",
              "properties": {
                "lines": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "label": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "name",
                      "label"
                    ],
                    "additionalProperties": false
                  }
                },
                "total": {
                  "type": "string"
                },
                "dueNow": {
                  "type": "string"
                },
                "terms": {
                  "type": "string"
                },
                "renewal": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "button": {
                  "type": "string"
                },
                "later": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "tax": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "lines",
                "total",
                "dueNow",
                "terms",
                "renewal",
                "button",
                "later",
                "tax"
              ],
              "additionalProperties": false
            },
            "termsVersion": {
              "type": "string"
            },
            "repeats": {
              "type": "boolean"
            },
            "expiresAt": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "askZip": {
              "type": "boolean"
            }
          },
          "required": [
            "agreementId",
            "status",
            "words",
            "termsVersion",
            "repeats",
            "expiresAt",
            "askZip"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.order

An order

Kind
Read
Tool
sales_order
Scope
commerce:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "orderId": {
      "type": "string",
      "pattern": "^ord_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A order id: ord_ and 26 letters and digits."
    }
  },
  "required": [
    "orderId"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "order": {
              "type": "object",
              "properties": {
                "orderId": {
                  "type": "string",
                  "pattern": "^ord_[0-9a-hjkmnp-tv-z]{26}$",
                  "description": "A order id: ord_ and 26 letters and digits."
                },
                "agreementId": {
                  "type": "string",
                  "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
                  "description": "A agreement id: agr_ and 26 letters and digits."
                },
                "customerId": {
                  "type": "string",
                  "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
                  "description": "A customer id: cus_ and 26 letters and digits."
                },
                "customer": {
                  "type": "string"
                },
                "number": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "subscription": {
                  "type": "boolean"
                },
                "method": {
                  "type": "string",
                  "enum": [
                    "ship",
                    "local_delivery",
                    "pickup"
                  ]
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "unfulfilled",
                    "packed",
                    "shipped",
                    "delivered",
                    "picked_up",
                    "cancelled"
                  ]
                },
                "statusLabel": {
                  "type": "string"
                },
                "what": {
                  "type": "string"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "quantity": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      }
                    },
                    "required": [
                      "name",
                      "quantity"
                    ],
                    "additionalProperties": false
                  }
                },
                "shipTo": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "pickupOn": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "pickupAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "note": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "tracking": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "carrier": {
                          "type": "string"
                        },
                        "number": {
                          "type": "string"
                        },
                        "url": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "carrier",
                        "number",
                        "url"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "stockNote": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "service": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "labelUrl": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "labelBuying": {
                  "type": "boolean"
                },
                "next": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "unfulfilled",
                      "packed",
                      "shipped",
                      "delivered",
                      "picked_up",
                      "cancelled"
                    ]
                  }
                },
                "canCancel": {
                  "type": "boolean"
                },
                "placedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                }
              },
              "required": [
                "orderId",
                "agreementId",
                "customerId",
                "customer",
                "number",
                "subscription",
                "method",
                "status",
                "statusLabel",
                "what",
                "items",
                "shipTo",
                "pickupOn",
                "pickupAt",
                "note",
                "tracking",
                "stockNote",
                "service",
                "labelUrl",
                "labelBuying",
                "next",
                "canCancel",
                "placedAt"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "order"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.orders

Orders to send

Kind
Read
Tool
sales_orders
Scope
commerce:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "tab": {
      "default": "to_ship",
      "description": "to_ship: not sent yet (the default); sent: on its way; done: delivered or picked up; cancelled.",
      "type": "string",
      "enum": [
        "to_ship",
        "sent",
        "done",
        "cancelled"
      ]
    }
  },
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "tab": {
              "type": "string",
              "enum": [
                "to_ship",
                "sent",
                "done",
                "cancelled"
              ]
            },
            "orders": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "orderId": {
                    "type": "string",
                    "pattern": "^ord_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A order id: ord_ and 26 letters and digits."
                  },
                  "agreementId": {
                    "type": "string",
                    "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A agreement id: agr_ and 26 letters and digits."
                  },
                  "customerId": {
                    "type": "string",
                    "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A customer id: cus_ and 26 letters and digits."
                  },
                  "customer": {
                    "type": "string"
                  },
                  "number": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "subscription": {
                    "type": "boolean"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "ship",
                      "local_delivery",
                      "pickup"
                    ]
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "unfulfilled",
                      "packed",
                      "shipped",
                      "delivered",
                      "picked_up",
                      "cancelled"
                    ]
                  },
                  "statusLabel": {
                    "type": "string"
                  },
                  "what": {
                    "type": "string"
                  },
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "quantity": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "name",
                        "quantity"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "shipTo": {
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "pickupOn": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "pickupAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "note": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "tracking": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "carrier": {
                            "type": "string"
                          },
                          "number": {
                            "type": "string"
                          },
                          "url": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "carrier",
                          "number",
                          "url"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "stockNote": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "service": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "labelUrl": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "labelBuying": {
                    "type": "boolean"
                  },
                  "next": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "unfulfilled",
                        "packed",
                        "shipped",
                        "delivered",
                        "picked_up",
                        "cancelled"
                      ]
                    }
                  },
                  "canCancel": {
                    "type": "boolean"
                  },
                  "placedAt": {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                  }
                },
                "required": [
                  "orderId",
                  "agreementId",
                  "customerId",
                  "customer",
                  "number",
                  "subscription",
                  "method",
                  "status",
                  "statusLabel",
                  "what",
                  "items",
                  "shipTo",
                  "pickupOn",
                  "pickupAt",
                  "note",
                  "tracking",
                  "stockNote",
                  "service",
                  "labelUrl",
                  "labelBuying",
                  "next",
                  "canCancel",
                  "placedAt"
                ],
                "additionalProperties": false
              }
            },
            "toShip": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "tab",
            "orders",
            "toShip"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.paidUp

Whether a sale is paid up

Kind
Read
Tool
sales_paidUp
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A agreement id: agr_ and 26 letters and digits."
    }
  },
  "required": [
    "agreementId"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "customerId": {
              "anyOf": [
                {
                  "type": "string",
                  "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
                  "description": "A customer id: cus_ and 26 letters and digits."
                },
                {
                  "type": "null"
                }
              ]
            },
            "released": {
              "type": "boolean"
            },
            "dueMinor": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "due": {
              "type": "string"
            },
            "currency": {
              "type": "string"
            },
            "refunded": {
              "type": "boolean"
            },
            "ended": {
              "type": "boolean"
            },
            "payUrl": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "customerId",
            "released",
            "dueMinor",
            "due",
            "currency",
            "refunded",
            "ended",
            "payUrl"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.pauseAgreement

Pause

Kind
Change
Tool
sales_pauseAgreement
Scope
commerce:write
Reached by
API, MCP

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A agreement id: agr_ and 26 letters and digits."
    }
  },
  "required": [
    "agreementId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.payment

A payment to make

Kind
Read
Tool
sales_payment
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "chargeId": {
      "type": "string",
      "pattern": "^chg_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A charge id: chg_ and 26 letters and digits."
    }
  },
  "required": [
    "chargeId"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "chargeId": {
              "type": "string",
              "pattern": "^chg_[0-9a-hjkmnp-tv-z]{26}$",
              "description": "A charge id: chg_ and 26 letters and digits."
            },
            "agreementId": {
              "type": "string",
              "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
              "description": "A agreement id: agr_ and 26 letters and digits."
            },
            "status": {
              "type": "string",
              "enum": [
                "due",
                "processing",
                "paid",
                "closed"
              ]
            },
            "what": {
              "type": "string"
            },
            "amount": {
              "type": "string"
            },
            "failure": {
              "type": [
                "string",
                "null"
              ]
            },
            "retry": {
              "type": [
                "string",
                "null"
              ]
            },
            "clientSecret": {
              "type": [
                "string",
                "null"
              ]
            },
            "account": {
              "type": [
                "string",
                "null"
              ]
            },
            "repeats": {
              "type": "boolean"
            },
            "canCancel": {
              "type": "boolean"
            },
            "stopsOn": {
              "type": [
                "string",
                "null"
              ]
            },
            "cancelWords": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "chargeId",
            "agreementId",
            "status",
            "what",
            "amount",
            "failure",
            "retry",
            "clientSecret",
            "account",
            "repeats",
            "canCancel",
            "stopsOn",
            "cancelWords"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.pickupDays

Pickup days with room

Kind
Read
Tool
sales_pickupDays
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "productId": {
      "type": "string",
      "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A product id: prd_ and 26 letters and digits."
    },
    "quantity": {
      "default": 1,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "productId"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "days": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "on": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "left": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "on",
                  "label",
                  "left"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "days"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.pickups

Pickups by time

Kind
Read
Tool
sales_pickups
Scope
commerce:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "from": {
      "description": "Only pickups at or after this time.",
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "agreementIds": {
      "description": "Only these sales’ pickups.",
      "maxItems": 200,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
        "description": "A agreement id: agr_ and 26 letters and digits."
      }
    }
  },
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "orders": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "orderId": {
                    "type": "string",
                    "pattern": "^ord_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A order id: ord_ and 26 letters and digits."
                  },
                  "agreementId": {
                    "type": "string",
                    "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A agreement id: agr_ and 26 letters and digits."
                  },
                  "customerId": {
                    "type": "string",
                    "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A customer id: cus_ and 26 letters and digits."
                  },
                  "customer": {
                    "type": "string"
                  },
                  "number": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "subscription": {
                    "type": "boolean"
                  },
                  "method": {
                    "type": "string",
                    "enum": [
                      "ship",
                      "local_delivery",
                      "pickup"
                    ]
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "unfulfilled",
                      "packed",
                      "shipped",
                      "delivered",
                      "picked_up",
                      "cancelled"
                    ]
                  },
                  "statusLabel": {
                    "type": "string"
                  },
                  "what": {
                    "type": "string"
                  },
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "quantity": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "name",
                        "quantity"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "shipTo": {
                    "anyOf": [
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "pickupOn": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "pickupAt": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "note": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "tracking": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "carrier": {
                            "type": "string"
                          },
                          "number": {
                            "type": "string"
                          },
                          "url": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "carrier",
                          "number",
                          "url"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "stockNote": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "service": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "labelUrl": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "labelBuying": {
                    "type": "boolean"
                  },
                  "next": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "unfulfilled",
                        "packed",
                        "shipped",
                        "delivered",
                        "picked_up",
                        "cancelled"
                      ]
                    }
                  },
                  "canCancel": {
                    "type": "boolean"
                  },
                  "placedAt": {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                  }
                },
                "required": [
                  "orderId",
                  "agreementId",
                  "customerId",
                  "customer",
                  "number",
                  "subscription",
                  "method",
                  "status",
                  "statusLabel",
                  "what",
                  "items",
                  "shipTo",
                  "pickupOn",
                  "pickupAt",
                  "note",
                  "tracking",
                  "stockNote",
                  "service",
                  "labelUrl",
                  "labelBuying",
                  "next",
                  "canCancel",
                  "placedAt"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "orders"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.policyMoney

See how your policies use payments

Kind
Read
Tool
sales_policyMoney
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "charging": {
              "type": "boolean"
            },
            "savedCards": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "policyCharges": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "charging",
            "savedCards",
            "policyCharges"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.previewSale

See a sale before it’s agreed

Kind
Read
Tool
sales_previewSale
Scope
commerce:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "lines": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
            "description": "A product id: prd_ and 26 letters and digits."
          },
          "variantId": {
            "description": "The option combination, for a product with options.",
            "type": "string",
            "pattern": "^var_[0-9a-hjkmnp-tv-z]{26}$"
          },
          "priceId": {
            "description": "A price of the product to use (Monthly, Drop-in). Left out, the best one open to the customer.",
            "type": "string",
            "pattern": "^pri_[0-9a-hjkmnp-tv-z]{26}$"
          },
          "quantity": {
            "default": 1,
            "type": "integer",
            "minimum": 1,
            "maximum": 1000
          },
          "units": {
            "description": "For a price per unit: how many (hours, dogs).",
            "type": "integer",
            "minimum": 1,
            "maximum": 10000
          },
          "amountMinor": {
            "description": "For pay what you want: the amount picked, in cents.",
            "type": "integer",
            "minimum": 0,
            "maximum": 100000000
          },
          "quotedMinor": {
            "description": "For something priced by quote: what you’re quoting them, per item, in cents.",
            "type": "integer",
            "minimum": 0,
            "maximum": 100000000
          }
        },
        "required": [
          "productId"
        ],
        "additionalProperties": false
      }
    },
    "codes": {
      "default": [],
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 40
      }
    },
    "proofs": {
      "default": [],
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 200
      }
    },
    "open": {
      "default": [],
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 81
      }
    },
    "collect": {
      "default": "card",
      "type": "string",
      "enum": [
        "card",
        "authorize",
        "save_then_charge",
        "invoice",
        "in_person"
      ]
    },
    "eventAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    },
    "approveWithinDays": {
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    },
    "netDays": {
      "type": "integer",
      "minimum": 0,
      "maximum": 120
    },
    "asCustomerId": {
      "description": "The business only: see it as this customer would.",
      "type": "string",
      "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$"
    },
    "policies": {
      "default": [],
      "description": "The business’s policies a booking or order is sold under (cancellation, deposit, no_show), as `commerce.sell` would.",
      "maxItems": 3,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "cancellation",
          "deposit",
          "no_show"
        ]
      }
    },
    "balanceAt": {
      "type": "string",
      "enum": [
        "appointment",
        "pickup",
        "delivery"
      ]
    },
    "installments": {
      "type": "object",
      "properties": {
        "count": {
          "type": "integer",
          "minimum": 2,
          "maximum": 12
        },
        "dates": {
          "description": "The later payments’ dates (YYYY-MM-DD, the business’s calendar), one per payment after the first, in order. The first is charged now.",
          "minItems": 1,
          "maxItems": 11,
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          }
        },
        "every": {
          "description": "Or one payment every week or month from today. The default is monthly.",
          "type": "string",
          "enum": [
            "week",
            "month"
          ]
        }
      },
      "required": [
        "count"
      ],
      "additionalProperties": false,
      "description": "A payment plan: the first payment now, the rest charged to the saved card on their dates. The customer agrees to it on its own (`agreeToRenewal`)."
    },
    "tender": {
      "default": [],
      "description": "Gift cards (by `code`) and store credit or cards the customer holds (by `grantId`) to pay with first, in order. They pay what’s due now, then any balance; a card pays the rest.",
      "maxItems": 5,
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "code": {
                "type": "string",
                "minLength": 1,
                "maxLength": 40
              }
            },
            "required": [
              "code"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "grantId": {
                "type": "string",
                "pattern": "^grt_[0-9a-hjkmnp-tv-z]{26}$",
                "description": "A gift card or store credit the customer holds (`commerce.storedValue`). A grant id: grt_ and 26 letters and digits."
              }
            },
            "required": [
              "grantId"
            ],
            "additionalProperties": false
          }
        ]
      }
    },
    "taxZip": {
      "label": "ZIP code",
      "description": "The customer’s ZIP code, for something shipped or sent digitally: with it, the words show the sales tax and the total with it. Without it, such a sale at a business that collects sales tax answers `askZip`. Anything supplied at the business is taxed there and never needs one.",
      "type": "string",
      "maxLength": 20
    },
    "locationId": {
      "description": "Where it’s provided, when that’s a place or venue of the business (a session’s location), as `commerce.sell` takes it.",
      "type": "string",
      "pattern": "^loc_[0-9a-hjkmnp-tv-z]{26}$"
    },
    "shipTo": {
      "description": "Where something shipped goes: with it, the words show shipping (the cheapest way, or `shipping`) and the sales tax for that address.",
      "type": "object",
      "properties": {
        "line1": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "label": "Street address"
        },
        "line2": {
          "default": "",
          "label": "Suite or unit",
          "type": "string",
          "maxLength": 120
        },
        "city": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80,
          "label": "City"
        },
        "region": {
          "label": "State",
          "type": "string",
          "maxLength": 40
        },
        "postalCode": {
          "label": "ZIP code",
          "type": "string",
          "maxLength": 20
        },
        "country": {
          "default": "US",
          "type": "string",
          "const": "US"
        },
        "geo": {
          "type": "object",
          "properties": {
            "lat": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            },
            "lng": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            }
          },
          "required": [
            "lat",
            "lng"
          ],
          "additionalProperties": false
        },
        "placeId": {
          "type": "string",
          "maxLength": 200
        },
        "checked": {
          "type": "boolean"
        },
        "timeZone": {
          "type": "string",
          "maxLength": 64
        },
        "showStreet": {
          "default": true,
          "label": "Show the street address",
          "type": "boolean"
        }
      },
      "required": [
        "line1",
        "city",
        "region"
      ],
      "additionalProperties": false
    },
    "shipping": {
      "description": "The way to ship it the customer picked (a `token` from `shipping.options`).",
      "type": "string",
      "maxLength": 400
    }
  },
  "required": [
    "lines"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "const": "priced"
                },
                "words": {
                  "type": "object",
                  "properties": {
                    "lines": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "label": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "name",
                          "label"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "total": {
                      "type": "string"
                    },
                    "dueNow": {
                      "type": "string"
                    },
                    "terms": {
                      "type": "string"
                    },
                    "renewal": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "button": {
                      "type": "string"
                    },
                    "later": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "tax": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "lines",
                    "total",
                    "dueNow",
                    "terms",
                    "renewal",
                    "button",
                    "later",
                    "tax"
                  ],
                  "additionalProperties": false
                },
                "termsVersion": {
                  "type": "string"
                },
                "repeats": {
                  "type": "boolean"
                },
                "collect": {
                  "type": "string",
                  "enum": [
                    "card",
                    "authorize",
                    "save_then_charge",
                    "invoice",
                    "in_person"
                  ]
                },
                "fellBack": {
                  "type": "boolean"
                },
                "onSession": {
                  "anyOf": [
                    {
                      "type": "string",
                      "enum": [
                        "payment",
                        "authorize",
                        "setup"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "giftCard": {
                  "type": "boolean"
                },
                "askZip": {
                  "type": "boolean"
                },
                "delivery": {
                  "anyOf": [
                    {
                      "type": "string",
                      "enum": [
                        "ship",
                        "local_delivery",
                        "pickup"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "shipping": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "options": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "token": {
                                "type": "string"
                              },
                              "name": {
                                "type": "string"
                              },
                              "price": {
                                "type": "string"
                              },
                              "days": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              }
                            },
                            "required": [
                              "token",
                              "name",
                              "price",
                              "days"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "chosen": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "note": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "options",
                        "chosen",
                        "note"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "status",
                "words",
                "termsVersion",
                "repeats",
                "collect",
                "fellBack",
                "onSession",
                "giftCard",
                "askZip",
                "delivery",
                "shipping"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "const": "unpriceable"
                },
                "message": {
                  "type": "string"
                },
                "productId": {
                  "anyOf": [
                    {
                      "type": "string",
                      "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
                      "description": "A product id: prd_ and 26 letters and digits."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "offer": {
                  "anyOf": [
                    {
                      "type": "string",
                      "enum": [
                        "request_quote"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "status",
                "message",
                "productId",
                "offer"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "const": "refused"
                },
                "message": {
                  "type": "string"
                },
                "alternative": {
                  "anyOf": [
                    {
                      "type": "string",
                      "enum": [
                        "card",
                        "authorize",
                        "save_then_charge",
                        "invoice",
                        "in_person"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "status",
                "message",
                "alternative"
              ],
              "additionalProperties": false
            }
          ]
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.priceConfirmation

A new price to confirm

Kind
Read
Tool
sales_priceConfirmation
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "chargeId": {
      "type": "string",
      "pattern": "^chg_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A charge id: chg_ and 26 letters and digits."
    }
  },
  "required": [
    "chargeId"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "chargeId": {
              "type": "string",
              "pattern": "^chg_[0-9a-hjkmnp-tv-z]{26}$",
              "description": "A charge id: chg_ and 26 letters and digits."
            },
            "agreementId": {
              "type": "string",
              "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
              "description": "A agreement id: agr_ and 26 letters and digits."
            },
            "status": {
              "type": "string",
              "enum": [
                "waiting",
                "confirmed",
                "closed"
              ]
            },
            "what": {
              "type": "string"
            },
            "from": {
              "type": "string"
            },
            "to": {
              "type": "string"
            },
            "why": {
              "type": "string"
            },
            "words": {
              "type": "string"
            },
            "wordsVersion": {
              "type": "string"
            },
            "amountMinor": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "canCancel": {
              "type": "boolean"
            },
            "cancelWords": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "required": [
            "chargeId",
            "agreementId",
            "status",
            "what",
            "from",
            "to",
            "why",
            "words",
            "wordsVersion",
            "amountMinor",
            "canCancel",
            "cancelWords"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.priceList

What things cost

Kind
Read
Tool
sales_priceList
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "productIds": {
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
        "description": "A product id: prd_ and 26 letters and digits."
      }
    }
  },
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "products": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "productId": {
                    "type": "string",
                    "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A product id: prd_ and 26 letters and digits."
                  },
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "service",
                      "physical",
                      "digital",
                      "access",
                      "bundle",
                      "gift_card",
                      "shipping"
                    ]
                  },
                  "prices": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "priceId": {
                          "type": "string",
                          "pattern": "^pri_[0-9a-hjkmnp-tv-z]{26}$",
                          "description": "A price id: pri_ and 26 letters and digits."
                        },
                        "name": {
                          "type": "string"
                        },
                        "label": {
                          "type": "string"
                        },
                        "fromMinor": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "currency": {
                          "type": "string"
                        },
                        "model": {
                          "type": "string",
                          "enum": [
                            "flat",
                            "per_unit",
                            "tiered",
                            "deposit",
                            "pay_what_you_want",
                            "quote_required"
                          ]
                        }
                      },
                      "required": [
                        "priceId",
                        "name",
                        "label",
                        "fromMinor",
                        "currency",
                        "model"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "productId",
                  "name",
                  "description",
                  "type",
                  "prices"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "products"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.prices

A product’s prices

Kind
Read
Tool
sales_prices
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "productId": {
      "type": "string",
      "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A product id: prd_ and 26 letters and digits."
    },
    "archived": {
      "default": false,
      "description": "Include prices no longer offered.",
      "type": "boolean"
    }
  },
  "required": [
    "productId"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "prices": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "priceId": {
                    "type": "string",
                    "pattern": "^pri_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A price id: pri_ and 26 letters and digits."
                  },
                  "name": {
                    "type": "string"
                  },
                  "isDefault": {
                    "type": "boolean"
                  },
                  "variantId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^var_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A variant id: var_ and 26 letters and digits."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "audienceId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A audience id: aud_ and 26 letters and digits."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "active",
                      "archived"
                    ]
                  },
                  "current": {
                    "type": "object",
                    "properties": {
                      "versionId": {
                        "type": "string",
                        "pattern": "^prv_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A price version id: prv_ and 26 letters and digits."
                      },
                      "version": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "model": {
                        "type": "string",
                        "enum": [
                          "flat",
                          "per_unit",
                          "tiered",
                          "deposit",
                          "pay_what_you_want",
                          "quote_required"
                        ]
                      },
                      "label": {
                        "type": "string"
                      },
                      "fromMinor": {
                        "anyOf": [
                          {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "currency": {
                        "type": "string"
                      },
                      "grandfather": {
                        "type": "string",
                        "enum": [
                          "keep",
                          "keep_until",
                          "migrate_at_renewal",
                          "migrate_after_notice"
                        ]
                      },
                      "publishedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                      },
                      "retiredAt": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "date-time",
                            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "versionId",
                      "version",
                      "model",
                      "label",
                      "fromMinor",
                      "currency",
                      "grandfather",
                      "publishedAt",
                      "retiredAt"
                    ],
                    "additionalProperties": false
                  },
                  "history": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "versionId": {
                          "type": "string",
                          "pattern": "^prv_[0-9a-hjkmnp-tv-z]{26}$",
                          "description": "A price version id: prv_ and 26 letters and digits."
                        },
                        "version": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "model": {
                          "type": "string",
                          "enum": [
                            "flat",
                            "per_unit",
                            "tiered",
                            "deposit",
                            "pay_what_you_want",
                            "quote_required"
                          ]
                        },
                        "label": {
                          "type": "string"
                        },
                        "fromMinor": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "currency": {
                          "type": "string"
                        },
                        "grandfather": {
                          "type": "string",
                          "enum": [
                            "keep",
                            "keep_until",
                            "migrate_at_renewal",
                            "migrate_after_notice"
                          ]
                        },
                        "publishedAt": {
                          "type": "string",
                          "format": "date-time",
                          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                        },
                        "retiredAt": {
                          "anyOf": [
                            {
                              "type": "string",
                              "format": "date-time",
                              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "versionId",
                        "version",
                        "model",
                        "label",
                        "fromMinor",
                        "currency",
                        "grandfather",
                        "publishedAt",
                        "retiredAt"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "priceId",
                  "name",
                  "isDefault",
                  "variantId",
                  "audienceId",
                  "status",
                  "current",
                  "history"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "prices"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.product

Look up a product

Kind
Read
Tool
sales_product
Scope
commerce:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "productId": {
      "type": "string",
      "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A product id: prd_ and 26 letters and digits."
    }
  },
  "required": [
    "productId"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "product": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
                      "description": "A product id: prd_ and 26 letters and digits."
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "service",
                        "physical",
                        "digital",
                        "access",
                        "bundle",
                        "gift_card",
                        "shipping"
                      ]
                    },
                    "name": {
                      "type": "string"
                    },
                    "description": {
                      "type": "string"
                    },
                    "fulfillment": {
                      "type": "string",
                      "enum": [
                        "at_appointment",
                        "pickup",
                        "ship",
                        "local_delivery",
                        "digital",
                        "on_site"
                      ]
                    },
                    "durationMinutes": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "priceMinor": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "currency": {
                      "type": "string"
                    },
                    "priceLabel": {
                      "type": "string"
                    },
                    "priceModel": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "flat",
                            "per_unit",
                            "tiered",
                            "deposit",
                            "pay_what_you_want",
                            "quote_required"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "perUnit": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string"
                            },
                            "amountMinor": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "label",
                            "amountMinor"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "credits": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "validDays": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "repeats": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "interval": {
                              "type": "string"
                            },
                            "count": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            "trialDays": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "interval",
                            "count",
                            "trialDays"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "deposit": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "percent": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "amountMinor": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "percent",
                            "amountMinor"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "payWhatYouWant": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "minMinor": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            "suggestedMinor": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "maxMinor": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "minMinor",
                            "suggestedMinor",
                            "maxMinor"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "taxCode": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "locationId": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^loc_[0-9a-hjkmnp-tv-z]{26}$",
                          "description": "A location id: loc_ and 26 letters and digits."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "active",
                        "archived"
                      ]
                    },
                    "inStock": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "options": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string"
                          },
                          "values": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          }
                        },
                        "required": [
                          "name",
                          "values"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "variants": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "pattern": "^var_[0-9a-hjkmnp-tv-z]{26}$",
                            "description": "A variant id: var_ and 26 letters and digits."
                          },
                          "label": {
                            "type": "string"
                          },
                          "choices": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string"
                            },
                            "additionalProperties": {
                              "type": "string"
                            }
                          },
                          "inventoryCount": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "id",
                          "label",
                          "choices",
                          "inventoryCount"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "parts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "productId": {
                            "type": "string",
                            "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
                            "description": "A product id: prd_ and 26 letters and digits."
                          },
                          "variantId": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^var_[0-9a-hjkmnp-tv-z]{26}$",
                                "description": "A variant id: var_ and 26 letters and digits."
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "name": {
                            "type": "string"
                          },
                          "quantity": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "productId",
                          "variantId",
                          "name",
                          "quantity"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "images": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string"
                          },
                          "alt": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "url",
                          "alt"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "downloads": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "contentType": {
                            "type": "string"
                          },
                          "bytes": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "id",
                          "name",
                          "contentType",
                          "bytes"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "downloadLimit": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "pickupPerDay": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "weightOz": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "mirrored": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "type",
                    "name",
                    "description",
                    "fulfillment",
                    "durationMinutes",
                    "priceMinor",
                    "currency",
                    "priceLabel",
                    "priceModel",
                    "perUnit",
                    "credits",
                    "validDays",
                    "repeats",
                    "deposit",
                    "payWhatYouWant",
                    "taxCode",
                    "locationId",
                    "status",
                    "inStock",
                    "options",
                    "variants",
                    "parts",
                    "images",
                    "downloads",
                    "downloadLimit",
                    "pickupPerDay",
                    "weightOz",
                    "mirrored"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "product"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.productPolicies

The cancellation policy products are sold under

Kind
Read
Tool
sales_productPolicies
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "productIds": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
        "description": "A product id: prd_ and 26 letters and digits."
      }
    }
  },
  "required": [
    "productIds"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "policies": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "productId": {
                    "type": "string",
                    "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A product id: prd_ and 26 letters and digits."
                  },
                  "cancellation": {
                    "type": "object",
                    "properties": {
                      "policyId": {
                        "type": "string",
                        "pattern": "^pol_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A policy id: pol_ and 26 letters and digits."
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "freeUntilMinutes": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 525600
                          },
                          "lateRefundPercent": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 100
                          },
                          "refundAs": {
                            "type": "string",
                            "enum": [
                              "card",
                              "store_credit"
                            ]
                          }
                        },
                        "required": [
                          "freeUntilMinutes",
                          "lateRefundPercent"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "required": [
                      "policyId",
                      "terms"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "productId",
                  "cancellation"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "policies"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.products

List products

Kind
Read
Tool
sales_products
Scope
commerce:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "status": {
      "default": "active",
      "description": "On sale (active), taken off sale (archived), or all.",
      "type": "string",
      "enum": [
        "active",
        "archived",
        "all"
      ]
    },
    "type": {
      "type": "string",
      "enum": [
        "service",
        "physical",
        "digital",
        "access",
        "bundle",
        "gift_card",
        "shipping"
      ]
    },
    "fulfillment": {
      "description": "How the customer gets it: at_appointment for bookable services.",
      "type": "string",
      "enum": [
        "at_appointment",
        "pickup",
        "ship",
        "local_delivery",
        "digital",
        "on_site"
      ]
    },
    "productIds": {
      "description": "Only these.",
      "maxItems": 500,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
        "description": "A product id: prd_ and 26 letters and digits."
      }
    },
    "q": {
      "description": "Part of a name.",
      "type": "string",
      "maxLength": 120
    }
  },
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "products": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A product id: prd_ and 26 letters and digits."
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "service",
                      "physical",
                      "digital",
                      "access",
                      "bundle",
                      "gift_card",
                      "shipping"
                    ]
                  },
                  "name": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "fulfillment": {
                    "type": "string",
                    "enum": [
                      "at_appointment",
                      "pickup",
                      "ship",
                      "local_delivery",
                      "digital",
                      "on_site"
                    ]
                  },
                  "durationMinutes": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "priceMinor": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "currency": {
                    "type": "string"
                  },
                  "priceLabel": {
                    "type": "string"
                  },
                  "priceModel": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "flat",
                          "per_unit",
                          "tiered",
                          "deposit",
                          "pay_what_you_want",
                          "quote_required"
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "perUnit": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "label": {
                            "type": "string"
                          },
                          "amountMinor": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "label",
                          "amountMinor"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "credits": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "validDays": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "repeats": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "interval": {
                            "type": "string"
                          },
                          "count": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "trialDays": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "interval",
                          "count",
                          "trialDays"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "deposit": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "percent": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "amountMinor": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "percent",
                          "amountMinor"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "payWhatYouWant": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "minMinor": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "suggestedMinor": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "maxMinor": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "minMinor",
                          "suggestedMinor",
                          "maxMinor"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "taxCode": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "locationId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^loc_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A location id: loc_ and 26 letters and digits."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "active",
                      "archived"
                    ]
                  },
                  "inStock": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "options": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "values": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "name",
                        "values"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "variants": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "pattern": "^var_[0-9a-hjkmnp-tv-z]{26}$",
                          "description": "A variant id: var_ and 26 letters and digits."
                        },
                        "label": {
                          "type": "string"
                        },
                        "choices": {
                          "type": "object",
                          "propertyNames": {
                            "type": "string"
                          },
                          "additionalProperties": {
                            "type": "string"
                          }
                        },
                        "inventoryCount": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "id",
                        "label",
                        "choices",
                        "inventoryCount"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "parts": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "productId": {
                          "type": "string",
                          "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
                          "description": "A product id: prd_ and 26 letters and digits."
                        },
                        "variantId": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^var_[0-9a-hjkmnp-tv-z]{26}$",
                              "description": "A variant id: var_ and 26 letters and digits."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "name": {
                          "type": "string"
                        },
                        "quantity": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "productId",
                        "variantId",
                        "name",
                        "quantity"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "images": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "url": {
                          "type": "string"
                        },
                        "alt": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "id",
                        "url",
                        "alt"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "downloads": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "contentType": {
                          "type": "string"
                        },
                        "bytes": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "id",
                        "name",
                        "contentType",
                        "bytes"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "downloadLimit": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "pickupPerDay": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "weightOz": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "mirrored": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "id",
                  "type",
                  "name",
                  "description",
                  "fulfillment",
                  "durationMinutes",
                  "priceMinor",
                  "currency",
                  "priceLabel",
                  "priceModel",
                  "perUnit",
                  "credits",
                  "validDays",
                  "repeats",
                  "deposit",
                  "payWhatYouWant",
                  "taxCode",
                  "locationId",
                  "status",
                  "inStock",
                  "options",
                  "variants",
                  "parts",
                  "images",
                  "downloads",
                  "downloadLimit",
                  "pickupPerDay",
                  "weightOz",
                  "mirrored"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "products"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.publishAdjustment

Set a discount

Kind
Change
Tool
sales_publishAdjustment
Scope
commerce:write
Reached by
API, MCP, ChatGPT

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "adjustmentId": {
      "description": "The adjustment to change. Left out, a new one is added.",
      "type": "string",
      "pattern": "^adj_[0-9a-hjkmnp-tv-z]{26}$"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "effect": {
      "type": "string",
      "enum": [
        "percent",
        "amount",
        "fixed_price",
        "free_item",
        "buy_x_get_y"
      ],
      "description": "percent off, amount off, fixed_price (each costs this), free_item, or buy_x_get_y."
    },
    "percent": {
      "description": "For percent: how much off, like 15.",
      "type": "number",
      "minimum": 0.01,
      "maximum": 100
    },
    "amountMinor": {
      "description": "For amount: how much off; for fixed_price: the price. In cents.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "stackingGroup": {
      "description": "Adjustments in one group combine; different groups are alternatives and the customer gets the lower total. Left out: default.",
      "type": "string",
      "pattern": "^[a-z0-9_-]{1,40}$"
    },
    "priority": {
      "description": "Breaks a tie between alternatives: higher wins.",
      "type": "integer",
      "minimum": -100,
      "maximum": 100
    },
    "audienceId": {
      "description": "Only for this audience’s holders (a member price).",
      "anyOf": [
        {
          "type": "string",
          "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$",
          "description": "A audience id: aud_ and 26 letters and digits."
        },
        {
          "type": "null"
        }
      ]
    },
    "requiresCode": {
      "description": "Only through a code (add one with commerce.createCode).",
      "type": "boolean"
    },
    "heldBy": {
      "description": "System only: the module that says who holds it (its `adjustments` fill), like loyalty for a reward.",
      "anyOf": [
        {
          "type": "string",
          "pattern": "^[a-z][a-z0-9_]{1,39}$"
        },
        {
          "type": "null"
        }
      ]
    },
    "startsAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "endsAt": {
      "anyOf": [
        {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        {
          "type": "null"
        }
      ]
    },
    "firstNCharges": {
      "description": "An intro: only the first N paid charges of a repeating price.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 120
        },
        {
          "type": "null"
        }
      ]
    },
    "reads": {
      "description": "pinned: customers keep this version at renewals; live: renewals read the current one.",
      "type": "string",
      "enum": [
        "pinned",
        "live"
      ]
    },
    "budgetMinor": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        {
          "type": "null"
        }
      ]
    },
    "maxRedemptions": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 1000000
        },
        {
          "type": "null"
        }
      ]
    },
    "perCustomer": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 1000
        },
        {
          "type": "null"
        }
      ]
    },
    "productIds": {
      "description": "The products it reaches; left out, the whole order.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
        "description": "A product id: prd_ and 26 letters and digits."
      }
    },
    "minSubtotalMinor": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        {
          "type": "null"
        }
      ]
    },
    "minQuantity": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "buy": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "get": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "getPercent": {
      "description": "Buy X get Y: how much off the Y, 100 for free.",
      "type": "number",
      "minimum": 0.01,
      "maximum": 100
    },
    "freeProductId": {
      "type": "string",
      "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A product id: prd_ and 26 letters and digits."
    },
    "freeQuantity": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "name",
    "effect"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.publishPrice

Set a price

Kind
Change
Tool
sales_publishPrice
Scope
commerce:write
Reached by
API, MCP, ChatGPT

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "productId": {
      "type": "string",
      "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A product id: prd_ and 26 letters and digits."
    },
    "priceId": {
      "description": "The price to change. Left out, a new price is added.",
      "type": "string",
      "pattern": "^pri_[0-9a-hjkmnp-tv-z]{26}$"
    },
    "variantId": {
      "description": "For one option combination only (a new price).",
      "type": "string",
      "pattern": "^var_[0-9a-hjkmnp-tv-z]{26}$"
    },
    "audienceId": {
      "description": "Only for this audience’s holders, like a member or Instagram price (a new price).",
      "type": "string",
      "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$"
    },
    "name": {
      "description": "What you call it: Monthly, Drop-in.",
      "type": "string",
      "maxLength": 60
    },
    "amountMinor": {
      "description": "In cents: each one (flat), per unit (per_unit), the full price (deposit). Left out for tiered, pay what you want and quote required.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        {
          "type": "null"
        }
      ]
    },
    "terms": {
      "description": "How the price works (model): flat, per_unit, tiered, deposit, pay_what_you_want or quote_required. Left out, it’s flat.",
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "model": {
              "type": "string",
              "const": "flat"
            }
          },
          "required": [
            "model"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "model": {
              "type": "string",
              "const": "per_unit"
            },
            "unitLabel": {
              "type": "string",
              "minLength": 1,
              "maxLength": 30
            },
            "minUnits": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 9007199254740991
            },
            "maxUnits": {
              "default": null,
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "model",
            "unitLabel"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "model": {
              "type": "string",
              "const": "tiered"
            },
            "mode": {
              "type": "string",
              "enum": [
                "graduated",
                "volume"
              ]
            },
            "tiers": {
              "minItems": 1,
              "maxItems": 20,
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "upTo": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "unitMinor": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 100000000
                  },
                  "flatMinor": {
                    "default": 0,
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 100000000
                  }
                },
                "required": [
                  "upTo",
                  "unitMinor"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "model",
            "mode",
            "tiers"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "model": {
              "type": "string",
              "const": "deposit"
            },
            "depositBps": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 10000
                },
                {
                  "type": "null"
                }
              ]
            },
            "depositMinor": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 100000000
                },
                {
                  "type": "null"
                }
              ]
            },
            "balanceAt": {
              "type": "string",
              "enum": [
                "appointment",
                "pickup",
                "delivery"
              ]
            }
          },
          "required": [
            "model",
            "depositBps",
            "depositMinor",
            "balanceAt"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "model": {
              "type": "string",
              "const": "pay_what_you_want"
            },
            "minMinor": {
              "type": "integer",
              "minimum": 0,
              "maximum": 100000000
            },
            "suggestedMinor": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 100000000
                },
                {
                  "type": "null"
                }
              ]
            },
            "maxMinor": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 100000000
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "model",
            "minMinor",
            "suggestedMinor",
            "maxMinor"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "model": {
              "type": "string",
              "const": "quote_required"
            }
          },
          "required": [
            "model"
          ],
          "additionalProperties": false
        }
      ]
    },
    "recurring": {
      "description": "For a price that repeats: every count interval (1 month), with trialDays free first. Null for one-time.",
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "interval": {
              "type": "string",
              "enum": [
                "day",
                "week",
                "month",
                "year"
              ]
            },
            "count": {
              "type": "integer",
              "minimum": 1,
              "maximum": 36
            },
            "trialDays": {
              "type": "integer",
              "minimum": 0,
              "maximum": 365
            }
          },
          "required": [
            "interval",
            "count",
            "trialDays"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "grandfather": {
      "type": "object",
      "properties": {
        "policy": {
          "type": "string",
          "enum": [
            "keep",
            "keep_until",
            "migrate_at_renewal",
            "migrate_after_notice"
          ],
          "description": "What happens to customers already paying when this price changes later: keep (they keep it), keep_until (until keepUntil or for keepCharges charges), migrate_at_renewal, or migrate_after_notice (after noticeDays, 7 to 30)."
        },
        "keepUntil": {
          "anyOf": [
            {
              "type": "string",
              "format": "date",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
            },
            {
              "type": "null"
            }
          ]
        },
        "keepCharges": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 1,
              "maximum": 120
            },
            {
              "type": "null"
            }
          ]
        },
        "noticeDays": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 7,
              "maximum": 30
            },
            {
              "type": "null"
            }
          ]
        },
        "survivesPause": {
          "type": "boolean"
        },
        "survivesSwitch": {
          "type": "boolean"
        }
      },
      "required": [
        "policy"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "productId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.quote

Price a cart

Kind
Read
Tool
sales_quote
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "lines": {
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
            "description": "A product id: prd_ and 26 letters and digits."
          },
          "variantId": {
            "description": "The option combination, for a product with options.",
            "type": "string",
            "pattern": "^var_[0-9a-hjkmnp-tv-z]{26}$"
          },
          "priceId": {
            "description": "A price of the product to use (Monthly, Drop-in). Left out, the best one open to the customer.",
            "type": "string",
            "pattern": "^pri_[0-9a-hjkmnp-tv-z]{26}$"
          },
          "quantity": {
            "default": 1,
            "type": "integer",
            "minimum": 1,
            "maximum": 1000
          },
          "units": {
            "description": "For a price per unit: how many (hours, dogs).",
            "type": "integer",
            "minimum": 1,
            "maximum": 10000
          },
          "amountMinor": {
            "description": "For pay what you want: the amount picked, in cents.",
            "type": "integer",
            "minimum": 0,
            "maximum": 100000000
          }
        },
        "required": [
          "productId"
        ],
        "additionalProperties": false
      }
    },
    "codes": {
      "default": [],
      "description": "Codes the customer typed, like SPRING10.",
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 40
      }
    },
    "proofs": {
      "default": [],
      "description": "Signed link tokens captured when the customer arrived. An audience or channel is never named here: a price reached by editing a link isn’t applied.",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 200
      }
    },
    "open": {
      "default": [],
      "description": "Open audiences the customer named, as key=value.",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 81
      }
    },
    "asCustomerId": {
      "description": "The business only: price it as this customer would see it.",
      "type": "string",
      "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$"
    },
    "previewAudienceIds": {
      "description": "The business only: price it for a made-up customer holding these audiences.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$",
        "description": "A audience id: aud_ and 26 letters and digits."
      }
    }
  },
  "required": [
    "lines"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "const": "priced"
                },
                "currency": {
                  "type": "string"
                },
                "subtotalMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "discountMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "totalMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "dueNowMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "lines": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "productId": {
                        "type": "string",
                        "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A product id: prd_ and 26 letters and digits."
                      },
                      "variantId": {
                        "anyOf": [
                          {
                            "type": "string",
                            "pattern": "^var_[0-9a-hjkmnp-tv-z]{26}$",
                            "description": "A variant id: var_ and 26 letters and digits."
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "name": {
                        "type": "string"
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "service",
                          "physical",
                          "digital",
                          "access",
                          "bundle",
                          "gift_card",
                          "shipping"
                        ]
                      },
                      "quantity": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "priceId": {
                        "type": "string",
                        "pattern": "^pri_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A price id: pri_ and 26 letters and digits."
                      },
                      "versionId": {
                        "type": "string",
                        "pattern": "^prv_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A price version id: prv_ and 26 letters and digits."
                      },
                      "model": {
                        "type": "string",
                        "enum": [
                          "flat",
                          "per_unit",
                          "tiered",
                          "deposit",
                          "pay_what_you_want",
                          "quote_required"
                        ]
                      },
                      "unitMinor": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "subtotalMinor": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "discountMinor": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "totalMinor": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "dueNowMinor": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "recurring": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "interval": {
                                "type": "string",
                                "enum": [
                                  "day",
                                  "week",
                                  "month",
                                  "year"
                                ]
                              },
                              "count": {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              "trialDays": {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              }
                            },
                            "required": [
                              "interval",
                              "count",
                              "trialDays"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "schedule": {
                        "type": "array",
                        "items": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "step": {
                                  "type": "string",
                                  "const": "charge_now"
                                },
                                "amountMinor": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "step",
                                "amountMinor"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "step": {
                                  "type": "string",
                                  "const": "deposit_now"
                                },
                                "amountMinor": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "step",
                                "amountMinor"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "step": {
                                  "type": "string",
                                  "const": "balance_at"
                                },
                                "event": {
                                  "type": "string",
                                  "enum": [
                                    "appointment",
                                    "pickup",
                                    "delivery"
                                  ]
                                },
                                "amountMinor": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "step",
                                "event",
                                "amountMinor"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "step": {
                                  "type": "string",
                                  "const": "trial"
                                },
                                "days": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "step",
                                "days"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "step": {
                                  "type": "string",
                                  "const": "recurring"
                                },
                                "interval": {
                                  "type": "string",
                                  "enum": [
                                    "day",
                                    "week",
                                    "month",
                                    "year"
                                  ]
                                },
                                "count": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                "amountMinor": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "step",
                                "interval",
                                "count",
                                "amountMinor"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "step": {
                                  "type": "string",
                                  "const": "installment"
                                },
                                "number": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                "on": {
                                  "type": "string"
                                },
                                "amountMinor": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "step",
                                "number",
                                "on",
                                "amountMinor"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        }
                      },
                      "label": {
                        "type": "string"
                      },
                      "fulfillment": {
                        "type": "string",
                        "enum": [
                          "at_appointment",
                          "pickup",
                          "ship",
                          "local_delivery",
                          "digital",
                          "on_site"
                        ]
                      },
                      "taxCode": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "parts": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "productId": {
                              "type": "string",
                              "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
                              "description": "A product id: prd_ and 26 letters and digits."
                            },
                            "variantId": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "pattern": "^var_[0-9a-hjkmnp-tv-z]{26}$",
                                  "description": "A variant id: var_ and 26 letters and digits."
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "name": {
                              "type": "string"
                            },
                            "quantity": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            "taxCode": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "productId",
                            "variantId",
                            "name",
                            "quantity",
                            "taxCode"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "adjustments": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "adjustmentId": {
                              "type": "string",
                              "pattern": "^adj_[0-9a-hjkmnp-tv-z]{26}$",
                              "description": "A adjustment id: adj_ and 26 letters and digits."
                            },
                            "amountMinor": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "adjustmentId",
                            "amountMinor"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "productId",
                      "variantId",
                      "name",
                      "type",
                      "quantity",
                      "priceId",
                      "versionId",
                      "model",
                      "unitMinor",
                      "subtotalMinor",
                      "discountMinor",
                      "totalMinor",
                      "dueNowMinor",
                      "recurring",
                      "schedule",
                      "label",
                      "fulfillment",
                      "taxCode",
                      "parts",
                      "adjustments"
                    ],
                    "additionalProperties": false
                  }
                },
                "phases": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "fromCharge": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "throughCharge": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "totalMinor": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "fromCharge",
                          "throughCharge",
                          "totalMinor"
                        ],
                        "additionalProperties": false
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "installments": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "number": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "on": {
                            "type": "string"
                          },
                          "amountMinor": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "number",
                          "on",
                          "amountMinor"
                        ],
                        "additionalProperties": false
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "explanation": {
                  "type": "object",
                  "properties": {
                    "engineVersion": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    "resolvedAt": {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                    },
                    "versions": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "productId": {
                            "type": "string",
                            "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
                            "description": "A product id: prd_ and 26 letters and digits."
                          },
                          "priceId": {
                            "type": "string",
                            "pattern": "^pri_[0-9a-hjkmnp-tv-z]{26}$",
                            "description": "A price id: pri_ and 26 letters and digits."
                          },
                          "versionId": {
                            "type": "string",
                            "pattern": "^prv_[0-9a-hjkmnp-tv-z]{26}$",
                            "description": "A price version id: prv_ and 26 letters and digits."
                          },
                          "version": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "why": {
                            "type": "string",
                            "enum": [
                              "list",
                              "audience",
                              "pinned",
                              "migrated"
                            ]
                          },
                          "label": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "productId",
                          "priceId",
                          "versionId",
                          "version",
                          "why",
                          "label"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "applied": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "adjustmentId": {
                            "type": "string",
                            "pattern": "^adj_[0-9a-hjkmnp-tv-z]{26}$",
                            "description": "A adjustment id: adj_ and 26 letters and digits."
                          },
                          "versionId": {
                            "type": "string",
                            "pattern": "^adv_[0-9a-hjkmnp-tv-z]{26}$",
                            "description": "A adjustment version id: adv_ and 26 letters and digits."
                          },
                          "name": {
                            "type": "string"
                          },
                          "effect": {
                            "type": "string",
                            "enum": [
                              "percent",
                              "amount",
                              "fixed_price",
                              "free_item",
                              "buy_x_get_y"
                            ]
                          },
                          "via": {
                            "type": "string",
                            "enum": [
                              "audience",
                              "code",
                              "everyone",
                              "held"
                            ]
                          },
                          "amountMinor": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "firstNCharges": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          }
                        },
                        "required": [
                          "adjustmentId",
                          "versionId",
                          "name",
                          "effect",
                          "via",
                          "amountMinor",
                          "firstNCharges"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "notApplied": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "adjustmentId": {
                            "type": "string",
                            "pattern": "^adj_[0-9a-hjkmnp-tv-z]{26}$",
                            "description": "A adjustment id: adj_ and 26 letters and digits."
                          },
                          "versionId": {
                            "type": "string",
                            "pattern": "^adv_[0-9a-hjkmnp-tv-z]{26}$",
                            "description": "A adjustment version id: adv_ and 26 letters and digits."
                          },
                          "name": {
                            "type": "string"
                          },
                          "reason": {
                            "type": "string",
                            "enum": [
                              "exclusive_with",
                              "smaller_than",
                              "limit_reached",
                              "first_charges_done",
                              "buy_more",
                              "add_item",
                              "cart_minimum",
                              "other_currency",
                              "nothing_to_discount",
                              "not_now"
                            ]
                          },
                          "instead": {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "pattern": "^adj_[0-9a-hjkmnp-tv-z]{26}$",
                              "description": "A adjustment id: adj_ and 26 letters and digits."
                            }
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "adjustmentId",
                          "versionId",
                          "name",
                          "reason",
                          "instead",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "audiences": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "audienceId": {
                            "type": "string",
                            "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$",
                            "description": "A audience id: aud_ and 26 letters and digits."
                          },
                          "name": {
                            "type": "string"
                          },
                          "proof": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "audienceId",
                          "name",
                          "proof"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "codes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "ok",
                              "unknown",
                              "expired",
                              "used_up",
                              "already_used"
                            ]
                          },
                          "message": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "code",
                          "status",
                          "message"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "engineVersion",
                    "resolvedAt",
                    "versions",
                    "applied",
                    "notApplied",
                    "audiences",
                    "codes"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "status",
                "currency",
                "subtotalMinor",
                "discountMinor",
                "totalMinor",
                "dueNowMinor",
                "lines",
                "phases",
                "explanation"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "const": "unpriceable"
                },
                "reason": {
                  "type": "string",
                  "enum": [
                    "not_for_sale",
                    "pick_option",
                    "sold_out",
                    "not_enough",
                    "no_price",
                    "quote_required",
                    "pick_amount",
                    "below_minimum",
                    "above_maximum",
                    "pick_units",
                    "mixed_currency"
                  ]
                },
                "productId": {
                  "type": "string",
                  "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
                  "description": "A product id: prd_ and 26 letters and digits."
                },
                "message": {
                  "type": "string"
                },
                "offer": {
                  "anyOf": [
                    {
                      "type": "string",
                      "enum": [
                        "request_quote"
                      ]
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "line": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "status",
                "reason",
                "productId",
                "message",
                "offer"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "const": "unresolvable"
                },
                "message": {
                  "type": "string"
                }
              },
              "required": [
                "status",
                "message"
              ],
              "additionalProperties": false
            }
          ]
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.quoteRequests

Quote requests

Kind
Read
Tool
sales_quoteRequests
Scope
commerce:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "status": {
      "default": "open",
      "type": "string",
      "enum": [
        "open",
        "offered",
        "declined"
      ]
    }
  },
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "requests": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "requestId": {
                    "type": "string",
                    "pattern": "^qr_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A quote request id: qr_ and 26 letters and digits."
                  },
                  "customerId": {
                    "type": "string",
                    "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A customer id: cus_ and 26 letters and digits."
                  },
                  "customer": {
                    "type": "string"
                  },
                  "productId": {
                    "type": "string",
                    "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A product id: prd_ and 26 letters and digits."
                  },
                  "product": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "open",
                      "offered",
                      "declined"
                    ]
                  },
                  "agreementId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A agreement id: agr_ and 26 letters and digits."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
                  }
                },
                "required": [
                  "requestId",
                  "customerId",
                  "customer",
                  "productId",
                  "product",
                  "message",
                  "status",
                  "agreementId",
                  "createdAt"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "requests"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.refundCharge

Refund a charge

Kind
Change
Tool
sales_refundCharge
Scope
commerce:write
Reached by
API, MCP, ChatGPT

waits for the owner to confirm it in Allpage, whatever they chose for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "chargeId": {
      "type": "string",
      "pattern": "^chg_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A charge id: chg_ and 26 letters and digits."
    },
    "amountMinor": {
      "description": "How much to give back, in cents. Leave it out to refund what’s left.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "reason": {
      "default": "",
      "type": "string",
      "maxLength": 200
    },
    "restock": {
      "default": true,
      "description": "When this refunds the whole sale, put what it took back in stock. Say false when it isn’t coming back, like a mug that broke on the way. Seats and rooms always come back.",
      "type": "boolean"
    }
  },
  "required": [
    "chargeId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.removeFromAudience

Take a customer out of an audience

Kind
Change
Tool
sales_removeFromAudience
Scope
commerce:write
Reached by
API, MCP

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "audienceId": {
      "type": "string",
      "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A audience id: aud_ and 26 letters and digits."
    },
    "customerId": {
      "type": "string",
      "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A customer id: cus_ and 26 letters and digits."
    }
  },
  "required": [
    "audienceId",
    "customerId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.restoreAdjustment

Start a discount again

Kind
Change
Tool
sales_restoreAdjustment
Scope
commerce:write
Reached by
API, MCP

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "adjustmentId": {
      "type": "string",
      "pattern": "^adj_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A adjustment id: adj_ and 26 letters and digits."
    }
  },
  "required": [
    "adjustmentId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.restoreAudience

Bring back an audience

Kind
Change
Tool
sales_restoreAudience
Scope
commerce:write
Reached by
API, MCP

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "audienceId": {
      "type": "string",
      "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A audience id: aud_ and 26 letters and digits."
    }
  },
  "required": [
    "audienceId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.restoreCode

Turn a code back on

Kind
Change
Tool
sales_restoreCode
Scope
commerce:write
Reached by
API, MCP

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "codeId": {
      "type": "string",
      "pattern": "^cod_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A code id: cod_ and 26 letters and digits."
    }
  },
  "required": [
    "codeId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.restorePrice

Offer a price again

Kind
Change
Tool
sales_restorePrice
Scope
commerce:write
Reached by
API, MCP

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "priceId": {
      "type": "string",
      "pattern": "^pri_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A price id: pri_ and 26 letters and digits."
    }
  },
  "required": [
    "priceId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.restoreProduct

Put a product back on sale

Kind
Change
Tool
sales_restoreProduct
Scope
commerce:write
Reached by
API, MCP, ChatGPT

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "productId": {
      "type": "string",
      "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A product id: prd_ and 26 letters and digits."
    }
  },
  "required": [
    "productId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.resumeAgreement

Resume

Kind
Change
Tool
sales_resumeAgreement
Scope
commerce:write
Reached by
API, MCP

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A agreement id: agr_ and 26 letters and digits."
    }
  },
  "required": [
    "agreementId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.revenue

See what you took in a month

Kind
Read
Tool
sales_revenue
Scope
commerce:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "month": {
      "description": "The month, like 2026-09, in the business’s time zone. This month when left out.",
      "type": "string",
      "pattern": "^\\d{4}-(0[1-9]|1[0-2])$"
    }
  },
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "month": {
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "previous": {
              "type": "string"
            },
            "next": {
              "type": [
                "string",
                "null"
              ]
            },
            "totals": {
              "type": "object",
              "properties": {
                "salesMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "refundsMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "revenueMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "taxMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "feesMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "disputesMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "netMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "sales": {
                  "type": "string"
                },
                "refunds": {
                  "type": "string"
                },
                "revenue": {
                  "type": "string"
                },
                "tax": {
                  "type": "string"
                },
                "fees": {
                  "type": "string"
                },
                "disputes": {
                  "type": "string"
                },
                "net": {
                  "type": "string"
                }
              },
              "required": [
                "salesMinor",
                "refundsMinor",
                "revenueMinor",
                "taxMinor",
                "feesMinor",
                "disputesMinor",
                "netMinor",
                "sales",
                "refunds",
                "revenue",
                "tax",
                "fees",
                "disputes",
                "net"
              ],
              "additionalProperties": false
            },
            "byProduct": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "amountMinor": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "amount": {
                    "type": "string"
                  },
                  "charges": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "key",
                  "name",
                  "amountMinor",
                  "amount",
                  "charges"
                ],
                "additionalProperties": false
              }
            },
            "byMembership": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "amountMinor": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "amount": {
                    "type": "string"
                  },
                  "charges": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "key",
                  "name",
                  "amountMinor",
                  "amount",
                  "charges"
                ],
                "additionalProperties": false
              }
            },
            "byAudience": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "amountMinor": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "amount": {
                    "type": "string"
                  },
                  "charges": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "key",
                  "name",
                  "amountMinor",
                  "amount",
                  "charges"
                ],
                "additionalProperties": false
              }
            },
            "byCampaign": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "amountMinor": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "amount": {
                    "type": "string"
                  },
                  "charges": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "key",
                  "name",
                  "amountMinor",
                  "amount",
                  "charges"
                ],
                "additionalProperties": false
              }
            },
            "byLocation": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "key": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "amountMinor": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "amount": {
                    "type": "string"
                  },
                  "charges": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "key",
                  "name",
                  "amountMinor",
                  "amount",
                  "charges"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "month",
            "label",
            "previous",
            "next",
            "totals",
            "byProduct",
            "byMembership",
            "byAudience",
            "byCampaign",
            "byLocation"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.salesOwed

See what’s owed on some sales

Kind
Read
Tool
sales_salesOwed
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementIds": {
      "maxItems": 200,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
        "description": "A agreement id: agr_ and 26 letters and digits."
      }
    }
  },
  "required": [
    "agreementIds"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "charges": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "chargeId": {
                    "type": "string",
                    "pattern": "^chg_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A charge id: chg_ and 26 letters and digits."
                  },
                  "agreementId": {
                    "type": "string",
                    "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
                    "description": "A agreement id: agr_ and 26 letters and digits."
                  },
                  "state": {
                    "type": "string",
                    "enum": [
                      "owed",
                      "paid",
                      "other"
                    ]
                  },
                  "amount": {
                    "type": "string",
                    "description": "With tax: \"$25.00\"."
                  },
                  "amountMinor": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "currency": {
                    "type": "string"
                  }
                },
                "required": [
                  "chargeId",
                  "agreementId",
                  "state",
                  "amount",
                  "amountMinor",
                  "currency"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "charges"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.salesTax

See where you collect sales tax

Kind
Read
Tool
sales_salesTax
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "regions": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Two-letter states, A to Z."
            },
            "charging": {
              "type": "boolean"
            },
            "sellsPhysical": {
              "type": "boolean"
            },
            "disclaimer": {
              "type": "string"
            }
          },
          "required": [
            "regions",
            "charging",
            "sellsPhysical",
            "disclaimer"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.saveQuote

Keep a quote

Kind
Change
Tool
sales_saveQuote
Scope
commerce:write
Reached by
API, MCP

a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "lines": {
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
            "description": "A product id: prd_ and 26 letters and digits."
          },
          "variantId": {
            "description": "The option combination, for a product with options.",
            "type": "string",
            "pattern": "^var_[0-9a-hjkmnp-tv-z]{26}$"
          },
          "priceId": {
            "description": "A price of the product to use (Monthly, Drop-in). Left out, the best one open to the customer.",
            "type": "string",
            "pattern": "^pri_[0-9a-hjkmnp-tv-z]{26}$"
          },
          "quantity": {
            "default": 1,
            "type": "integer",
            "minimum": 1,
            "maximum": 1000
          },
          "units": {
            "description": "For a price per unit: how many (hours, dogs).",
            "type": "integer",
            "minimum": 1,
            "maximum": 10000
          },
          "amountMinor": {
            "description": "For pay what you want: the amount picked, in cents.",
            "type": "integer",
            "minimum": 0,
            "maximum": 100000000
          }
        },
        "required": [
          "productId"
        ],
        "additionalProperties": false
      }
    },
    "codes": {
      "default": [],
      "description": "Codes the customer typed, like SPRING10.",
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 40
      }
    },
    "proofs": {
      "default": [],
      "description": "Signed link tokens captured when the customer arrived. An audience or channel is never named here: a price reached by editing a link isn’t applied.",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 200
      }
    },
    "open": {
      "default": [],
      "description": "Open audiences the customer named, as key=value.",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 81
      }
    },
    "asCustomerId": {
      "description": "The business only: price it as this customer would see it.",
      "type": "string",
      "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$"
    },
    "previewAudienceIds": {
      "description": "The business only: price it for a made-up customer holding these audiences.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$",
        "description": "A audience id: aud_ and 26 letters and digits."
      }
    }
  },
  "required": [
    "lines"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.saveShipping

Change shipping

Kind
Change
Tool
sales_saveShipping
Scope
commerce:write
Reached by
API, MCP, ChatGPT

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "flatMinor": {
      "description": "Without a shipping account: what every shipped order pays, in cents. Null ships free.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        {
          "type": "null"
        }
      ]
    },
    "box": {
      "description": "The box you usually ship in, in inches. Rates use it.",
      "type": "object",
      "properties": {
        "lengthIn": {
          "type": "integer",
          "minimum": 1,
          "maximum": 108
        },
        "widthIn": {
          "type": "integer",
          "minimum": 1,
          "maximum": 108
        },
        "heightIn": {
          "type": "integer",
          "minimum": 1,
          "maximum": 108
        }
      },
      "required": [
        "lengthIn",
        "widthIn",
        "heightIn"
      ],
      "additionalProperties": false
    },
    "defaultWeightOz": {
      "description": "What one item weighs boxed, in ounces, for products with no weight of their own.",
      "type": "integer",
      "minimum": 1,
      "maximum": 2400
    }
  },
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.segmentMembers

See who’s in an audience

Kind
Read
Tool
sales_segmentMembers
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "audienceId": {
      "type": "string",
      "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A audience id: aud_ and 26 letters and digits."
    }
  },
  "required": [
    "audienceId"
  ],
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "audienceId": {
              "type": "string",
              "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$",
              "description": "A audience id: aud_ and 26 letters and digits."
            },
            "name": {
              "type": "string"
            },
            "count": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "customerIds": {
              "type": "array",
              "items": {
                "type": "string",
                "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
                "description": "A customer id: cus_ and 26 letters and digits."
              }
            }
          },
          "required": [
            "audienceId",
            "name",
            "count",
            "customerIds"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.sendOffer

Send an offer

Kind
Change
Tool
sales_sendOffer
Scope
commerce:write
Reached by
API, MCP, ChatGPT

waits for the owner to confirm it in Allpage, whatever they chose for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A agreement id: agr_ and 26 letters and digits."
    }
  },
  "required": [
    "agreementId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.setInventory

Set how many are in stock

Kind
Change
Tool
sales_setInventory
Scope
commerce:write
Reached by
API, MCP, ChatGPT

a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "productId": {
      "type": "string",
      "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A product id: prd_ and 26 letters and digits."
    },
    "variantId": {
      "description": "The option combination, for a product with options.",
      "type": "string",
      "pattern": "^var_[0-9a-hjkmnp-tv-z]{26}$"
    },
    "count": {
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        {
          "type": "null"
        }
      ],
      "description": "How many are left; null to stop counting."
    }
  },
  "required": [
    "productId",
    "count"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.setShipTo

Change where orders go

Kind
Change
Tool
sales_setShipTo
Scope
commerce:write
Reached by
API, MCP, ChatGPT

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A agreement id: agr_ and 26 letters and digits."
    },
    "address": {
      "type": "object",
      "properties": {
        "line1": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120,
          "label": "Street address"
        },
        "line2": {
          "default": "",
          "label": "Suite or unit",
          "type": "string",
          "maxLength": 120
        },
        "city": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80,
          "label": "City"
        },
        "region": {
          "label": "State",
          "type": "string",
          "maxLength": 40
        },
        "postalCode": {
          "label": "ZIP code",
          "type": "string",
          "maxLength": 20
        },
        "country": {
          "default": "US",
          "type": "string",
          "const": "US"
        },
        "geo": {
          "type": "object",
          "properties": {
            "lat": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            },
            "lng": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            }
          },
          "required": [
            "lat",
            "lng"
          ],
          "additionalProperties": false
        },
        "placeId": {
          "type": "string",
          "maxLength": 200
        },
        "checked": {
          "type": "boolean"
        },
        "timeZone": {
          "type": "string",
          "maxLength": 64
        },
        "showStreet": {
          "default": true,
          "label": "Show the street address",
          "type": "boolean"
        }
      },
      "required": [
        "line1",
        "city",
        "region"
      ],
      "additionalProperties": false,
      "description": "Where its orders go: street, city, state and ZIP code."
    }
  },
  "required": [
    "agreementId",
    "address"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.setTaxRegions

Set where you collect sales tax

Kind
Change
Tool
sales_setTaxRegions
Scope
commerce:write
Reached by
API, MCP, ChatGPT

a private change: runs now if the owner lets your app make private changes, otherwise waits for their approval

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "regions": {
      "maxItems": 51,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "AL",
          "AK",
          "AZ",
          "AR",
          "CA",
          "CO",
          "CT",
          "DE",
          "DC",
          "FL",
          "GA",
          "HI",
          "ID",
          "IL",
          "IN",
          "IA",
          "KS",
          "KY",
          "LA",
          "ME",
          "MD",
          "MA",
          "MI",
          "MN",
          "MS",
          "MO",
          "MT",
          "NE",
          "NV",
          "NH",
          "NJ",
          "NM",
          "NY",
          "NC",
          "ND",
          "OH",
          "OK",
          "OR",
          "PA",
          "RI",
          "SC",
          "SD",
          "TN",
          "TX",
          "UT",
          "VT",
          "VA",
          "WA",
          "WV",
          "WI",
          "WY"
        ]
      },
      "description": "Two-letter codes of the US states where the business is registered to collect sales tax; empty for none."
    }
  },
  "required": [
    "regions"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.setUnpaidPolicy

Choose what happens when a card keeps failing

Kind
Change
Tool
sales_setUnpaidPolicy
Scope
commerce:write
Reached by
API, MCP, ChatGPT

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A agreement id: agr_ and 26 letters and digits."
    },
    "onUnpaid": {
      "type": "string",
      "enum": [
        "pause",
        "cancel",
        "keep"
      ],
      "description": "pause (the default): it and their access pause; cancel: it ends; keep: it runs unpaid one more period."
    }
  },
  "required": [
    "agreementId",
    "onUnpaid"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.shipping

How you ship

Kind
Read
Tool
sales_shipping
Scope
commerce:read
Reached by
API, MCP, ChatGPT

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "flatMinor": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                {
                  "type": "null"
                }
              ]
            },
            "flat": {
              "type": "string"
            },
            "box": {
              "type": "object",
              "properties": {
                "lengthIn": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "widthIn": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "heightIn": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "lengthIn",
                "widthIn",
                "heightIn"
              ],
              "additionalProperties": false
            },
            "defaultWeightOz": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "account": {
              "type": "object",
              "properties": {
                "status": {
                  "type": "string",
                  "enum": [
                    "connected",
                    "missing_scope",
                    "needs_reconnect",
                    "not_connected",
                    "unavailable"
                  ]
                },
                "partner": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "account": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "reason": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "connect": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "title": {
                          "type": "string"
                        },
                        "start": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "title",
                        "start"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "status",
                "partner",
                "account",
                "reason",
                "connect"
              ],
              "additionalProperties": false
            },
            "needsAddress": {
              "type": "boolean"
            }
          },
          "required": [
            "flatMinor",
            "flat",
            "box",
            "defaultWeightOz",
            "account",
            "needsAddress"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.skipDelivery

Skip a delivery

Kind
Change
Tool
sales_skipDelivery
Scope
commerce:write
Reached by
API, MCP

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A agreement id: agr_ and 26 letters and digits."
    },
    "on": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "The delivery to skip: its date (`nextOn` from commerce.myOrders, or the subscription’s next charge date). Only the next one can be skipped, until the day before."
    }
  },
  "required": [
    "agreementId",
    "on"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.summary

What’s going on

Kind
Read
Tool
sales_summary
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "title": {
              "type": "string"
            },
            "facts": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "One-line facts, e.g. \"3 bookings today\"."
            },
            "attention": {
              "description": "Things that need the owner, each with a plain reason.",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "text": {
                    "type": "string"
                  },
                  "href": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "text"
                ],
                "additionalProperties": false
              }
            },
            "happening": {
              "description": "What’s on today, each at its time.",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "at": {
                    "type": "number",
                    "description": "Epoch milliseconds."
                  },
                  "text": {
                    "type": "string"
                  },
                  "href": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "at",
                  "text"
                ],
                "additionalProperties": false
              }
            },
            "metrics": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "value": {
                    "type": "number"
                  },
                  "prior": {
                    "type": "number"
                  },
                  "unit": {
                    "type": "string",
                    "enum": [
                      "count",
                      "money"
                    ]
                  },
                  "href": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "label",
                  "value"
                ],
                "additionalProperties": false
              }
            }
          },
          "required": [
            "title",
            "facts"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.today

See what’s owed and what’s to send

Kind
Read
Tool
sales_today
Scope
commerce:read
Reached by
API, MCP

Read-only.

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Output
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {
          "type": "object",
          "properties": {
            "owed": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "chargeId": {
                        "type": "string",
                        "pattern": "^chg_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A charge id: chg_ and 26 letters and digits."
                      },
                      "customerId": {
                        "type": "string",
                        "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A customer id: cus_ and 26 letters and digits."
                      },
                      "customer": {
                        "type": "string"
                      },
                      "what": {
                        "type": "string"
                      },
                      "amount": {
                        "type": "string",
                        "description": "What’s owed, with tax: \"$40.00\"."
                      }
                    },
                    "required": [
                      "chargeId",
                      "customerId",
                      "customer",
                      "what",
                      "amount"
                    ],
                    "additionalProperties": false
                  }
                },
                "total": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "totalMinor": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "currency": {
                  "type": "string"
                }
              },
              "required": [
                "items",
                "total",
                "totalMinor",
                "currency"
              ],
              "additionalProperties": false
            },
            "disputes": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "renewals": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "agreementId": {
                        "type": "string",
                        "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A agreement id: agr_ and 26 letters and digits."
                      },
                      "customerId": {
                        "type": "string",
                        "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A customer id: cus_ and 26 letters and digits."
                      },
                      "customer": {
                        "type": "string"
                      },
                      "what": {
                        "type": "string"
                      },
                      "on": {
                        "type": "string",
                        "description": "When it renews: \"today\", \"Thursday\"."
                      }
                    },
                    "required": [
                      "agreementId",
                      "customerId",
                      "customer",
                      "what",
                      "on"
                    ],
                    "additionalProperties": false
                  }
                },
                "total": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "items",
                "total"
              ],
              "additionalProperties": false
            },
            "toSend": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "orderId": {
                        "type": "string",
                        "pattern": "^ord_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A order id: ord_ and 26 letters and digits."
                      },
                      "customerId": {
                        "type": "string",
                        "pattern": "^cus_[0-9a-hjkmnp-tv-z]{26}$",
                        "description": "A customer id: cus_ and 26 letters and digits."
                      },
                      "customer": {
                        "type": "string"
                      },
                      "what": {
                        "type": "string"
                      },
                      "how": {
                        "type": "string",
                        "description": "\"pickup Friday\", or where it stands."
                      }
                    },
                    "required": [
                      "orderId",
                      "customerId",
                      "customer",
                      "what",
                      "how"
                    ],
                    "additionalProperties": false
                  }
                },
                "total": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "items",
                "total"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "owed",
            "disputes",
            "renewals",
            "toSend"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "result"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "refused"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "const": "needs"
        },
        "kind": {
          "type": "string",
          "enum": [
            "module",
            "portal",
            "business",
            "limit",
            "paused",
            "reauth"
          ]
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      },
      "required": [
        "status",
        "kind",
        "title",
        "change",
        "message"
      ],
      "additionalProperties": {}
    }
  ]
}

commerce.unfreezeAgreement

End a billing freeze

Kind
Change
Tool
sales_unfreezeAgreement
Scope
commerce:write
Reached by
API, MCP

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A agreement id: agr_ and 26 letters and digits."
    }
  },
  "required": [
    "agreementId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.updateAudience

Change an audience

Kind
Change
Tool
sales_updateAudience
Scope
commerce:write
Reached by
API, MCP

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "audienceId": {
      "type": "string",
      "pattern": "^aud_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A audience id: aud_ and 26 letters and digits."
    },
    "key": {
      "type": "string",
      "pattern": "^[a-z0-9_-]{1,40}$"
    },
    "value": {
      "type": "string",
      "pattern": "^[a-z0-9_-]{1,40}$"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "rule": {
      "description": "Who matches a rule audience: tags, custom fields, grants, visits and the channel they came through ({ channel: { is: \"instagram\" } }). Visits: { visited: { offeringId?, kind?, since?: { days } }, gte? } counts sessions they came to; { daysSinceVisit: {}, gte: 30 } is everyone away 30 days or more (pair it with { visited: {} } for people who came before).",
      "$ref": "#/$defs/__schema0"
    },
    "sharePercent": {
      "description": "An experiment’s share of buyers, in percent.",
      "type": "number",
      "minimum": 0.01,
      "maximum": 99.99
    },
    "binding": {
      "description": "each_charge: checked again at every charge (a lapsed member loses it). at_purchase: kept from the purchase.",
      "type": "string",
      "enum": [
        "each_charge",
        "at_purchase"
      ]
    },
    "retention": {
      "type": "string",
      "enum": [
        "lifetime",
        "until_revoked",
        "until_date"
      ]
    },
    "retainUntil": {
      "anyOf": [
        {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
        },
        {
          "type": "null"
        }
      ]
    },
    "qualify": {
      "description": "How someone who isn’t a member qualifies: signed_link (a link you share), code, or open (anyone can claim it, so treat its prices as public).",
      "type": "string",
      "enum": [
        "signed_link",
        "code",
        "open"
      ]
    },
    "showAsTag": {
      "description": "Show its members as a customer tag in automations.",
      "type": "boolean"
    }
  },
  "required": [
    "audienceId"
  ],
  "additionalProperties": false,
  "$defs": {
    "__schema0": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "all": {
              "minItems": 1,
              "type": "array",
              "items": {
                "$ref": "#/$defs/__schema0"
              }
            }
          },
          "required": [
            "all"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "any": {
              "minItems": 1,
              "type": "array",
              "items": {
                "$ref": "#/$defs/__schema0"
              }
            }
          },
          "required": [
            "any"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "not": {
              "$ref": "#/$defs/__schema0"
            }
          },
          "required": [
            "not"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "count": {
              "type": "object",
              "properties": {
                "event": {
                  "type": "string",
                  "minLength": 1
                },
                "since": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "event": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "required": [
                        "event"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "days": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 3650
                        }
                      },
                      "required": [
                        "days"
                      ],
                      "additionalProperties": false
                    }
                  ]
                },
                "where": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {
                    "type": [
                      "string",
                      "number",
                      "boolean"
                    ]
                  }
                }
              },
              "required": [
                "event"
              ],
              "additionalProperties": false
            },
            "gte": {
              "type": "number"
            },
            "lte": {
              "type": "number"
            },
            "eq": {
              "type": "number"
            }
          },
          "required": [
            "count"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "sum": {
              "type": "object",
              "properties": {
                "event": {
                  "type": "string",
                  "minLength": 1
                },
                "since": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "event": {
                          "type": "string",
                          "minLength": 1
                        }
                      },
                      "required": [
                        "event"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "days": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 3650
                        }
                      },
                      "required": [
                        "days"
                      ],
                      "additionalProperties": false
                    }
                  ]
                },
                "where": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {
                    "type": [
                      "string",
                      "number",
                      "boolean"
                    ]
                  }
                },
                "field": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "event",
                "field"
              ],
              "additionalProperties": false
            },
            "gte": {
              "type": "number"
            },
            "lte": {
              "type": "number"
            },
            "eq": {
              "type": "number"
            }
          },
          "required": [
            "sum"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "daysSince": {
              "type": "object",
              "properties": {
                "event": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "event"
              ],
              "additionalProperties": false
            },
            "gte": {
              "type": "number"
            },
            "lte": {
              "type": "number"
            },
            "eq": {
              "type": "number"
            }
          },
          "required": [
            "daysSince"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "visited": {
              "type": "object",
              "properties": {
                "offeringId": {
                  "description": "One offering’s visits only.",
                  "type": "string",
                  "pattern": "^off_[0-9a-hjkmnp-tv-z]{26}$"
                },
                "kind": {
                  "description": "One kind of offering only: class, appointment, workshop.",
                  "type": "string",
                  "pattern": "^[a-z_]{1,40}$"
                },
                "since": {
                  "type": "object",
                  "properties": {
                    "days": {
                      "type": "integer",
                      "minimum": 1,
                      "maximum": 3650
                    }
                  },
                  "required": [
                    "days"
                  ],
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            },
            "gte": {
              "type": "number"
            },
            "lte": {
              "type": "number"
            },
            "eq": {
              "type": "number"
            }
          },
          "required": [
            "visited"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "daysSinceVisit": {
              "type": "object",
              "properties": {
                "offeringId": {
                  "description": "One offering’s visits only.",
                  "type": "string",
                  "pattern": "^off_[0-9a-hjkmnp-tv-z]{26}$"
                },
                "kind": {
                  "description": "One kind of offering only: class, appointment, workshop.",
                  "type": "string",
                  "pattern": "^[a-z_]{1,40}$"
                }
              },
              "additionalProperties": false
            },
            "gte": {
              "type": "number"
            },
            "lte": {
              "type": "number"
            },
            "eq": {
              "type": "number"
            }
          },
          "required": [
            "daysSinceVisit"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "hasGrant": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string"
                },
                "productId": {
                  "type": "string"
                },
                "benefit": {
                  "description": "A membership or pack by its benefit name: membership:gold.",
                  "type": "string",
                  "pattern": "^(membership|pack|pass):[a-z0-9][a-z0-9_-]{0,62}$"
                }
              },
              "additionalProperties": false
            }
          },
          "required": [
            "hasGrant"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "balance": {
              "type": "object",
              "properties": {
                "unit": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "unit"
              ],
              "additionalProperties": false
            },
            "gte": {
              "type": "number"
            },
            "lte": {
              "type": "number"
            },
            "eq": {
              "type": "number"
            }
          },
          "required": [
            "balance"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "tag": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                }
              },
              "required": [
                "name"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "tag"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "channel": {
              "type": "object",
              "properties": {
                "is": {
                  "type": "string",
                  "pattern": "^[a-z0-9_-]{1,40}$"
                }
              },
              "required": [
                "is"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "channel"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "field": {
              "type": "object",
              "properties": {
                "record": {
                  "type": "string",
                  "const": "customer"
                },
                "key": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                }
              },
              "required": [
                "record",
                "key"
              ],
              "additionalProperties": false
            },
            "is": {
              "type": [
                "string",
                "number",
                "boolean"
              ]
            },
            "gte": {
              "type": "number"
            },
            "lte": {
              "type": "number"
            },
            "exists": {
              "type": "boolean"
            }
          },
          "required": [
            "field"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "state": {
              "type": "object",
              "properties": {
                "key": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "required": [
                "key"
              ],
              "additionalProperties": false
            },
            "is": {
              "type": [
                "string",
                "number",
                "boolean"
              ]
            },
            "gte": {
              "type": "number"
            },
            "lte": {
              "type": "number"
            },
            "exists": {
              "type": "boolean"
            }
          },
          "required": [
            "state"
          ],
          "additionalProperties": false
        }
      ]
    }
  }
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.updateProduct

Change a product

Kind
Change
Tool
sales_updateProduct
Scope
commerce:write
Reached by
API, MCP, ChatGPT

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "productId": {
      "type": "string",
      "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A product id: prd_ and 26 letters and digits."
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120
    },
    "description": {
      "type": "string",
      "maxLength": 2000
    },
    "fulfillment": {
      "description": "How the customer gets it. Services: at_appointment or on_site; physical: pickup, ship or local_delivery; digital: digital; passes: on_site or digital; bundles: any, except a bundle of only passes, packs and services: on_site, at_appointment or digital. Left out, it’s the first of those.",
      "type": "string",
      "enum": [
        "at_appointment",
        "pickup",
        "ship",
        "local_delivery",
        "digital",
        "on_site"
      ]
    },
    "durationMinutes": {
      "description": "How long a service takes. Services need it.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 5,
          "maximum": 1440,
          "multipleOf": 5
        },
        {
          "type": "null"
        }
      ]
    },
    "inventoryCount": {
      "description": "How many are left to sell; null when you don’t count. Physical, digital and passes only. With options, each new combination starts with it.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000
        },
        {
          "type": "null"
        }
      ]
    },
    "locationId": {
      "description": "Where it’s sold or done, when the business has more than one place.",
      "anyOf": [
        {
          "type": "string",
          "pattern": "^loc_[0-9a-hjkmnp-tv-z]{26}$",
          "description": "A location id: loc_ and 26 letters and digits."
        },
        {
          "type": "null"
        }
      ]
    },
    "priceMinor": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000,
      "description": "Its price in cents."
    },
    "deposit": {
      "description": "Take part of the price online when they book or order (a percent or an amount in cents); the rest is due at the appointment, pickup or delivery. Null takes the whole price.",
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "percent": {
              "type": "integer",
              "minimum": 1,
              "maximum": 99
            },
            "amountMinor": {
              "type": "integer",
              "minimum": 0,
              "maximum": 1000000
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "payWhatYouWant": {
      "description": "Let the customer pick what they pay, in cents: at least minMinor, with an optional suggestedMinor shown first and maxMinor cap. priceMinor is then only a fallback. Null goes back to the one price.",
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "minMinor": {
              "type": "integer",
              "minimum": 0,
              "maximum": 1000000,
              "description": "The least they can pay, in cents; 0 for free."
            },
            "suggestedMinor": {
              "description": "The amount shown first, in cents.",
              "type": "integer",
              "minimum": 0,
              "maximum": 1000000
            },
            "maxMinor": {
              "description": "The most they can pay, in cents.",
              "type": "integer",
              "minimum": 0,
              "maximum": 1000000
            }
          },
          "required": [
            "minMinor"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "taxCode": {
      "description": "A Stripe tax code. Left out, it’s the usual one for the kind of product (physical goods, services or digital).",
      "anyOf": [
        {
          "type": "string",
          "pattern": "^txcd_\\d{8}$"
        },
        {
          "type": "null"
        }
      ]
    },
    "options": {
      "description": "Up to three options customers pick, like Size and Color, each with its values. Not on bundles.",
      "maxItems": 3,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          },
          "values": {
            "minItems": 1,
            "maxItems": 20,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 40
            }
          }
        },
        "required": [
          "name",
          "values"
        ],
        "additionalProperties": false
      }
    },
    "components": {
      "description": "What a bundle holds: your other products, each so many times. A bundle of packs sells as a package that gives each pack; a membership (a repeating price) can’t go in one.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "string",
            "pattern": "^prd_[0-9a-hjkmnp-tv-z]{26}$",
            "description": "A product id: prd_ and 26 letters and digits."
          },
          "variantId": {
            "type": "string",
            "pattern": "^var_[0-9a-hjkmnp-tv-z]{26}$",
            "description": "A variant id: var_ and 26 letters and digits."
          },
          "quantity": {
            "default": 1,
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          }
        },
        "required": [
          "productId"
        ],
        "additionalProperties": false
      }
    },
    "credits": {
      "description": "A pass only: how many uses it holds, like a 10-class pack. Each class booked takes one. A dollar pack (grants.savePack with counts: cents) holds its amount in cents, up to $10,000.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 1000000
        },
        {
          "type": "null"
        }
      ]
    },
    "validDays": {
      "description": "A pass with uses: days it’s good for from purchase. Null never runs out.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 3650
        },
        {
          "type": "null"
        }
      ]
    },
    "repeats": {
      "description": "Charge it again every interval until the customer cancels, like a monthly membership. Null is paid once.",
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "interval": {
              "type": "string",
              "enum": [
                "week",
                "month",
                "year"
              ]
            },
            "count": {
              "default": 1,
              "type": "integer",
              "minimum": 1,
              "maximum": 12
            },
            "trialDays": {
              "default": 0,
              "type": "integer",
              "minimum": 0,
              "maximum": 90
            }
          },
          "required": [
            "interval"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "policies": {
      "description": "Its own policies, ahead of the business’s (a retreat’s 60-day cancellation): the policyId of a named policy (policy.accept with a name) for each kind it differs in. Sales read that policy’s newest version. Null goes back to the business’s own.",
      "type": "object",
      "properties": {
        "cancellation": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^pol_[0-9a-hjkmnp-tv-z]{26}$",
              "description": "A policy id: pol_ and 26 letters and digits."
            },
            {
              "type": "null"
            }
          ]
        },
        "deposit": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^pol_[0-9a-hjkmnp-tv-z]{26}$",
              "description": "A policy id: pol_ and 26 letters and digits."
            },
            {
              "type": "null"
            }
          ]
        },
        "noShow": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^pol_[0-9a-hjkmnp-tv-z]{26}$",
              "description": "A policy id: pol_ and 26 letters and digits."
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "custom": {
      "type": "object",
      "propertyNames": {
        "type": "string",
        "maxLength": 40
      },
      "additionalProperties": {
        "anyOf": [
          {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              }
            ]
          },
          {
            "type": "null"
          }
        ]
      },
      "description": "The business’s own fields on products, by key; null clears one."
    },
    "images": {
      "description": "Photos from your files, by file id (files.list with kind `web`); the first is the main one. Replaces its photos.",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^fil_[0-9a-hjkmnp-tv-z]{26}$",
        "description": "A file id: fil_ and 26 letters and digits."
      }
    },
    "downloads": {
      "description": "A digital product’s files, by file id (files.list with visibility `private`), in order. Buyers download them once it’s paid. Replaces its files.",
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^fil_[0-9a-hjkmnp-tv-z]{26}$",
        "description": "A file id: fil_ and 26 letters and digits."
      }
    },
    "downloadLimit": {
      "description": "A digital product’s downloads of each file per purchase. Null for no limit.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        {
          "type": "null"
        }
      ]
    },
    "pickupPerDay": {
      "description": "Something picked up: how many can be picked up each day, like 40 cakes. Customers choose a day with room at checkout. Null for no limit.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 10000
        },
        {
          "type": "null"
        }
      ]
    },
    "weightOz": {
      "description": "Something shipped: one of it boxed, in ounces (32 for 2 lb). Shipping rates are worked out from it. Null uses your default weight per item.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1,
          "maximum": 2400
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "productId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}

commerce.withdrawOffer

Withdraw an offer

Kind
Change
Tool
sales_withdrawOffer
Scope
commerce:write
Reached by
API, MCP, ChatGPT

customers see it: waits for the owner’s approval unless they chose Just do it for your app

Input
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "agreementId": {
      "type": "string",
      "pattern": "^agr_[0-9a-hjkmnp-tv-z]{26}$",
      "description": "A agreement id: agr_ and 26 letters and digits."
    }
  },
  "required": [
    "agreementId"
  ],
  "additionalProperties": false
}
Output
{
  "oneOf": [
    {
      "type": "object",
      "required": [
        "status",
        "title",
        "change"
      ],
      "properties": {
        "status": {
          "const": "done"
        },
        "title": {
          "type": "string"
        },
        "change": {
          "type": "boolean"
        },
        "result": {},
        "undo": {
          "type": "object",
          "properties": {
            "command": {
              "type": "string"
            },
            "input": {}
          }
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "proposalId"
      ],
      "properties": {
        "status": {
          "const": "proposed"
        },
        "proposalId": {
          "type": "string"
        },
        "preview": {},
        "approveAt": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "check"
      ],
      "properties": {
        "status": {
          "const": "pending"
        },
        "message": {
          "type": "string"
        },
        "check": {
          "type": "string"
        },
        "checkInput": {
          "type": "object"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "message"
      ],
      "properties": {
        "status": {
          "const": "refused"
        },
        "message": {
          "type": "string"
        },
        "field": {
          "type": "string"
        }
      }
    },
    {
      "type": "object",
      "required": [
        "status",
        "kind",
        "message"
      ],
      "properties": {
        "status": {
          "const": "needs"
        },
        "kind": {
          "type": "string"
        },
        "message": {
          "type": "string"
        },
        "note": {
          "type": "string"
        }
      }
    }
  ]
}