---
updatedAt: 2025-10-08T12:11:10.000Z
agentTools:
  projectIndex: https://docs.bridgeapi.io/llms.txt
---

# Payment links statuses

# Active or inactive payment link

<Image align="center" alt={2278} border={false} caption="Payment links statuses" title="payment_links.png" src="https://files.readme.io/05bcc21-payment_links.png" />

A payment link is active or inactive. It becomes inactive under the following conditions:

* you revoke the link
* the expiration date has passed (if not set, the link expires 15 minutes after creation).
* a payment request has been successfully initiated from the link.

While a Payment Link is active, customers can make multiple attempts to use it. Each attempt creates a new Payment Request with its own status.

Here are the possible Payment Link statuses:

| Status              | Description                                                                       |
| :------------------ | :-------------------------------------------------------------------------------- |
| `valid`             | The Payment Link is valid and can be used. No payment has been initiated from it. |
| `expired` (final)   | The link has expired due its expiration date, with no payment initiation.         |
| `revoked` (final)   | The Payment Link has been revoked, and no payment has been initiated from it.     |
| `completed` (final) | A payment has been successfully initiated from the link.                          |

# Payment link completion

A payment link is `completed` when your customer has successfully confirmed the payment on his bank interface. Be aware that in some rare cases, a payment can be rejected by the bank after a successful initiation. For example, if the bank detects a fraud, the `payment request` will be rejected but the `payment link` will keep the final status `completed`. In that case, you have to create a new payment link to get paid.

Go the next step for more details about the `payment requests` statuses.

## Payment status

Payment status is a field at the payment link level called `payment_status`.

This status can have four possible values :

🔴 not\_paid

🔵 in\_progress

🟠 partially\_initiated\_in\_success

🟢 initiated\_in\_success

List of rules :

* Base the status on the latest payment\_request.
* For a payment made through a provider **without an execution status** (such as LCL for example), it should be 🟢 initiated\_in\_success if it is in PDNG.
* For a payment made through a provider with an execution status, it should be 🔵 in\_progress if it is in PDNG.
* For a bulk payment, the status should depend on the latest payment\_request:
  * if ACSC → 🟢 initiated\_in\_success
  * if RJCT → 🔴 not\_paid
  * if PART → 🟠 partially\_initiated\_in\_success

Those status are also available and sent by our webhook [Payment Links - Payment Link updated](https://docs.bridgeapi.io/docs/payments-webhooks) this event is triggered when a Payment Link is updated.

Example:

```json
{
  "content": {
    "payment_link_id": "64e61033-be1e-4dd3-9564-f03e8a5b6874",
    "payment_link_status": "completed",

    "payment_link_client_reference": "INV124", // not in response if null
		"payement_status": "initiated_in_success",
  },
  "timestamp": 1644507383234,
  "type": "payment.link.updated"
}
```