Skip to content

Subscription Events

Introduction

Whenever an update occurs in a subscription, you will receive a notification. Subscription events are related to charge attempts, status changes, or changes in the subscription payment method.

Subscription Events

Charge attempt

When a subscription begins its billing period, we will attempt to bill your customer. If the charge is successful, you will receive a notification event "Subscription charged successfully". Otherwise, the notification event will be "Subscription charged unsuccessfully". In this notification, we only send order and subscription data related to the current billing.

Subscription charged successfully

Postback notification when a subscription is successfully charged:

POST /v1/postback
Host: your_payback_notification_url.com
Content-Type: application/json

{
  "latam_id": "7c0b8129-f556-4357-bb6e-8189c2943024",
  "code": "88",
  "status": "paid",
  "name": "Customer's Name",
  "email": "[email protected]"
  "original_amount": "20,00"
  "fee": "2,0"
  "tax": "1,3",
  "additional_value": "0",
  "value": "21,70",
  "reason": "",
  "payer_info": [],
  "subscription":{
    "event": "Subscription charged successfully",
    "id": "bgwt7v",
    "status": "active"
    "plan_id": "bvt6",
    "never_expires": true
    "current_billing_cycle": 1,
    "number_of_billing_cycles": null,
    "next_billing_date": "2024-01-13",
    "paid_through_date": "2024-01-12", 
    "updated_at": "2023-12-13",
    "failure_count": 0,
    "transaction":{
      "id": "6hjfw847", 
      "status": "paid", 
      "created_at": "2023-12-13", 
      "updated_at": "2023-12-13", 
      "amount": 10.0, 
      "card_last_digits": "0620", 
      "card_brand": "Visa"
    }
  }
}

Subscription charged unsuccessfully

Postback notification when a subscription is unsuccessfully charged:

POST /v1/postback
Host: your_payback_notification_url.com
Content-Type: application/json

{
  "latam_id": "7c0b8129-f556-4357-bb6e-8189c2943024",
  "code": "88",
  "status": "paid",
  "name": "Customer's Name",
  "email": "[email protected]"
  "original_amount": "20,00"
  "fee": "2,0"
  "tax": "1,3",
  "additional_value": "0",
  "value": "21,70",
  "reason": "",
  "payer_info": [],
  "subscription":{
    "event": "Subscription charged unsuccessfully",
    "id": "bgwt7v",
    "status": "overdue"
    "plan_id": "bvt6",
    "never_expires": true
    "current_billing_cycle": 1,
    "number_of_billing_cycles": null,
    "next_billing_date": "2024-01-13",
    "paid_through_date": "2024-01-12", 
    "updated_at": "2023-12-13",
    "failure_count": 1,
    "transaction":{
      "id": "6hjfw847", 
      "status": "fail", 
      "created_at": "2023-12-13", 
      "updated_at": "2023-12-13", 
      "amount": 10.0, 
      "card_last_digits": "0620", 
      "card_brand": "Visa"
    }
  }
}

Params descriptions

Param Description
latam_id Order ID in the Sulpayments system
code The ID from your system
status The current status of the order
name Customer's name
email Customer's email
original_amount Value without taxes/fees
fee Sulpayment's fee in the order
tax Sulpayment's tax in the order
additional_value Equal to Tax but is paid by the customer
value Value adding fee and tax or additional_value
reason If we need to add a message about the status, by default is null
payer_info is a hashed object containing the payer’s information
subscription subscription associated with the order

Subscription params descriptions

Param Description
event Subscription event
id Subscription ID
status The current status of the subscription
plan_id ID of the plan associated with the subscription
never_expires Indicates whether the subscription will expire or not
current_billing_cycle Billing cicle in months
number_of_billing_cycles Number of billing cycles if not never expires
next_billing_date Next billing date
paid_through_date Date until which the subscription is still considered paid
updated_at Date of last subscription update
failure_count Count of failed charge attempts
transaction Transaction of subscription

Transaction params descriptions

