How do Credit or Debit Card Payment Recurring Charges Work?

Discover a bit more about the recurring payment process

This functionality is available for the following models:

☐ Acquirer
☑ Aggregator

Credit cards have global coverage and are one of the most popular ways to pay online. There are different types of cards and several steps in the process. Learn how it works, the parties involved, and the stages of a subscription payment.

Payment process

A credit card payment for a subscription is made in 2 main steps: Credit or debit card registration and execution of the recurring charge.

Recurrent_payment

Credit or Debit Card Registration

1. Selecting a Payment Method

In your website or app, the user will select the payment method. Make sure that it is clear for the payer that their credit or debit card will be registered for paying a recurring value.

2. Providing Card Data

At this step, the user provides the data of the card that he/she will use to pay. Your website or app should be capable of verifying that the card information is correct (for example, that the expiration date is not outdated, or that the card number can be validated using Luhn’s algorithm). In this step, it cannot be yet warranted that the card is valid.

3. Submitting Data to Kushki

Kushki will receive these data and will verify whether there are enough funds in the account associated to the credit or debit card by using a charge for subscription validation. This small fee is charged by Kushki and is automatically reversed if successful. This fee ensures that your client’s credit card can be charged after registration.

4. Creating a Subscription Notification

At this step, we will inform you about the result of the card registration process, so that you can show it on screen to the user.

Recurring Payment

1. Payment Execution

Kushki processes recurring charges to the registered card automatically. Payments will be executed and repeated according to the amount and period indicated in the subscription.

The billing logic starts running every day from 6am GMT-5. Make sure that the subscription was created before this time if you want the first payment to be executed on the same day of registration. Alternatively, your customer can register his/her card some days in advance, before Kushki executes the first charge. When creating a subscription, you must indicate the start date startDate.

Retries

If a payment is rejected, Kushki has a retry logic to try to recover the charge. By default, there are 3 retries for 3 days in a row from the payment day originally defined in startDate. For example, for a monthly subscription with start date: 10-01-2021, with a rejection on 10-02-2021, payment will be retried until 13-02-2021, 3 times each day, for a total of 9 payment attempts.

You can modify the retry days for a subscription and also define specific charging days.

Customize retry logic

You can customize the collection retry logic by submitting the retryConfiguration object as follows:

  1. retryType:“schedule”. If you choose schedule, you can specify in the value field you can specify in value how often the collection will be reattempted. In the next example, the collection will be reattempted 3 times per day every 2 days for the entire month.
{
"retryConfiguration":{
"retryType":"schedule",
"value":[2]
}
}
  1. retryType:“fixed”. Send the specific days of the month to retry. Ex. 10th, 20th, 30th. In the following example, the charge will only be reattempted 3 times a day, on the 10th, 20th and 30th of the corresponding month.
    {
    "retryConfiguration":{
    "retryType":"fixed",
    "value":[10,20,30]
    }
    }
>Send the `retryType` as `fixed` if you do not want to retry collection for the entire month.
<Aside title="Importante" type="danger">
When customizing retries it should be noted that once the first collection is initiated, if it fails and retries are initiated, any updates to retries will be applied until the next subscription period (weekly, monthly, yearly).
</Aside>
If the __last charge attempt was declined__, we may send you a notification via WebHook informing you about it. In these cases, we recommend you to contact the card owner and offer them a set of alternatives for paying the fee that could not be charged; for example, changing the registered credit card and generating an [One-click payment](https://docs.kushki.com/mx/en/one-time-payments/card/on-demand) only for one time. Kushki will continue executing automatic charges over the following periods.
<Aside type="info">
Check our [API Reference](https://api-docs.kushkipagos.com/docs/API-REFERENCE/card-subscriptions/create-a-subscription) to know the options available for modifying the retry logic: `retryConfiguration`.
</Aside>
If the __last charge attempt was declined__, we may send you a notification via WebHook informing you about it. In these cases, we recommend you to contact the card owner and offer him/her a set of alternatives for paying the fee that could not be charged; for example, changing the registered credit card and generating a [charge on demand](/recurring-payments/one-click-payments/on-demand?tab=Web) only for one time. Kushki will continue executing automatic charges over the following periods.
##### Periodicity
You can choose the frequency of recurring charges by submitting any of these values in the required `periodicity` field:
* __daily__: every 1 day.
* __weekly__: every 7 days.
* __biweekly__: every 15 days.
* __monthly__: every 30 days.
* __threefortnights__: every six weeks or 42 days.
* __bimonthly__: every 60 days.
* __quarterly__: every 90 days.
* __fourmonths__: every 120 days.
* __halfyearly__: every 180 days
* __yearly__: every 360 days.
* __custom__: for [one click payments](https://docs.kushki.com/co/recurring-payments/one-click-payments/on-demand?tab=Web).
#### 2. Transaction Status Notification
At this step, you will be notified of the status of each automatic charge. You may receive the __Webhook notifications__ that you expose for Kushki to consume. You also use Kushki's console to verify transactions, as well as their details and their status.
Start your integration and accept recurring payments online safely.
***
<NextStep title="Register a Card" link="/recurring-payments/scheduled-payments/subscribe-a-card?tab=Web" side="left" type="recommended">
Start your integration and accept recurring online payments.
</NextStep>
<NextStep title="Accept Webhooks" link="/notifications/recurring-payments/webhook-card-subscriptions" side="right">
Handle post-payment events in the right way.
</NextStep>
export const _frontmatter = {}