Endorsements

Endorsements represent an approval of a customer to onboard and transact with Bridge.

To onboard a customer and enable them to take actions on Bridge, the customer must provide their KYC information and accept the terms of service for the required endorsement type.

Endorsement Types

There are currently two different endorsements you can obtain for your customer. The type of endorsement you need for your customer depends on the region of residence and which fiat rails they're intending to utilize.

Base Endorsement

Currently, the base endorsement represents approval of a customer to onboard and transact with all available payment rails except SEPA/Euro. To obtain a base endorsement, you must meet KYC Information and Terms of Service (ToS) requirements.

KYC Information

The first component is providing Bridge with the necessary KYC information from the customer by following a developer provided KYC Link.

To create a KYC Link, use the following endpoint:

curl --location --request POST 'https://api.bridge.xyz/v0/kyc_links' \
--header 'Content-Type: application/json' \
--header 'Api-Key: <API Key>' \
--header 'Idempotency-Key: <generate a uuid>' \
--data-raw '{
  "full_name": "John Doe",
  "email": "johndoe@johndoe.com",
  "type": "individual", // or "business",
  "endorsement": "base"
}'

Terms of Service

The second component is obtaining terms of service acceptance from your customer. This is accomplished by providing your customer with a Terms of Service Link for them to follow.

Use this endpoint to request a URL and reference our ToS Links API

SEPA Endorsement

The sepa endorsement represents approval of using SEPA/Euro services offered by Bridge.

KYC Information

The first component is providing Bridge with the necessary KYC information from the customer by following a developer provided KYC Link for new customers and Per-customer KYC Link for existing customers.

Terms of Service

The second component is obtaining terms of service acceptance from your customer. This is accomplished by providing your customer with a Terms of Service Link for them to follow

Endorsement requirements

The customer object contains an endorsements attribute, where each endorsement will includes a requirements object. Developers can use it to get a comprehensive view into the status of endorsements, detailing which requirements are:

Complete: Items that are already fulfilled.
Pending: Items received and are being reviewed internally.
🔍 Missing: Required items that are not yet pending or complete.
❗️ Issues: The required information has been received, but there are outside factors that will not allow us to approve the endorsement.

How It Works
The requirements object will provide a summary of the endorsement’s status, allowing developers to clearly identify which fields require action. For example, developers can now determine missing fields such as Proof of Address or Terms of Service acceptance.

Examples

The following is an example of a customer who requested both Base and SEPA.

{
  "endorsements": [
    {
      "name": "base",
      "status": "incomplete",
      "requirements": {
          "complete": [
            "first_name",
            "last_name",
            "tax_identification_number",
            "email_address",
            "date_of_birth",
            "accepted_risk_region",
            "address_of_residence"
          ],
          "pending": [],
          "missing": {
            "all_of": [
              "terms_of_service_v1",
              "sanctions_screen"
            ]
          },
          "issues": []
      },
    },
    {
      "name": "sepa",
      "status": "incomplete",
      "requirements": {
        "complete": [
          "first_name",
          "last_name",
          "tax_identification_number",
          "email_address",
          "date_of_birth",
          "accepted_risk_region",
          "address_of_residence"
        ],
        "pending": [],
        "missing": {
          "all_of": [
            "terms_of_service_v2",
            "proof_of_address",
            "sanctions_screen"
          ]
        },
        "issues": []
      },
    },
  ]
}

The following is an example of a customer who has fulfilled the requirements for Base, but have outstanding issues on their account preventing them from having the endorsement approved.

{
  "endorsements": [
    {
      "name": "base",
      "status": "incomplete",
      "requirements": {
        "complete": [
          "first_name",
          "last_name",
          "tax_identification_number",
          "email_address",
          "date_of_birth",
          "accepted_risk_region",
          "address_of_residence",
          "terms_of_service_v1",
          "sanctions_screen",
        ],
        "pending": [],
        "missing": nil,
        "issues": ["endorsement_not_available_in_customers_region"]
      }
    },
  ]
}