Param Description
id Transaction ID
status The current status of the transaction
created_at Transaction created date
updated_at Date of last transaction update
amount Transaction amount
card_last_digits Last digits of the credit card associated with the transaction
card_brand Brand of the credit card associated with the transaction

Status change

Every time a subscription has its status change, you will receive a notification. In this notification we send all subscription data.

Change status to Active

A subscription goes to activated status when its first billing cycle payment is successful or when a subscription was overdue and was successfully charged.

POST /
Host: your_payback_notification_url.com

{
  "event": "subscription activated"
  "id": "bgwt7v", 
  "balance": 0.0, 
  "created_at": "2023-12-13", 
  "never_expires": true, 
  "plan_id": "bvt6", 
  "price": 10.0, 
  "status": "active", 
  "billing_day_of_month": 13, 
  "billing_period_end_date": "2024-01-12", 
  "billing_period_start_date": "2023-12-13", 
  "days_past_due": null, 
  "description": null, 
  "failure_count": 0, 
  "first_billing_date": "2023-12-13", 
  "next_billing_date": "2024-01-13", 
  "number_of_billing_cycles": null, 
  "paid_through_date": "2024-01-12", 
  "updated_at": "2023-12-13",
  "card_last_digits": "0620", 
  "card_brand": "Visa"
  "transactions": [
    {
      "id": "6hjfw847", 
      "status": "paid", 
      "created_at": "2023-12-13", 
      "updated_at": "2023-12-13", 
      "amount": 10.0, 
      "order_id": 121364879, 
      "card_last_digits": "0620", 
      "card_brand": "Visa",
      "billing_cycle": 1
    },
    {
      "id": "124sf47", 
      "status": "paid", 
      "created_at": "2023-12-13", 
      "updated_at": "2023-12-13", 
      "amount": 10.0, 
      "order_id": 121364879, 
      "card_last_digits": "0620", 
      "card_brand": "Visa",
      "billing_cycle": 2
    }
  ]
}

Change status to Overdue

A subscription goes to overdue status when it fails the first billing attempt.

POST /
Host: your_payback_notification_url.com

{
  "event": "subscription overdue"
  "id": "bgwt7v", 
  "balance": 0.0, 
  "created_at": "2023-12-13", 
  "never_expires": true, 
  "plan_id": "bvt6", 
  "price": 10.0, 
  "status": "overdue", 
  "billing_day_of_month": 13, 
  "billing_period_end_date": "2024-01-12", 
  "billing_period_start_date": "2023-12-13", 
  "days_past_due": null, 
  "description": null, 
  "failure_count": 1, 
  "first_billing_date": "2023-12-13", 
  "next_billing_date": "2024-01-13", 
  "number_of_billing_cycles": null, 
  "paid_through_date": "2024-01-12", 
  "updated_at": "2023-12-13",
  "card_last_digits": "0620", 
  "card_brand": "Visa"
  "transactions": [
    {
      "id": "6hjfw847", 
      "status": "paid", 
      "created_at": "2023-12-13", 
      "updated_at": "2023-12-13", 
      "amount": 10.0, 
      "order_id": 121364879, 
      "card_last_digits": "0620", 
      "card_brand": "Visa",
      "billing_cycle": 1
    },
    {
      "id": "124sf47", 
      "status": "fail", 
      "created_at": "2023-12-13", 
      "updated_at": "2023-12-13", 
      "amount": 10.0, 
      "order_id": 121364879, 
      "card_last_digits": "0620", 
      "card_brand": "Visa",
      "billing_cycle": 2
    }
  ]
}

Change status to Cancelled

A subscription goes to canceled status after all billing attempts have failed.

POST /
Host: your_payback_notification_url.com

