Skip to main content

Standing Orders

The BOPP Checkout is initialised by calling the BoppButton function which takes two required parameters:

  • The Key is the API key which is created in the BOPP Dashboard, it permissions the button to issue the payment request.
  • The container is the DOM element you created in the previous step:
const boppButton = BoppButton({
key: 'Copied Key',
container: document.getElementById('bopp')
});

Note: If you don't pass at least one of the parameters, an error is generated.

To initiate a standing order you need to set the recurring payments details on the BoppButton object so that these are passed to the payers bank for processing.

This is done by calling the boppButton.setRecurringPaymentDetails method and and passing details object.

    boppButton.setRecurringPaymentDetails({
"firstPaymentAmount": "0.01",
"firstPaymentDue": "2022-11-01",
"frequency": "DayOfWeek:01:01" })

The payment details parameter object should be set with the following values:

PropertyTypeRequiredDescription
firstPaymentAmountNumeric StringYesThe amount of the first payment which should be specified as a numeric string for example "1.00". It is specified as a string to ensure that the precision set is maintained by the javascript implementation.
firstPaymentDueDateYesThis is the date YYYY-MM-DD which should be in the future. This is the date on which the first payment is due to be made, subsequent payments will follow the period specified by the frequency, unless the firstRecurringPaymentDue property is set. In which case the first payment is treated as a one off payment.
frequencyFrequencyYesThe frequency property is a formatted string which specifies the frequency with which the standing order payment will be made. It follows the format specified in the table below.
firstRecurringPaymentDueDateNoIf this property is set YYYY-MM-DD it is used as the date to begin making repeating payments. In this case the firstPaymentDue is used as a single one off payment.
recurringPaymentAmountNumeric StringNoThe recurring payment amount which should be specified as a numeric string for example "1.00". If this amount is set then the firstPaymentAmount is treated as a one off payment followed by a series of payments using this amount.
finalPaymentDueDateNoThis property specifies the date YYYY-MM-DD when the payments associated with the standing order should stop. If it is not set the standing order will trigger payments until it is cancelled by the payer
finalPaymentAmountNumeric StringNoA final payment amount which should be specified as a numeric string for example "1.00". If this amount is set then the payment on the finalPaymentDue date will use this amount rather than any previously specified.
numberOfPaymentsIntegerNoThis value can be used specify the number of payments to be made rather than specifying an end date.
FrequencyFormatDescription
DayOfWeekDayOfWeek:w:dEvery wth week, on the dth (0-6) day of the week
DayOfMonthDayOfMonth:w:dEvery mth month, on the dth day of the month. -ve numbers count from the end of the month, so 01:-01 means every month on the last day of the month

If date and frequency values don't follow the formats specified above payment processing will fail returning a 401 error.

Warning: Non-mandatory parameters may not be supported by all banks. As these are non-mandated by the Open Banking implementation supervisory process several banks have chosen to not provide a fully featured standing orders interface.

As a general rule all banks will honour the firstPaymentAmount, firstPaymentDue and frequency parameters which makes it possible to set-up a simple repeating payment on a weekly or monthly basis. Most also support finalPaymentDue which allows the standing order to be stopped. Far fewer will process alternate amounts.

Before the BOPP Checkout is clicked by the user you will need to set the parameters for the payment processing. This is also done by setting methods on the boppButton object.

Below is a list of the available methods:

MethodParametersDescription
setPaymentReferencereference (string)sets a value which will be used as a payment reference on the payment instructions set to the Payer application and then used in their banking interactions
boppButton.setPaymentReference("OrderNumber");

Once set-up, a user can click on the BOPP Checkout that will cause a paylink to be generated. It will also cause an overlay dialogue to be shown to the user. This overlay will allow the user to scan a QR code to complete the payment on a separate device, or continue on the existing device. This in turn will cause the user's banking application to load from where they can complete the payment.

During this payment processing the BOPP Checkout opens a server connection to listen for status updates from the various components completing the payment processing. After the payment is complete, the BOPP Checkout SDK will call the status callback that was previously registered via the .setCallback method.

The button can be enabled / disabled using the setEnabled parameter with a boolean value.

boppButton.setEnabled(true);

The button is enabled by default.

Next Steps