Paylinks Redirect and Webhooks

Prev Next

The Paylink API allows you to redirect users to your own webpage after a payment has been completed and send a webhook to your chosen endpoint.

Use redirect_url to return a customer to your website after a Paylink payment. Use notification_url to receive Paylink updates on your server, even if the customer does not return to your site.

Redirect URL

When creating a Paylink, you can provide a redirect_url. After the payment is completed, the customer will be redirected to the specified URL with the following query parameters:

  • customerName: The name of the customer the Paylink was created for.

  • status: Indicates whether the Paylink has been paid or requires another payment attempt.

  • amount: The amount paid by the customer.

  • reference: The transaction_unique entered when creating the Paylink.

Example redirect after payment

https://example.com/payment/result?customerName=Jane%20Smith&status=Paid&amount=12.50&reference=INV-1001

Notification URL

Set notification_url when creating the Paylink, for example, https://example.com/webhooks/paylinks. Use a publicly reachable HTTPS endpoint.

Blink sends an HTTP POST request with Content-Type: application/json.

When a Paylink has been successfully paid, Blink Payment sends a POST request to the endpoint provided when the Paylink was created. The request body contains the following:

  • transaction_id: The identifier of the transaction made from this Paylink.

  • paylink_id: The identifier for this Paylink. Use this ID to retrieve more information about the Paylink.

  • name: The name of the customer the Paylink was created for.

  • reference: The transaction_unique entered when creating the Paylink.

  • amount: The amount paid through the Paylink.

  • payment_method: The payment method used by the customer. Possible values are:

    • card

    • open-banking

    • direct-debit

  • status: The status of the Paylink, for example, Paid.

  • note: The note entered when creating the Paylink.

{
  "event_type": "paylink_status_change",
  "transaction_id": "BL-00A1B2C3D4",
  "paylink_id": "123",
  "name": "Jane Smith",
  "amount": "12.50",
  "reference": "INV-1001",
  "payment_method": "card",
  "status": "Paid"
}

Unpaid notifications are not sent. Partially Paid applies only to Paylinks: a successful payment below the requested amount closes the link to further payments.

Responding to webhooks and retries

Acknowledge the webhook with HTTP 200, 201, 202, or 204. The response body is ignored. All other status codes count as failures, including other 2xx responses and redirects. Blink does not follow redirects.

For example:

HTTP/1.1 204 No Content

Failed deliveries are attempted up to five times in total, approximately 310 seconds apart, with no increasing backoff. Connection errors, timeouts, and unsuccessful responses follow the same retry rules. Worker failures may consume an attempt before a request reaches your endpoint.

Respond promptly: connection timeouts are 5 seconds, and read timeouts are 10 seconds. Your endpoint should also handle duplicate notifications safely.

After all retry attempts have been exhausted, failed messages are retained for 14 days. Restoring the endpoint does not automatically replay them.

Recovery notifications may contain fewer fields and can omit event_type, amount, and payment_method. Empty fields are omitted. Where no transaction is associated with the notification, the body uses id, status, and paylink_url instead. Your endpoint should allow for these variations.