List subscriptions
Returns a paginated list of subscriptions as { meta: { count, totalPages, page, limit }, data: [...] }.
Defaults: page=1, limit=10, sort=-updatedAt (prefix with - for descending).
Filters: status (running, completed, incomplete, paused, inactive; comma-separated for several), customerId (customer vault id), planId, email, companyName, phone, customerName, plan (plan name), reference.
inactive (deleted) subscriptions are hidden unless status is sent explicitly. Response money fields are integer cents. The amount filter takes dollars (converted to cents). List entries omit schedule and payment counters; use GET /public/subscription/{id}.
query Parameters
pagePage number for paginating
limitLimit items per page
amountExact amount in dollars, e.g. 10.5
emailPartial match on the customer email
planIdPlan id
customerIdCustomer vault id (the customer id)
statusFilter by status; comma-separated for several. Without it, inactive subscriptions are hidden.
sortSort field, - prefix for descending. Default -updatedAt.
Headers
key-hashSecurity key hash issued to your integration (merchant dashboard: Administration → Security Keys).
List subscriptions › Responses
Paginated subscriptions.
Create subscription
Create a new subscription linked to a plan (or inline custom schedule) and a customer vault. All money values are integer amounts in cents (1000 = $10.00).
Customer: exactly one of customerId / customerVaultId is required. They are aliases for the customer vault id; when both are sent customerId wins. The customer must have an email and a default payment method (card or ACH), which is the one charged.
Schedule: send planId or customSchedule. When both are sent planId takes precedence. customSchedule rules: amount (cents) required; payments 0–52 (0 = until terminated); exactly one frequency mode — dayFrequency (> 0) alone, or monthFrequency (1–24) together with dayOfMonth (1–31).
startDate — optional. Omitted = tomorrow (start of day). A supplied date must be in the future.
autoRenew — renew after the last payment cycle (optional in practice; defaults to falsy).
notificationMail — send receipt notifications; defaults to true.
taxes — merchant tax ids; the tax total is added to the amount.
attachments — objects returned by POST /public/subscription/upload-attachments.
Surcharge is computed server-side from the payment method (0 for ACH). overrideDefaultPaymentMethod (payment method id) charges a non-default stored method.
Headers
key-hashSecurity key hash issued to your integration (merchant dashboard: Administration → Security Keys).
Create subscription › Request Body
planIdPlan id. Required unless customSchedule is sent; takes precedence over customSchedule when both are sent
startDateStart date (ISO 8601). Must be in the future; omitted = tomorrow (start of day)
customerVaultIdCustomer vault id (the customer id). Alias of customerId; at least one of the two is required (customerId takes precedence when both are sent)
customerIdCustomer vault id (the customer id). Alias of customerVaultId; at least one of the two is required and takes precedence over customerVaultId when both are sent
overrideDefaultPaymentMethodStored payment method id (paymentMethods[].customerVaultId) to charge instead of the default
firstAmountAmount of the first payment when it differs from the plan amount. Integer amount in cents (1000 = $10.00)
surchargeFirstAmountSurcharge applied to the first payment. Integer amount in cents (1000 = $10.00)
cardFeeFirstAmountCard fee applied to the first payment. Integer amount in cents (1000 = $10.00)
autoRenewRenew after the last payment cycle. Optional in practice: omitted/false = no renewal
notificationMailSend receipt notifications by email
Objects returned by POST /public/subscription/upload-attachments
taxesMerchant tax ids to apply; the tax total is added to the amount
Create subscription › Responses
Subscription created.
Delete a subscription
Cancel a subscription by setting status: inactive; deletedAt is not set and the record remains retrievable by id. Subscriptions in completed or incomplete status cannot be deleted. Inactive subscriptions are hidden from the list unless status=inactive is sent. Future schedule entries are removed on cancellation (only past entries are kept).
path Parameters
idSubscription ID
Headers
key-hashSecurity key hash issued to your integration (merchant dashboard: Administration → Security Keys).
Delete a subscription › Responses
Subscription cancelled (status: inactive).
Update subscription
Update an existing subscription.
Updatable fields: amount (cents), autoRenew, notificationMail, customerVaultId, attachments, customSchedule, startDate.
To change the customer vault (and thus the payment method), provide a new customerVaultId.
attachments: Upload files first via /upload-attachments, then pass the file path objects here.
customSchedule: Only for subscriptions created with a custom schedule (not plan-based ones). Replaces the schedule; if amount is also sent it must match customSchedule.amount. Rejected when the subscription has future payments already paid.
startDate: Re-anchors the rebuilt schedule; must be a future date and can only be sent together with customSchedule.
path Parameters
idSubscription ID
Headers
key-hashSecurity key hash issued to your integration (merchant dashboard: Administration → Security Keys).
Update subscription › Request Body
customerVaultIdCustomer vault id (the customer id) to move the subscription to. Alias of customerId; takes precedence over customerId when both are sent
customerIdCustomer vault id (the customer id) to move the subscription to. Alias of customerVaultId (customerVaultId takes precedence when both are sent)
autoRenewRenew after the last payment cycle
notificationMailSend receipt notifications by email
Objects returned by POST /public/subscription/upload-attachments
amountInteger amount in cents (1000 = $10.00). Only updatable when the subscription has a custom plan
startDateStart Date (only allowed together with customSchedule; must be a future date)
Update subscription › Responses
Subscription updated.
Pause subscription
Pause a running subscription (other statuses are rejected). Future schedule entries are removed and no charges are processed while paused; nextPayment becomes null. Use resume to re-activate. Rejected when inactive, already paused, or when future entries are already paid. A pause email is always sent to the customer (ignores notificationMail).
path Parameters
subscriptionIdSubscription ID
Headers
key-hashSecurity key hash issued to your integration (merchant dashboard: Administration → Security Keys).
Pause subscription › Responses
Subscription paused.
Resume subscription
Resume a paused subscription. The remaining schedule is regenerated from the resume date according to the plan settings; payments that would have fallen inside the pause are skipped, not caught up. Charges continue as scheduled once resumed. A resume email is always sent (ignores notificationMail).
path Parameters
subscriptionIdSubscription ID
Headers
key-hashSecurity key hash issued to your integration (merchant dashboard: Administration → Security Keys).
Resume subscription › Responses
Subscription resumed.
Retry failed schedule payment
Manually charge any unpaid schedule entry (failed or not yet attempted). Subscription status, entry date and attempt count are not checked. Provide the scheduleId from the subscription's schedule array.
State-changing GET: this request performs a charge against the customer default payment method and is not idempotent; do not retry blindly.
path Parameters
scheduleIdSchedule entry ID
Headers
key-hashSecurity key hash issued to your integration (merchant dashboard: Administration → Security Keys).
Retry failed schedule payment › Responses
Schedule payment retried. schedule is the single charged entry (not the array).
Upload subscription attachments
Upload attachment files to associate with a subscription (e.g. contracts, agreements). Use the returned file path objects in the attachments field when creating or updating a subscription.
File limits: configured per deployment; defaults: up to 10 files per request, 25 MB per file, 25 MB total.
Supported formats: JPG, PNG, PDF. Uploaded files are publicly readable; fullPath is an unauthenticated URL. Attachments are returned by GET/list but omitted from webhook payloads.
Headers
key-hashSecurity key hash issued to your integration (merchant dashboard: Administration → Security Keys).
Upload subscription attachments › Request Body
attachmentsMultipart field name attachments; one or more files
Upload subscription attachments › Responses
Files uploaded. { message, files: [{ path, fullPath, originalName, sizeInMB }] } — pass the files objects as attachments on create/update.
message