{
  "event": "subscription cancelled"
  "id": "bgwt7v", 
  "balance": 0.0, 
  "created_at": "2023-12-13", 
  "never_expires": true, 
  "plan_id": "bvt6", 
  "price": 10.0, 
  "status": "cancelled", 
  "billing_day_of_month": 13, 
  "billing_period_end_date": "2024-01-12", 
  "billing_period_start_date": "2023-12-13", 
  "days_past_due": null, 
  "description": null, 
  "failure_count": 3, 
  "first_billing_date": "2023-12-13", 
  "next_billing_date": "2024-01-13", 
  "number_of_billing_cycles": null, 
  "paid_through_date": "2024-01-12", 
  "updated_at": "2023-12-13",
  "card_last_digits": "0620", 
  "card_brand": "Visa"
  "transactions": [
    {
      "id": "6hjfw847", 
      "status": "paid", 
      "created_at": "2023-12-13", 
      "updated_at": "2023-12-13", 
      "amount": 10.0, 
      "order_id": 121364879, 
      "card_last_digits": "0620", 
      "card_brand": "Visa",
      "billing_cycle": 1
    },
    {
      "id": "124sf47", 
      "status": "fail", 
      "created_at": "2023-12-13", 
      "updated_at": "2023-12-13", 
      "amount": 10.0, 
      "order_id": 121364879, 
      "card_last_digits": "0620", 
      "card_brand": "Visa",
      "billing_cycle": 2
    }
  ]
}

Change status to Expired

A subscription goes to expired status when its last billing cycle is successfully completed.

POST /
Host: your_payback_notification_url.com

{
  "event": "subscription expired"
  "id": "bgwt7v", 
  "balance": 0.0, 
  "created_at": "2023-12-13", 
  "never_expires": false, 
  "plan_id": "bvt6", 
  "price": 10.0, 
  "status": "expired", 
  "billing_day_of_month": 13, 
  "billing_period_end_date": "2024-01-12", 
  "billing_period_start_date": "2023-12-13", 
  "days_past_due": null, 
  "description": null, 
  "failure_count": 3, 
  "first_billing_date": "2023-12-13", 
  "next_billing_date": "2024-01-13", 
  "number_of_billing_cycles": null, 
  "paid_through_date": "2024-01-12", 
  "updated_at": "2023-12-13",
  "card_last_digits": "0620", 
  "card_brand": "Visa"
  "transactions": [
    {
      "id": "6hjfw847", 
      "status": "paid", 
      "created_at": "2023-12-13", 
      "updated_at": "2023-12-13", 
      "amount": 10.0, 
      "order_id": 121364879, 
      "card_last_digits": "0620", 
      "card_brand": "Visa",
      "billing_cycle": 1
    },
    {
      "id": "124sf47", 
      "status": "paid", 
      "created_at": "2023-12-13", 
      "updated_at": "2023-12-13", 
      "amount": 10.0, 
      "order_id": 121364879, 
      "card_last_digits": "0620", 
      "card_brand": "Visa",
      "billing_cycle": 2
    }
  ]
}

Params descriptions

Param Description
event Subscription event
id Subscription ID
balance Subscription balance due
created_at Subscription created date
never_expires Indicates whether the subscription will expire or not
plan_id ID of the plan associated with the subscription
price Subscription price
status The current status of the subscription
billing_day_of_month Day of the month that the subscription is charged
billing_period_end_date End date of the current billing cycle
billing_period_start_date Start date for the current billing period
days_past_due Number of days that the subscription is overdue
description Subscription description
failure_count Count of failed charge attempts
first_billing_date The day the subscription starts billing
next_billing_date Day when the next billing cycle begins
number_of_billing_cycles Number of billing cycles if not never expires
paid_through_date Date until which the subscription is still considered paid
updated_at Date of last subscription update
card_last_digits Last digits of the credit card associated with the subscription
card_brand Brand of the credit card associated with the subscription
transactions Subscription transactions

Transactions Params

Param Description
id Transaction ID
status The current status of the transaction
created_at Transaction created date
updated_at Date of last transaction update
amount Transaction amount
order_id the order ID associated with the transaction
card_last_digits Last digits of the credit card associated with the transaction
card_brand Brand of the credit card associated with the subscription
billing_cycle Billing cycle number

Subscription Update

Every time the payment method associated with a subscription changes, you will receive a notification.

POST /
Host: your_payback_notification_url.com
Content-Type: application/json

{
  "event": "subscription updated"
  "id": "bgwt7v",  
  "created_at": "2023-12-13", 
  "never_expires": false, 
  "plan_id": "bvt6", 
  "price": 10.0, 
  "status": "expired", 
  "billing_day_of_month": 13, 
  "billing_period_end_date": "2024-01-12", 
  "billing_period_start_date": "2023-12-13", 
  "days_past_due": null, 
  "description": null, 
  "failure_count": 1, 
  "first_billing_date": "2023-12-13", 
  "next_billing_date": "2024-01-13", 
  "number_of_billing_cycles": 3, 
  "paid_through_date": "2024-01-12", 
  "updated_at": "2023-12-13",
  "card_last_digits": "1020", 
  "card_brand": "Mastercard"
  "transactions": [
    {
      "id": "6hjfw847", 
      "status": "paid", 
      "created_at": "2023-12-13", 
      "updated_at": "2023-12-13", 
      "amount": 10.0, 
      "order_id": 121364879, 
      "card_last_digits": "0620", 
      "card_brand": "Visa",
      "billing_cycle": 1
    },
    {
      "id": "124sf47", 
      "status": "paid", 
      "created_at": "2024-01-13", 
      "updated_at": "2024-01-13", 
      "amount": 10.0, 
      "order_id": 121364879, 
      "card_last_digits": "0620", 
      "card_brand": "Visa",
      "billing_cycle": 2
    },
    {
      "id": "5342hyg", 
      "status": "paid", 
      "created_at": "2024-01-13", 
      "updated_at": "2024-01-13", 
      "amount": 10.0, 
      "order_id": 121364879, 
      "card_last_digits": "0620", 
      "card_brand": "Visa",
      "billing_cycle": 3
    }
  ]
}

Params descriptions

Param Description
event Subscription event
id Subscription ID
balance Subscription balance due
created_at Subscription created date
never_expires Indicates whether the subscription will expire or not
plan_id ID of the plan associated with the subscription
price Subscription price
status The current status of the subscription
billing_day_of_month Day of the month that the subscription is charged
billing_period_end_date End date of the current billing cycle
billing_period_start_date Start date for the current billing period
days_past_due Number of days that the subscription is overdue
description Subscription description
failure_count Count of failed charge attempts
first_billing_date The day the subscription starts billing
next_billing_date Day when the next billing cycle begins
number_of_billing_cycles Number of billing cycles if not never expires
paid_through_date Date until which the subscription is still considered paid
updated_at Date of last subscription update
card_last_digits Last digits of the credit card associated with the subscription
card_brand Brand of the credit card associated with the subscription
transactions Subscription transactions

Transactions Params

Param Description
id Transaction ID
status The current status of the transaction
created_at Transaction created date
updated_at Date of last transaction update
amount Transaction amount
order_id the order ID associated with the transaction
card_last_digits Last digits of the credit card associated with the transaction
card_brand Brand of the credit card associated with the subscription
billing_cycle Billing cycle number

Order Status meanings

Status Meaning
paid Order was paid with success
expired Order was not paid at the available time
analysis Order needs to be checked by our support team
reversed Order value was paid back to customer
canceled Order was canceled by reasons like: Manual analysis, fraud, etc

Subscription Status meanings

Status Meaning
active Subscription is active and all payments are up to date
overdue Subscription payment is due. We will attempt to make charges for up to 1 week. After that, the subscription is cancelled
cancelled Subscription is cancelled. When you make a request or when all billing attempts fail
expired Subscription is expired. When the paid_through_date of the last billing cycle is exceeded

Transaction Status meanings

Status Meaning
awaiting payment Transaction still no payment attempt
paid Transaction paid successfully
failed Transaction failed payment attempt. When the last charge attempt made was unsuccessful
reversed Transaction is reversed. Only when you request

We expect that your system returns to ours: status code 200. If not, we’ll retry 5 more times.