---
updatedAt: 2025-09-24T00:03:52.000Z
agentTools:
  projectIndex: https://docs.bridgeapi.io/v2021.06.01/llms.txt
---

# Create a payment link

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "v2021-06-01",
    "version": "2021.06.01"
  },
  "servers": [
    {
      "url": "https://api.bridgeapi.io/v2"
    }
  ],
  "components": {
    "securitySchemes": {
      "sec0": {
        "type": "apiKey",
        "in": "header",
        "name": "Client-Id"
      },
      "sec1": {
        "type": "apiKey",
        "in": "header",
        "name": "Client-Secret"
      }
    }
  },
  "security": [
    {
      "sec0": [],
      "sec1": []
    }
  ],
  "paths": {
    "/payment-links": {
      "post": {
        "summary": "Create a payment link",
        "description": "",
        "operationId": "create-a-payment-link-1",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "user",
                  "transactions"
                ],
                "properties": {
                  "user": {
                    "type": "object",
                    "description": "User who will initiate the payment",
                    "properties": {
                      "first_name": {
                        "type": "string",
                        "description": "Mandatory with last_name or only company_name (max 70 char : alphanumeric, space and some symbols + ( ) / _ . - ! ? , ; & % € are supported but it must contain at least one letter)"
                      },
                      "last_name": {
                        "type": "string",
                        "description": "Mandatory with first_name or only company_name (max 70 char : alphanumeric, space and some symbols + ( ) / _ . - ! ? , ; & % € are supported but it must contain at least one letter)"
                      },
                      "company_name": {
                        "type": "string",
                        "description": "Mandatory or first_name and last_name must be completed (max 70 char : alphanumeric, space and some symbols + ( ) / _ . - ! ? , ; & % € are supported but it must contain at least one letter)"
                      },
                      "external_reference": {
                        "type": "string",
                        "description": "A reference to link this user to your system (50 char. max.)"
                      },
                      "email": {
                        "type": "string",
                        "description": "Mandatory depending on your use case"
                      }
                    }
                  },
                  "expired_date": {
                    "type": "string",
                    "description": "The link status will be set to \"EXPIRED\" after this date. Format is yyyy-MM-ddThh:mm:ssZ (ISO8601)",
                    "format": "date"
                  },
                  "client_reference": {
                    "type": "string",
                    "description": "A reference to link this link to your system, 50 char. max."
                  },
                  "transactions": {
                    "type": "array",
                    "description": "Details of the payment (multiply this item in this array for BULK payments)",
                    "items": {
                      "properties": {
                        "amount": {
                          "type": "number",
                          "description": "Transaction amount",
                          "format": "float"
                        },
                        "currency": {
                          "type": "string",
                          "description": "Only EUR is supported for now",
                          "default": "EUR"
                        },
                        "label": {
                          "type": "string",
                          "description": "This label will be displayed on the bank accounts: sender and receiver (max 50 char : alphanumeric, space and some symbols + ( ) / _ . - ! ? , ; & % € are supported)"
                        },
                        "end_to_end_id": {
                          "type": "string",
                          "description": "Technical id between you, Bridge and the bank (35 char. max.)"
                        },
                        "execution_date": {
                          "type": "string",
                          "description": "\"YYYY-MM-DD\" up to 60 days from today"
                        },
                        "beneficiary": {
                          "type": "object",
                          "description": "Required for payments to different bank accounts",
                          "required": [
                            "iban"
                          ],
                          "properties": {
                            "iban": {
                              "type": "string",
                              "description": "IBAN recipient"
                            },
                            "first_name": {
                              "type": "string",
                              "description": "Mandatory with last_name or only company_name (max 35 char : alphanumeric, space and some symbols + ( ) / _ . - ! ? , ; & % € are supported but it must contain at least one letter)"
                            },
                            "last_name": {
                              "type": "string",
                              "description": "Mandatory with first_name or only company_name (max 35 char : alphanumeric, space and some symbols + ( ) / _ . - ! ? , ; & % € are supported but it must contain at least one letter)"
                            },
                            "company_name": {
                              "type": "string",
                              "description": "Mandatory or first_name and last_name must be completed (max 35 char : alphanumeric, space and some symbols + ( ) / _ . - ! ? , ; & % € are supported but it must contain at least one letter)"
                            },
                            "email": {
                              "type": "string",
                              "description": "Mandatory depending on your use case"
                            },
                            "virtual_iban_mode": {
                              "type": "string",
                              "description": "If `ondemand`, the VIBAN will be created when the user decides to pay with a manual transfer. If `auto`, the VIBAN is automatically created and available in the API answer.",
                              "default": "`ondemand`"
                            },
                            "virtual_iban_id": {
                              "type": "string",
                              "description": "Let you reuse an existing VIBAN"
                            }
                          }
                        }
                      },
                      "required": [
                        "amount",
                        "currency",
                        "label"
                      ],
                      "type": "object"
                    }
                  },
                  "callback_url": {
                    "type": "string",
                    "description": "If you want to redirect the users to your interface instead of Bridge's interface after they completed the journey from their bank website or application"
                  },
                  "country": {
                    "type": "string",
                    "description": "To define the default banks displayed in the banks list. If not defined, french banks will be displayed. Options: fr, es, de, gb"
                  },
                  "bank_id": {
                    "type": "integer",
                    "description": "If the parameter is set, your user won't see the banks list. Be careful to select banks with at least the `single_payment` capability (cf. [List banks](https://docs.bridgeapi.io/reference/list-banks))",
                    "format": "int32"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"url\": \"https://pay.bridgeapi.io/link/9dcf522ce3663efc598f573634531eb3fccbbcdde0bc5d674c95c0740feb0ec6\",\n    \"id\": \"3ae3a3d6-f9d5-445e-b8fe-2db1ab8c39d8\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "example": "https://pay.bridgeapi.io/link/9dcf522ce3663efc598f573634531eb3fccbbcdde0bc5d674c95c0740feb0ec6"
                    },
                    "id": {
                      "type": "string",
                      "example": "3ae3a3d6-f9d5-445e-b8fe-2db1ab8c39d8"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n    \"errors\": [\n        {\n            \"code\": \"payment.user.name_missing\",\n            \"property\": \"user.valid_name_firstname_lastname_company_name\",\n            \"message\": \"You need to fill a 'name' or a 'company_name' or a 'first_name' & 'last_name'\"\n        }\n    ]\n}"
                  }
                },
                "schema": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "example": "invalid_request"
                        },
                        "message": {
                          "type": "string",
                          "example": "Invalid body content"
                        },
                        "documentation_url": {}
                      }
                    },
                    {
                      "type": "object",
                      "properties": {
                        "errors": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "code": {
                                "type": "string",
                                "example": "payment.user.name_missing"
                              },
                              "property": {
                                "type": "string",
                                "example": "user.valid_name_firstname_lastname_company_name"
                              },
                              "message": {
                                "type": "string",
                                "example": "You need to fill a 'name' or a 'company_name' or a 'first_name' & 'last_name'"
                              }
                            }
                          }
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "deprecated": false,
        "x-readme": {
          "code-samples": [
            {
              "language": "curl",
              "code": "curl 'https://api.bridgeapi.io/v2/payment-links' \\\n\t-X POST \\\n\t-H 'Bridge-Version: 2021-06-01' \\\n  -H 'Content-Type: application/json' \\\n\t-H 'Client-Id: MY_CLIENT_ID' \\\n\t-H 'Client-Secret: MY_CLIENT_SECRET' \\\n  -d $'{     \n    \"user\": {\n         \"first_name\": \"Thomas\",\n         \"last_name\": \"Pichet\",\n         \"external_reference\": \"REF-USER-1234_AZ\"\n     },\n     \"expired_date\": \"2021-07-24T22:00:00.000Z\",\n     \"client_reference\": \"ABCDE_FG-HI_12345\",\n     \"transactions\": [\n     {\n         \"amount\": 120.98,\n         \"currency\": \"EUR\",\n         \"label\": \"Refund 123456\",\n         \"end_to_end_id\": \"E2E_ID-1234\"\n       }\n     ]\n}'",
              "name": "My bank account"
            },
            {
              "language": "curl",
              "code": "curl 'https://api.bridgeapi.io/v2/payment-links' \\\n\t-X POST \\\n\t-H 'Bridge-Version: 2021-06-01' \\\n  -H 'Content-Type: application/json' \\\n\t-H 'Client-Id: MY_CLIENT_ID' \\\n\t-H 'Client-Secret: MY_CLIENT_SECRET' \\\n  -d $'{     \n    \"user\": {\n         \"first_name\": \"Thomas\",\n         \"last_name\": \"Pichet\",\n         \"external_reference\": \"REF-USER-1234_AZ\"\n     },\n     \"expired_date\": \"2021-07-24T22:00:00.000Z\",\n     \"client_reference\": \"ABCDE_FG-HI_12345\",\n     \"transactions\": [\n     {\n         \"amount\": 120.98,\n         \"currency\": \"EUR\",\n         \"label\": \"Refund 123456\",\n         \"beneficiary\": {\n             \"first_name\": \"Test\",\n             \"last_name\": \"Merchant\",\n             \"iban\": \"FR2310096000301695931368H67\"\n         },\n         \"end_to_end_id\": \"E2E_ID-1234\"\n       }\n     ]\n}'",
              "name": "Different bank accounts"
            },
            {
              "language": "curl",
              "code": "curl 'https://api.bridgeapi.io/v2/payment-links' \\\n\t-X POST \\\n\t-H 'Bridge-Version: 2021-06-01' \\\n  -H 'Content-Type: application/json' \\\n\t-H 'Client-Id: MY_CLIENT_ID' \\\n\t-H 'Client-Secret: MY_CLIENT_SECRET' \\\n  -d $'{\n  \"transactions\": [\n    {\n      \"currency\": \"EUR\",\n      \"label\": \"label test 1\",\n      \"amount\": 10,\n      \"beneficiary\": {\n          \"company_name\": \"Acme\" ,\n          \"iban\": \"FR8410096000406385652746J19\"\n      },\n      \"client_reference\": \"ABCDE_FG-HI_12345\",\n      \"end_to_end_id\": \"E2E_TEST-123\"\n    },\n    {\n      \"currency\": \"EUR\",\n      \"label\": \"label test 1\",\n      \"amount\": 20,\n      \"beneficiary\": {\n          \"company_name\": \"Perspecteev\" ,\n          \"iban\": \"FR9617569000506222985636L37\"\n      },\n      \"client_reference\": \"ABCDE_FG-HI_12345\",\n      \"end_to_end_id\": \"E2E_TEST-123\"\n    },\n    {\n      \"currency\": \"EUR\",\n      \"label\": \"label test 2\",\n      \"amount\": 30,\n      \"beneficiary\": {\n          \"first_name\": \"John\" ,\n          \"last_name\": \"Doe\" ,\n          \"iban\": \"FR5230003000302441878431A49\"\n      },\n      \"client_reference\": \"ABCDE_FG-HI_12345\",\n      \"end_to_end_id\": \"E2E_TEST-123\"\n    }\n  ],\n  \"user\": {\n    \"first_name\": \"John\",\n    \"last_name\": \"Smith\",\n    \"external_reference\": \"AEF142536-890\"\n  }\n}",
              "name": "Bulk payment"
            }
          ],
          "samples-languages": [
            "curl"
          ]
        }
      }
    }
  },
  "x-readme": {
    "headers": [
      {
        "key": "Bridge-Version",
        "value": "2021-06-01"
      }
    ],
    "explorer-enabled": false,
    "proxy-enabled": false
  },
  "x-readme-fauxas": true
}
```