Manage subscriptions with the API
Learn how to create, update, and delete your scheduled, subscription, and autopay transactions with the Payabli API
Subscriptions, also known as recurring transactions, autopays, or scheduled payments, are a powerful way to automate billing and payment collection. With Payabli’s API, you can manage these transactions, including creating, updating, and deleting subscriptions.
This guide covers the key operations for managing subscriptions through the API.
Considerations
When working with subscriptions, keep the following in mind:
- Payabli automatically tokenizes payment information and assigns stored payment methods to the provided customer.
- Subscriptions are always linked to a customer - if no
customerId
is provided and thecustomerData
fields don’t match an existing customer, a new customer is created. - Best practice is to create the customer first and pass the
customerId
in the customerData object. - When using a stored payment method, ensure the
storedId
in paymentMethod corresponds to the customer incustomerData
. - Subscription and autopay transactions typically run between 2:30 AM and 3:30 AM Eastern time.
- If a subscription payment is declined, you can update the subscription and retry the payment. See Subscription retry logic for more information. Payabli doesn’t retry failed autopays.
- If you pass an
invoiceData
object to a subscription, the payments in the subscription are automatically added to the invoice as they’re processed.
Pause a subscription or skip a payment
Pausing a subscription stops all future payments until the subscription is unpaused. Skipping payments allows the subscription to continue but skips the next scheduled payment.
To skip a payment, update the subscription’s totalAmount
to 0
. To resume payments, update totalAmount
to a non-zero amount. Note that if totalAmount
is set to 0
, then serviceFee
must also be set to 0
.
To pause a subscription, send a PUT request to /api/Subscription/\{subscriptionId\}
with the setPause
field set to true
. When you’re ready to resume the subscription, send another PUT request with setPause
set to false
.
Create a subscription
Send a POST request to /api/Subscription/add
to create a new subscription or scheduled payment. See the API reference for this endpoint for full documentation.
A successful request sends a response that includes the subscription ID (in responseData
) and customer ID.
Get subscription details
Send a GET request to /api/Subscription/{subscriptionId}
to retrieve details about a specific subscription.
This example gets the details for the subscription with ID 263
.
A successful request returns a response that includes all available details about a subscription. See the API reference for a full response example.
Update a subscription
Send a PUT request to /api/Subscription/{subscriptionId}
to change an existing subscription’s payment details, schedule, or pause status. See the API reference for this endpoint for full documentation.
A successful request returns a response that includes the subscription ID (in responseData
) and customer ID.
Delete a subscription
Send a DELETE request to /api/Subscription/{subscriptionId}
to cancel a subscription and stop future payments. See the API reference for this endpoint for full documentation.
This example deletes the subscription with the ID 396
.
A successful deletion returns a response that includes the subscription ID (in responseData
) and customer ID.
Next steps
Use the Subscription Utilities to manage your subscriptions. These utilities provide additional functionality, such as retrying failed payments and managing autopay transactions.