Managing due date, cycle closing date, and additional grace periods
When you create a program using Create program or Create program (async), you set the due_dates
field to an array of due date objects. When you create an account in the program, you assign one of the due date objects to it.
You can also create a program using Pismo Control Center. This method also enables you to set up an array of due date objects to be used by accounts in the program.
Each due date object contains a day
field, which represents the day of the month for the due date. It must be an integer between 1 and 28. This is the nominal date by which the cardholder must pay the minimum amount due (MAD) to avoid accruing late charges. The actual date is the real due date, which could be the later than the due date. For information about how the real due date is determined, refer to Calculating the real due date.
The day of the month on which a cycle ends is called the cycle closing date. By default, this day is specified using the Number of days before due date to set the closing date of the statement program parameter, which you can set in the Pismo Control Center. The value of this parameter is subtracted from the due date to determine the cycle closing date. In other words,
day
- Number of days before due date to set the closing date of the statement = cycle closing date
The method of defining the due date and cycle closing date just described is the default method.
An alternative method is to use a program calendar strategy. For more information, refer to the Create program calendar strategy endpoint.
Defining an additional grace period
The grace period is the time between the cycle closing date and the due date. It follows from the previous section that the value in the Number of days before due date to set the closing date of the statement program parameter is the default grace period.
You have the option of defining an additional grace period for a specific due date. You do this using the grace_period_days
field of the Update program due date endpoint. This field overrides the value of Number of days before due date to set the closing date of the statement. Using grace_period_days
, you can define multiple additional grace periods for a program. For example, you could create two due date objects that are identical except for the value in grace_period_days
.
If an account is using a program calendar strategy, it's not affected by
grace_period_days
or Number of days before due date to set the closing date of the statement. So, you can't use the method described in this section to create an additional grace period for the account. For more information about program calendar strategies, refer to the Create program calendar strategy endpoint.
Adding extra days to the grace period
You have the option of giving the cardholder some extra time after the due date to pay the MAD without incurring late charges. You do this by setting the program parameter Defines the number of additional grace days granted to the program to the number of extra days you want to give them.
Adding extra days to the grace period does work with program calendar strategies.
Calculating the real due date
The real due date is the actual date by which the cardholder must pay the MAD to avoid incurring late charges, taking into account non-working days such as weekends and public holidays. Weekends can be identified by checking the Non-business days program parameter. For example, if Non-business days is set to 67, this means that Saturday and Sunday are non-business days. Public holidays can be identified using the List holidays endpoint.
The Pismo platform uses the following steps to calculate the real due date.
- The platform adds the value of the Defines the number of additional grace days granted to the program program parameter to the due date. (If this parameter is not set, then it uses the original value of the due date.)
- If the result of the last step is a working day, this is the real due date. If it's a non-working day, the real due date is the next available working day.
If Defines the number of additional grace days granted to the program is not set (or is set to 0), and the due date does not fall on a non-business day, then the real due date is the same as the due date.
Examples
Example 1
Assume the default calendar strategy is used. That is, the Create program calendar strategy endpoint was not used to define an alternative strategy.
Suppose you have the following settings.
- Number of days before due date to set the closing date of the statement is set to 10.
- Defines the number of additional grace days granted to the program is set to 3.
- In the due date object assigned to the program,
day
= 5, andgrace_period_days
is not set.
For the month of June 2025, the due date is the fifth day of the month: 2025-06-05.
Since Number of days before due date to set the closing date of the statement = 10, the cycle closing date is 10 days prior to the due date, which would be 2025-05-26.
Since Defines the number of additional grace days granted to the program = 3, you calculate the real due date by adding 3 to the due date: 5 + 3 = 8. So, the real due date is 2025-06-08, assuming this is a business day. If it's not a business day, then the real due date is the next date after the 8th that is a business day.
Example 2
Assume the default calendar strategy is used.
Suppose you have the following settings.
- Number of days before due date to set the closing date of the statement is set to 10.
- Defines the number of additional grace days granted to the program is set to 3.
- In the due date object assigned to the program,
day
= 10, andgrace_period_days
= 7.
Setting grace_period_days
to 7 overrides the setting in Number of days before due date to set the closing date of the statement, so you can ignore that parameter for this example.
For the month of June 2025, the due date is the 10th day of the month: 2025-06-10.
Since grace-period-days
= 7, and Number of days before due date to set the closing date of the statement is ignored, the cycle closing date is 7 days prior to the due date, which would be 2025-06-03.
Since Defines the number of additional grace days granted to the program = 3, you calculate the real due date by adding 3 to the due date: 10 + 3 = 13. So, the real due date is 2025-06-13, assuming this is a business day. If it's a not a business day, then the real due date is the next date after the 13th that is a business day.
Example 3
Assume the default calendar strategy is used.
Assume the due date is 2025-05-21, and that you have the following settings.
- Defines the number of additional grace days granted to the program is set to 3.
- Non-business days is set to 67 (Saturday and Sunday).
To get the real due date, you follow these steps.
- 2025-05-21 + 3 additional grace days = 2025-05-24.
- 2025-05-24 is a Saturday, so this date must be adjusted to the following Monday, which is 2025-05-26.
- You run 2025-05-26 through the Get holiday endpoint to find out if it's a holiday. The endpoint returns a non-empty response, which means that it is a holiday, and
next_business_date
is 2025-05-27 in the response. So, the real due date is 2025-05-27.
Updated 2 days ago