Skip to main content
Work in progressThis section is currently under active development as part of improvements planned for 2026. Content may change as we expand product capabilities.If you’re interested in early access or want to learn more about what’s coming, feel free to reach out to the team.
This guide walks through the complete flow to generate a PAD (Pre-Authorized Debit) signing link using the EFT API, starting from a contact ID. The PAD link is a URL you present to your end user so they can authorize the payment.

Prerequisites

  • A valid x-client-id API key
  • A stored contact with at least one EFT bank account

Overview

The flow requires four API calls in sequence:

Step 1: Get the Contact

Retrieve the contact to obtain their EFT bank account ID.
From the response, note the id from the contact’s EFT account. You’ll use it as the accountId in the transaction request.

Step 2: Create the Transaction

Create a DEBIT transaction using the contact’s contactId and accountId from Step 1, and a transactionCode from the transaction codes reference.
The response contains a schedules array. Note the id (schedule ID) from the first item.
The padId field in the create transaction response is null at this point. The PAD agreement is generated asynchronously. You need to poll the schedule to obtain it.

Step 3: Get the Schedule (poll for padId)

Retrieve the schedule to check if the PAD has been generated.
Check the padId field in the response:
  • If padId is not null: proceed to Step 4
  • If padId is null: the PAD is still being generated; wait and retry
We recommend polling every 2 to 3 seconds for up to 30 seconds. If padId is still null after that, contact Flinks support.
Once you have the padId, retrieve the PAD agreement details including the signing link.
The response includes a padLink field: this is the URL you present to your end user.

Presenting the PAD to the End User

Redirect or display the padLink to your end user so they can review and sign the PAD agreement. Once signed, the payment schedule becomes active.

Complete Example

API Reference