Subscriptions
A subscription starts when the customer pays for a subscription product. We then charge their phone bill every renewal period until they reply STOP, you cancel it, or renewals keep failing.
The subscription_uuid is included in the sms_payment_completed postback for the first payment, and in every subscription postback.
Renewals
- Every renewal is followed by a receipt text with the amount, when the next one is due and how to stop it.
- If a renewal fails, it shows as RENEWAL_FAILED and you receive
sms_subscription_renewal_failedonce. We retry daily for up to 60 days; if a retry goes through you receivesms_subscription_renewedand it is ACTIVE again. If the retries run out, the subscription ends (ENDED) and you receivesms_subscription_cancelled. - On Sky, a renewal that is partly taken has the rest retried daily for up to 30 days before it counts as failed.
Get a subscription
https://api.vendreo.com/v1/sms/subscriptions/{subscription_uuid}
curl --location --request GET 'https://api.vendreo.com/v1/sms/subscriptions/{SUBSCRIPTION_UUID}' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {AUTH_TOKEN}'
Cancel a subscription
Stops all future renewals and texts the customer to say it has been cancelled. Returns 409 if it has already ended.
https://api.vendreo.com/v1/sms/subscriptions/{subscription_uuid}/cancel
curl --location --request POST 'https://api.vendreo.com/v1/sms/subscriptions/{SUBSCRIPTION_UUID}/cancel' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {AUTH_TOKEN}'
Response
Both endpoints return the subscription. Only subscriptions taken through the Payment Profile you call with are found; others return 404.
{
"subscription_uuid": "4c1e0f7a-3b2d-4e8f-a6c9-0d1e2f3a4b5c",
"status": "ACTIVE",
"product": {
"product_uuid": "0b7a9e2c-6d4f-4a1b-8c3e-5f6a7b8c9d0e",
"name": "VIP chat"
},
"msisdn": "447700900123",
"network": "UK.O2",
"renewal_amount": 1000,
"renewal_period_days": 30,
"renewal_period_minutes": null,
"currency": "GBP",
"renewals": 2,
"last_charged_at": "2026-11-01T09:00:12+00:00",
"next_charge_at": "2026-12-01T09:00:12+00:00",
"cancel_reason": null,
"cancelled_at": null,
"created_at": "2026-09-02T09:00:05+00:00",
"meta": {
"tracing_id": "8f3b6c1e-5d2a-4f7b-9c0e-1a2b3c4d5e6f"
}
}
| status | ACTIVE, RENEWAL_FAILED (the last renewal failed and is being retried), CANCELLED or ENDED (renewals kept failing). |
| renewal_amount | In pence. |
| renewal_period_minutes | Set only on test products that renew every few minutes; it replaces renewal_period_days. |
| renewals | How many renewals have been charged, not counting the first payment. |
| cancel_reason | stopped_by_customer, cancelled_by_merchant or renewal_failed. |