Direct Debit Repeat Payment
Direct debit subscriptions can be created through this endpoint. It supports only fixed schedule type. This subscription can be created using any existing direct debit transaction id or by providing customer details and bank details.
Resources
Create Direct debit repeat payment
Create a direct debit repeat payment subscription. Here at first Token need to be created and then Intent need to generated.
POST /pay/v1/directdebits/repeat-payments
Headers
Content-Type string
Content type.
Authorization string
Access token generated from create token request.
Attributes
payment_intent string
Payment intent generated from create intent request. It’s a required attribute
given_name string
Customer first name. It is required
family_name string
Customer last name. It is required
email string
Customer email. It is required
account_holder_name string
Account holder name. If transaction id is not provided then this attribute is required to create any mandate.
branch_code string
Branch code. If transaction id is not provided then this attribute is required to create any mandate.
account_number string
Account number. If transaction id is not provided then this attribute is required to create any mandate.
reference string
Unique reference. It’s a required attribute.
frequency string
Subscription frequency. It can be either of the following values.
monthly
weekly
yearly
frequency_duration integer
Payment frequency duration. It is required.
(E.g. “2” and “monthly” will be every 2 month)
is_limited_installments boolean
When creating a schedule, it is required to mention if the schedule will have unlimited or limited instalments.
Possible values are
true
false
installments integer
Number of installments. It is required if is_limited_installments field is true (i.e. it has limited instalments).
currency string
Currency that the payments will be processed in. If this value is not passed then it will take currency from the Intent.
recurring_amount decimal
Recurring amount for each instalment. If this value is not passed then it will take amount from the Intent.
start_payment_date date
Date on which the first payment will be captured. It is an optional field. if user chooses a date that is before mandate allows - within 5 days - It will be rejected.
transaction_id string
Transaction id of any previous direct debit transaction done from blink API. If this value is passed then bank details are not needed to be passed to create any mandate.
merchant_data json
Additional merchant data. It’s an optional attribute.
Request
POST https://secure.blinkpayment.co.uk/api/pay/v1/directdebits/repeat-payments HTTP/1.1
Content-Type: application/json
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbG...
User-Agent: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36",
Accept: "*/*"
Accept-Encoding: "gzip, deflate, br"
Accept-Charset: ""
{
"payment_intent": "pi************",
"given_name": "Test",
"family_name": "Dev",
"email": "email@email.com",
"account_holder_name": "Test",
"branch_code": "200000",
"account_number": "55779911",
"merchant_data": "{\"order_id\": \"dd-12345678\"}",
"reference": "unique123",
"frequency": "monthly",
"frequency_duration": 1,
"installments": 3,
"recurring_amount": 10,
"is_limited_installments": true
}
Response
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 3,
"payment_type": "direct-debit",
"status": "active",
"customer_name": "Luis Lynch",
"customer_email": "Velva_Welch@gmail.com",
"reference": "If we navigate the monitor, we can get to the GB sensor through the redundant FTP transmitter!",
"currency": "GBP",
"start_payment_date": "2025-01-23",
"final_payment_date": "2025-03-25",
"recurring_amount": 10,
"is_limited_installments": true,
"installments": 3,
"is_active": true,
"recurring_data": [
{
"charge_date": "2025-01-23",
"amount": 10
},
{
"charge_date": "2025-02-24",
"amount": 10
},
{
"charge_date": "2025-03-24",
"amount": 10
}
]
}