curl --request POST \
--url https://{domain}/wp-json/sagescreen/v1/deal/payment \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"deal_uuid": "3d55ae7a-af8b-46c1-ae1c-09afa207ac7f",
"paid": true,
"external_invoice_id": "INV-00589",
"payment_date": "2026-02-19 14:30:00"
}
'{
"success": true,
"data": {
"deal_id": 1042,
"status": "ss_closed",
"council_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"user_id": 42
}
}Deal REST
Deal payment callback (Zapier)
Called by Zapier when payment is confirmed on an invoiced deal.
When paid is true the deal transitions through ss_paid to ss_closed,
provisions a council (new or existing), creates the admin user, and fires
the deal_paid webhook.
When paid is false, no action is taken and the response reflects the
current ss_invoiced status.
Requires the X-API-Key header.
POST
/
deal
/
payment
curl --request POST \
--url https://{domain}/wp-json/sagescreen/v1/deal/payment \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"deal_uuid": "3d55ae7a-af8b-46c1-ae1c-09afa207ac7f",
"paid": true,
"external_invoice_id": "INV-00589",
"payment_date": "2026-02-19 14:30:00"
}
'{
"success": true,
"data": {
"deal_id": 1042,
"status": "ss_closed",
"council_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"user_id": 42
}
}Authorizations
SageScreen API key stored in ss_zapier_api_key option
Body
application/json
Example:
"3d55ae7a-af8b-46c1-ae1c-09afa207ac7f"
true to confirm payment, false for no-op
Example:
true
Stripe invoice reference
Example:
"INV-00589"
Payment date (MySQL datetime). Defaults to current time if omitted.
Example:
"2026-02-19 14:30:00"