Create a Payment Link with a dynamic beneficiary

You can create a payment link where the beneficiary (the account receiving the funds) is dynamically defined in the call create a payment link— ideal for marketplaces, payout systems, or multi-vendor platforms.

ℹ️

This feature needs to be activated by our teams. Please reach out to your CSM at Bridge so we can get set it up.

Payment link creation

When you create a payment link with the Payment links endpoint, the required fields are:

  • amount: Specify the payment amount
  • currency: Choose the currency
  • label : Description displayed on the bank interface of the customer. If not provided, it will default to "Bridge Payment dd-mm"
  • user : Identify the payer with (first_name AND last_name) OR company_name
  • end_to_end_id : Assign an id that will be sent to the bank
  • client_reference: a reference you can set to retrieve the payments between your system and ours for easy tracking
  • beneficiary : Define the recipient of the payment (see details below).

Depending on your usecase, you can also define two more values that impact the user experience: expired_date and callback_url. In the following sections, let's dig into these use cases.

ℹ️

It is also possible to do Bulk Payment Links by multiplying the transaction object in the body of the call create a payment link.

Beneficiary object

The beneficiary object defines who will receive the payment.

FieldTypeRequiredDescription
ibanstringIBAN of the recipient. If not defined, the iban set in the parameters of your Bridge Dashboard will be sent.
first_namestring✅ (if company_name not provided)Mandatory with last_name, or use company_name instead. Max 35 chars, alphanumeric + symbols ( ) / . - ! ? , ; & % €, must contain at least one letter.
last_namestring✅ (if company_name not provided)Mandatory with first_name, or use company_name instead. Same character rules.
company_namestring✅ (if first_name and last_name not provided)Used if payment is made to a company. Same character rules.
emailstringOptional, required only for some use cases.
virtual_iban_modestringOnly available for Payment Accounts.
virtual_iban_idstringOnly available for Payment Accounts.

Example

You can find below body examples :

curl 'https://api.bridgeapi.io/v3/payment/payment-links' \
	-X POST \
	-H 'Bridge-Version: BRIDGE_VERSION' \
  -H 'Content-Type: application/json' \
	-H 'Client-Id: MY_CLIENT_ID' \
	-H 'Client-Secret: MY_CLIENT_SECRET' \
  -d $'{
  "client_reference": "REF-1234_A",
  "user": {
    "email": "[email protected]",
    "first_name": "Tom",
    "last_name": "DUPONT",
    "external_reference": "REF-1234_A"
  },
  "transactions": [
    {
      "amount": 1000,
      "currency": "EUR",
      "label": "label",
      "end_to_end_id": "EndtoEnd123",

      "beneficiary": {
             "first_name": "John",
             "last_name": "DOE",
             "email":"[email protected]",
             "iban": "FR5410096000708442117529O41

"
        }
    }
  ]
}'
curl 'https://api.bridgeapi.io/v3/payment/payment-links' \
	-X POST \
	-H 'Bridge-Version: BRIDGE_VERSION' \
  -H 'Content-Type: application/json' \
	-H 'Client-Id: MY_CLIENT_ID' \
	-H 'Client-Secret: MY_CLIENT_SECRET' \
  -d $'{     
    "user": {
         "first_name": "Thomas",
         "last_name": "Pichet",
         "external_reference": "REF-USER-1234_AZ"
     },
     "expired_date": "2023-01-24T22:00:00.000Z",
     "client_reference": "ABCDE_FG-HI_12345",
     "transactions": [
     {
         "amount": 120.98,
         "currency": "EUR",
         "label": "Refund 123456",
         "end_to_end_id": "E2E_ID-1234"
       }
     ]
}'
{
    "url": "https://pay.bridgeapi.io/link/9dcf522ce3663efc598f573634531eb3fccbbcdde0bc5d674c95c0740feb0ec6",
    "id": "3ae3a3d6-f9d5-445e-b8fe-2db1ab8c39d8"
}

Checkout

  • To redirect customers to your website after payment, add a callback_url to your request
  • For checkout experience, no need to set the expired_date. Payment links are active for 15 minutes by defalut ensuring a hassle-free process.
Checkout experience

When setting a callback_url, after payment confirmation your user will be redirected to this url with the parameters below:

  • payment_link_id
  • payment_request_id
  • status with the value success

If your user clicks on the exit cross, you will receive the callback with the parameters below

  • payment_link_id
  • status with the value abort
  • step which could be banks_list, parent_bank_page or bank_page

Pay by Link

  • Don't send any callback URL: Customers remain on our website to view their payment results.
  • Add an expired date: You can choose how long the link remains active (up to 90 days), and users will be informed of the expiration date.
  • You can also enable delayed payment. Add an execution_date on the transaction object. For banks that do not support the deferred payment, the user will be notified and the payment will be initiated normally.
Collect bills with the beneficiary name displayed Collect bills with the beneficiary name displayed (details)

Whencallback_url is not provided, your user will see the payment's status directly on our interface.

Payment link status page

Payment lifecycle

Once you have created payment links, you can see them in your dashboard and you can also list them with our API, thanks to the List payment links endpoint.

Ensure that your integration is robust and your payment tracking is reliable by: