API reference/Client billing
List card autopay
Try itCard autopay for your client sites: who is charged each month, how much, and whether it is on, waiting for the client's card, declined or stopped. Stopped ones are left out unless include_stopped=true.
GET
/api/v1/autopayAuthentication
An API key as Authorization: Bearer or x-api-key. It needs the invoices:read scope — read client invoices, monthly invoice settings and card autopay.
invoices:readRead onlyMCP tool: list_autopay
Parameters
Named placeholders go in the path; the rest in the query string.
site_idstringQuery · optional- The site's id.1 to 100 characters
statusstringQuery · optional- One of: pending, active, past_due, canceled
include_stoppedstringQuery · optional- One of: true, falseDefault
"false" limitintegerQuery · optional- How many to return (1–100).1 to 100Default
50 cursorstringQuery · optional- next_cursor from the previous page.1 to 100 characters
Response
200 with JSON on success (schema on the right). Errors use the standard envelope.
curl -X GET 'https://websites.workflowcorp.com/api/v1/autopay?include_stopped=false' \
-H "Authorization: Bearer $WEBSITEBUDDY_API_KEY"{
"include_stopped": "false"
}{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"site_id": {
"type": "string"
},
"site_name": {
"type": "string"
},
"client_id": {
"type": "string"
},
"client_name": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"pending",
"active",
"past_due",
"canceled"
],
"description": "pending = link made, no card yet · active = charged every month · past_due = the card was declined (Stripe retries) · canceled = stopped."
},
"amount_cents": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "What the card is charged each month (the retail price when the link was made)."
},
"currency": {
"type": "string"
},
"setup_link": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The client's set-up page, while pending — send it to them."
},
"first_charge_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"started_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"last_paid_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"canceled_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"is_sample": {
"type": "boolean"
},
"created_at": {
"type": "string"
}
},
"required": [
"id",
"site_id",
"site_name",
"client_id",
"client_name",
"status",
"amount_cents",
"currency",
"setup_link",
"first_charge_at",
"started_at",
"last_paid_at",
"canceled_at",
"is_sample",
"created_at"
],
"additionalProperties": false
}
},
"has_more": {
"type": "boolean"
},
"next_cursor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"card_payments": {
"type": "boolean",
"description": "The account can take cards — start_autopay needs it."
}
},
"required": [
"data",
"has_more",
"next_cursor",
"card_payments"
],
"additionalProperties": false
}