Skip to content

Subscriptions

A subscription is a recurring billing record tied to a contact, created when a contact signs up for a recurring product or plan through a connected payment provider. This part of the API is read-only: subscriptions are created and managed by the checkout and provider flows, not by direct API calls. Use these endpoints to list and look up the subscriptions already on your account.

Base URL: https://services.smbcrm.com · Version header: v3 · Scope: payments/subscriptions.readonly. See Scopes.

GET/payments/subscriptions

List the recurring subscriptions in your SMBcrm account.

scope payments/subscriptions.readonlyauth Location token or PIT

Identify your account with altId and altType (see the Aside below). Add contactId to scope results to one contact, or id to look up a specific subscription, and page through with limit / offset.

Terminal window
curl "https://services.smbcrm.com/payments/subscriptions?altId=<location_id>&altType=location&contactId=<contact_id>&limit=20&offset=0" \
-H "Authorization: Bearer <token>" \
-H "Version: v3"
200 OK
{
"data": [
{
"_id": "<subscription_id>",
"altId": "<location_id>",
"altType": "location",
"contactId": "<contact_id>",
"contactName": "Jane Doe",
"contactEmail": "jane@example.com",
"currency": "USD",
"amount": 49,
"liveMode": true,
"entitySourceType": "funnel",
"entitySourceName": "Membership Funnel",
"paymentProviderType": "stripe",
"createdAt": "2026-06-08T15:04:00.000Z",
"updatedAt": "2026-06-08T15:04:00.000Z"
}
],
"totalCount": 1
}

Each record also carries status, an object describing the subscription’s current state (its shape depends on the connected payment provider), plus internal fields such as entityId and subscriptionId.

Query param Type Required Description
altId string Yes Your <location_id>. See the Aside below.
altType string Yes Always location.
contactId string No Limit results to subscriptions belonging to one contact.
id string No Filter to a specific subscription by ID.
entityId string No Filter by the underlying billing entity ID.
entitySourceType string No Filter by the source that created the subscription, e.g. funnel, invoice.
paymentMode string No Filter by payment mode.
startAt string No Restrict results to subscriptions created on or after this date.
endAt string No Restrict results to subscriptions created on or before this date.
search string No Free-text search across subscription records.
limit number No Maximum number of subscriptions to return per page.
offset number No Number of subscriptions to skip, for pagination.
getPaymentsCollectedCount boolean No Include a count of payments collected for each subscription.
GET/payments/subscriptions/{subscriptionId}

Fetch a single subscription by ID.

scope payments/subscriptions.readonlyauth Location token or PIT

Pass the subscription’s _id (from List subscriptions) as subscriptionId in the path. altId and altType are required.

Terminal window
curl "https://services.smbcrm.com/payments/subscriptions/<subscription_id>?altId=<location_id>&altType=location" \
-H "Authorization: Bearer <token>" \
-H "Version: v3"
200 OK
{
"_id": "<subscription_id>",
"altId": "<location_id>",
"altType": "location",
"contactId": "<contact_id>",
"currency": "USD",
"amount": 49,
"liveMode": true,
"entitySource": {
"type": "funnel",
"id": "<funnel_id>",
"name": "Membership Funnel"
},
"schedule": {
"executeAt": "2026-08-08T15:04:00.000Z"
},
"createdAt": "2026-06-08T15:04:00.000Z",
"updatedAt": "2026-06-08T15:04:00.000Z"
}

entitySource.type reflects where the subscription originated: funnel, website, invoice, calendar, text2Pay, document_contracts, membership, or mobile_app. The full response also includes status (an object, shape dependent on the payment provider), canceledAt / canceledBy once a subscription is canceled, and a paymentProvider object.

Query param Type Required Description
altId string Yes Your <location_id>.
altType string Yes Always location.