Bridge Customers API

The Customers API from Bridge — 9 operation(s) for customers.

OpenAPI Specification

bridge-customers-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: Bridge API Keys Customers API
  description: APIs to move into, out of, and between any form of a dollar
  version: '1'
servers:
- url: https://api.bridge.xyz/v0
  description: The base path for all resources
security:
- ApiKey: []
tags:
- name: Customers
paths:
  /customers:
    get:
      summary: Get all customers
      description: Get the full list of all customers created on Bridge
      tags:
      - Customers
      parameters:
      - $ref: '#/components/parameters/CustomerStartingAfterParameter'
      - $ref: '#/components/parameters/CustomerEndingBeforeParameter'
      - $ref: '#/components/parameters/LimitParameter'
      - $ref: '#/components/parameters/CustomerEmailParameter'
      responses:
        '200':
          description: List of customers (the returned list is empty if none found)
          content:
            application/json:
              schema:
                title: Customers
                type: object
                required:
                - count
                - data
                properties:
                  count:
                    description: total number of items in data
                    type: integer
                  data:
                    type: array
                    minItems: 0
                    items:
                      $ref: '#/components/schemas/Customer'
              examples:
                CustomersFound:
                  summary: A non-empty list of customers
                  value:
                    data:
                    - $ref: '#/components/examples/SuccessfulCustomerResponse/value'
                    - $ref: '#/components/examples/SuccessfulCustomerResponse2/value'
                NoCustomersFound:
                  summary: An empty list of customers
                  value:
                    data: []
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
    post:
      summary: Create a customer
      tags:
      - Customers
      parameters:
      - $ref: '#/components/parameters/IdempotencyKeyParameter'
      requestBody:
        description: 'Customer object to be created.


          No fields are strictly required by the API. For example, it is valid to create a customer without a first name, last name, or residential address, but this customer will not be granted endorsements required to transact on Bridge until the necessary information is provided, possibly via a PUT request.

          '
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/CreateIndividualCustomerPayload'
              - $ref: '#/components/schemas/CreateBusinessCustomerPayload'
              discriminator:
                propertyName: type
                mapping:
                  individual: '#/components/schemas/CreateIndividualCustomerPayload'
                  business: '#/components/schemas/CreateBusinessCustomerPayload'
      responses:
        '201':
          description: Customer object created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
              examples:
                IndividualCustomerCreated:
                  summary: Customer successfully created
                  $ref: '#/components/examples/SuccessfulCustomerResponse'
                BusinessCustomerCreated:
                  summary: Customer successfully created
                  $ref: '#/components/examples/SuccessfulCustomerResponse2'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /customers/{customerID}:
    parameters:
    - $ref: '#/components/parameters/CustomerIDParameter'
    get:
      summary: Get a single customer object
      tags:
      - Customers
      description: Retrieve a customer object from the passed in customer ID
      responses:
        '200':
          description: Successful customer object response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
              examples:
                SuccessfulCustomerResponse:
                  $ref: '#/components/examples/SuccessfulCustomerResponse'
                RejectedCustomerResponse:
                  $ref: '#/components/examples/RejectedCustomerResponse'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
    put:
      summary: Update a single customer object
      tags:
      - Customers
      requestBody:
        description: Customer object to update with
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/UpdateIndividualCustomerPayload'
              - $ref: '#/components/schemas/UpdateBusinessCustomerPayload'
              discriminator:
                propertyName: type
                mapping:
                  individual: '#/components/schemas/UpdateIndividualCustomerPayload'
                  business: '#/components/schemas/UpdateBusinessCustomerPayload'
      description: 'Updates to be made to the specified customer.


        No fields are strictly required by the API. It is generally valid to provide any subset of data in a PUT request. For business customers, associated persons cannot be updated via PUT, and should instead be managed using v0/associated_persons.

        '
      responses:
        '200':
          description: Successful customer object response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
              examples:
                SuccessfulCustomerResponse:
                  $ref: '#/components/examples/SuccessfulCustomerResponse'
                RejectedCustomerResponse:
                  $ref: '#/components/examples/RejectedCustomerResponse'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
    delete:
      summary: Delete a single customer object
      tags:
      - Customers
      description: Delete a customer object from the passed in customer ID
      responses:
        '200':
          description: Successfully deleted customer object response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
              examples:
                DeletedCustomerResponse:
                  $ref: '#/components/examples/SuccessfulCustomerResponse'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /customers/{customerID}/associated_persons:
    parameters:
    - $ref: '#/components/parameters/CustomerIDParameter'
    get:
      summary: Get associated persons for a business customer
      tags:
      - Customers
      description: Get all associated persons for a business customer.
      responses:
        '200':
          description: List of associated persons (the returned list is empty if none found)
          content:
            application/json:
              schema:
                title: AssociatedPersonsList
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    minItems: 0
                    items:
                      $ref: '#/components/schemas/AssociatedPersonResponse'
              examples:
                AssociatedPersonsFound:
                  summary: A non-empty list of associated persons
                  value:
                    data:
                    - $ref: '#/components/examples/SuccessfulAssociatedPersonResponse/value'
                NoAssociatedPersonsFound:
                  summary: An empty list of associated persons
                  value:
                    data: []
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
    post:
      summary: Create a new associated person for a business customer
      tags:
      - Customers
      parameters:
      - $ref: '#/components/parameters/IdempotencyKeyParameter'
      requestBody:
        description: New associated person to be created
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssociatedPerson'
      responses:
        '201':
          description: Associated person created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssociatedPersonResponse'
              examples:
                SuccessfulAssociatedPersonResponse:
                  $ref: '#/components/examples/SuccessfulAssociatedPersonResponse'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /customers/{customerID}/associated_persons/{associatedPersonID}:
    parameters:
    - $ref: '#/components/parameters/CustomerIDParameter'
    - $ref: '#/components/parameters/AssociatedPersonIDParameter'
    get:
      summary: Get a single associated person
      tags:
      - Customers
      description: Retrieve an associated person by ID
      responses:
        '200':
          description: Successful associated person response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssociatedPersonResponse'
              examples:
                SuccessfulAssociatedPersonResponse:
                  $ref: '#/components/examples/SuccessfulAssociatedPersonResponse'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
    put:
      summary: Update a single associated person
      tags:
      - Customers
      requestBody:
        description: Associated person data to update
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssociatedPerson'
      responses:
        '200':
          description: Updated associated person
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssociatedPersonResponse'
              examples:
                SuccessfulAssociatedPersonResponse:
                  $ref: '#/components/examples/SuccessfulAssociatedPersonResponse'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
    delete:
      summary: Delete a single associated person
      tags:
      - Customers
      description: Delete an associated person by ID
      responses:
        '200':
          description: Successfully deleted associated person
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssociatedPersonResponse'
              examples:
                SuccessfulAssociatedPersonResponse:
                  $ref: '#/components/examples/SuccessfulAssociatedPersonResponse'
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /customers/{customerID}/tos_acceptance_link:
    get:
      summary: Retrieve a hosted URL for ToS acceptance for an existing customer
      tags:
      - Customers
      description: The page at the returned URL will guide the user through the Bridge Terms of Service (ToS) acceptance flow. This can be used by existing customers to accept a new version of the ToS.
      parameters:
      - $ref: '#/components/parameters/CustomerIDParameter'
      responses:
        '200':
          description: A Hosted URL for ToS acceptance
          content:
            application/json:
              schema:
                type: object
                required:
                - url
                properties:
                  url:
                    type: string
                    description: A hosted URL for ToS acceptance
              examples:
                TosAcceptanceLink:
                  summary: A sample ToS acceptance link
                  value:
                    url: https://compliance.bridge.xyz/accept-terms-of-service?email=sage%40blick-mayer.example&t=74ea7c13-2b52-5073-bd12-6879f92b88dd
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /customers/{customerID}/kyc_link:
    get:
      summary: Retrieve a hosted KYC Link for an existing customer
      tags:
      - Customers
      description: 'The page at the returned URL will guide the user through a Bridge KYC flow. This can be used by existing customers to provide additional KYC information required for certain features or services that Bridge offers.


        For example, to enable an existing customer to use the `SEPA`/`Euro` services, they are required to provide `proof of address`. An additional parameter, `endorsement=sepa`, can be included to request a KYC link specifically for this purpose'
      parameters:
      - $ref: '#/components/parameters/CustomerIDParameter'
      - $ref: '#/components/parameters/EndorsementParameter'
      - $ref: '#/components/parameters/RedirectUriParameter'
      responses:
        '200':
          description: A Hosted URL for KYC
          content:
            application/json:
              schema:
                type: object
                required:
                - url
                properties:
                  url:
                    type: string
                    description: A hosted KYC link
              examples:
                KycLink:
                  summary: A sample KYC link
                  value:
                    url: https://bridge.withpersona.com/verify?inquiry-template-id=itmpl_NtIXpb9AbEYCPxGo5iRbc9d2&reference-id=75d2f259-6810-4cde-a9b9-83eca42b0ebf
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /customers/{customerID}/transfers:
    parameters:
    - $ref: '#/components/parameters/CustomerIDParameter'
    - $ref: '#/components/parameters/LimitParameter'
    - $ref: '#/components/parameters/TransferStartingAfterParameter'
    - $ref: '#/components/parameters/TransferEndingBeforeParameter'
    - $ref: '#/components/parameters/TxHashParameter'
    - $ref: '#/components/parameters/UpdatedAfterMsParameter'
    - $ref: '#/components/parameters/UpdatedBeforeMsParameter'
    - $ref: '#/components/parameters/TransferStateParameter'
    get:
      summary: Get all transfers
      tags:
      - Customers
      description: Get all active and completed transfers for a customer.
      responses:
        '200':
          description: List of transfers (the returned list is empty if none found)
          content:
            application/json:
              schema:
                title: Transfers
                type: object
                required:
                - count
                - data
                properties:
                  count:
                    type: integer
                    description: The number of transfers returned
                  data:
                    type: array
                    minItems: 0
                    items:
                      $ref: '#/components/schemas/TransferResponse'
              examples:
                TransfersFound:
                  summary: A non-empty list of transfers
                  value:
                    count: 2
                    data:
                    - $ref: '#/components/examples/AchOnrampFundsReceivedTransferResponse/value'
                    - $ref: '#/components/examples/AchOfframpTransferResponse/value'
                NoTransfersFound:
                  summary: An empty list of transfers
                  value:
                    count: 0
                    data: []
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /customers/{customerID}/transfers/static_templates:
    parameters:
    - $ref: '#/components/parameters/CustomerIDParameter'
    - $ref: '#/components/parameters/LimitParameter'
    - $ref: '#/components/parameters/TransferStartingAfterParameter'
    - $ref: '#/components/parameters/TransferEndingBeforeParameter'
    get:
      summary: Get all static templates for a customer
      tags:
      - Customers
      description: Get all static templates for a customer. Static templates are transfers that are used as templates for other transfers and can be created using the static_templates feature flag.
      responses:
        '200':
          description: List of static templates (the returned list is empty if none found)
          content:
            application/json:
              schema:
                title: Static Templates
                type: object
                required:
                - count
                - data
                properties:
                  count:
                    type: integer
                    description: The number of static templates returned
                  data:
                    type: array
                    minItems: 0
                    items:
                      $ref: '#/components/schemas/TransferResponse'
              examples:
                StaticTemplatesFound:
                  summary: A non-empty list of static templates
                  value:
                    count: 2
                    data:
                    - $ref: '#/components/examples/AchOnrampFundsReceivedTransferResponse/value'
                    - $ref: '#/components/examples/AchOfframpTransferResponse/value'
                NoStaticTemplatesFound:
                  summary: An empty list of static templates
                  value:
                    count: 0
                    data: []
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
  /customers/tos_links:
    post:
      summary: Request a hosted URL for ToS acceptance for new customer creation
      tags:
      - Customers
      parameters:
      - $ref: '#/components/parameters/IdempotencyKeyParameter'
      description: The URL endpoint returned will guide the user through a Bridge TOS flow. Signing this acceptance flow is a requirement for creating customers.
      responses:
        '201':
          description: A Bridge hosted URL for users to complete terms of service signing.
          content:
            application/json:
              schema:
                type: object
                required:
                - url
                properties:
                  url:
                    type: string
                    description: A Bridge hosted URL for users to complete terms of service signing.
              examples:
                TosUrl:
                  summary: A sample Bridge hosted URL
                  value:
                    data:
                      url: https://compliance.bridge.xyz/accept-terms-of-service?session_token=4d5d8c45-9feb-422a-bb5e-0fd32e3b3c53&redirect_uri=https%3A%2F%2Fgoogle.com
        '401':
          $ref: '#/components/responses/AuthenticationError'
        '500':
          $ref: '#/components/responses/UnexpectedError'
components:
  schemas:
    BusinessDocuments:
      writeOnly: true
      type: array
      title: Documents
      description: Please click "ADD OBJECT" for more information.
      items:
        type: object
        required:
        - purposes
        - file
        properties:
          purposes:
            type: array
            items:
              type: string
              enum:
              - aml_comfort_letter
              - business_formation
              - directors_registry
              - e_signature_certificate
              - evidence_of_good_standing
              - flow_of_funds
              - marketing_materials
              - ownership_chart
              - ownership_information
              - proof_of_account_purpose
              - proof_of_address
              - proof_of_entity_name_change
              - proof_of_nature_of_business
              - proof_of_signatory_authority
              - proof_of_source_of_funds
              - proof_of_source_of_wealth
              - proof_of_tax_identification
              - shareholder_register
              - other
            description: '**EEA / BBSA (business KYB):** purposes used in [EEA updated requirements](https://apidocs.bridge.xyz/platform/customers/customers/eea-updated-requirements) include `business_formation`, `evidence_of_good_standing`, `ownership_information`, and `proof_of_signatory_authority` (letter of authorization). See supported-documents for the full enum [here](https://apidocs.bridge.xyz/docs/supported-documents).


              For **non-reliance** EEA in-scope businesses, `business_formation`, `evidence_of_good_standing`, and `ownership_information` are evaluated **independently** in CPU policy: each may be satisfied by an uploaded/Persona-backed document **or**, when Stripe business-registry verification passes with the required checks and provider metadata, by that verification alone for that document slot (see `BUSINESS_REGISTRY_CHECK` and `BUSINESS_OWNERSHIP` in `eea_requirements.rb`).

              '
          file:
            type: string
            description: "Base64 encoded image of the provided document, following the data-uri scheme i.e. data:image/[type];base64,[base_64_encoded_file_contents], with a minimum size of 200px x 200px \n\n*Maximum File Size: 24MB\n\n*Valid file types: .pdf, .jpeg, .jpg, .png, .heic, .tif"
          description:
            type: string
            description: A description describing the provided document. This field is required when `other` is provided as one of the purposes.
    ExchangeDetails:
      description: Exchange information for a currency conversion.
      properties:
        fixed_rate:
          description: The target exchange rate.
          type: string
        estimated_market_rate:
          description: The estimated achievable rate based on current market conditions.
          type: string
        traded_market_rate:
          description: The actual effective exchange rate achieved.
          type: string
        trade_at_market:
          description: Whether market-rate execution has been applied to this trade.
          type: boolean
        updated_at:
          description: Timestamp of the last exchange details update.
          type: string
          format: date-time
    Endorsement:
      required:
      - name
      - status
      properties:
        name:
          description: The endorsement type.
          $ref: '#/components/schemas/EndorsementType'
        status:
          type: string
          enum:
          - incomplete
          - approved
          - revoked
        additional_requirements:
          description: "This field is deprecated. See endorsement.missing instead. Additional requirements that need to be completed for obtaining the approval for the endorsement. \n\n1. `kyc_approval` and `tos_acceptance` are required for the `base` endorsement. \n2. `tos_v2_acceptance` is required for `sepa`. If `tos_v2_acceptance` is not completed, a ToS acceptance link can be retrieved for the current customer from the endpoint `/v0/customers/{customerID}/tos_acceptance_link`. To fulfill the `kyc_with_proof_of_address` requirement, a KYC link can be specifically requested for the current customer via the endpoint `/v0/customers/{customerID}/kyc_link`, with `endorsement=sepa` included in the query string"
          type: array
          minItems: 0
          items:
            $ref: '#/components/schemas/EndorsementRequirementEnum'
        requirements:
          description: 'This object aims to replace the `additional_requirements` attribute as it gives a more comprehensive view into what items are already `complete` or `pending` and which are `missing` or have `issues`.

            '
          type: object
          required:
          - complete
          - pending
          - missing
          - issues
          properties:
            complete:
              type: array
              description: an array of requirements that have already been completed for this endorsement.
              minItems: 0
              items:
                type: string
            pending:
              type: array
              description: an array of requirements that are pending review for this endorsement.
              minItems: 0
              items:
                type: string
            missing:
              type: object
              description: an object that will specify an indepth breakdown of what items are missing for this endorsement.
            issues:
              type: array
              description: 'An array of issues preventing this endorsement from being approved. Values in this array can be either a string such as `endorsement_not_available_in_customers_region` or an object that correlates the issue to a particular field such as `{ id_front_photo: "id_expired" }`

                '
              minItems: 0
              items:
                oneOf:
                - type: string
                - type: object
        future_requirements:
          description: 'An array of upcoming requirements that will become active on their effective_date.

            Each entry has the same structure as the current requirements object, plus an

            effective_date indicating when the requirement takes effect.

            '
          type: array
          minItems: 0
          items:
            type: object
            required:
            - effective_date
            - verification_stage
            - pending
            - missing
            - issues
            properties:
              effective_date:
                type: string
                format: date
              verification_stage:
                type: string
                description: The verification stage this future requirement is currently at.
                enum:
                - automatic_review
                - manual_review
                - post_review
                - complete
                - not_applicable
              pending:
                type: array
                items:
                  type: string
              missing:
                type: object
                nullable: true
              issues:
                type: array
                items:
                  oneOf:
                  - type: string
                  - type: object
    client_reference_id:
      description: A client-provided reference ID that uniquely identifies a resource in the client's system
      type: string
      minLength: 1
      maxLength: 256
    Customer:
      properties:
        id:
          $ref: '#/components/schemas/Id'
          readOnly: true
        first_name:
          type: string
          minLength: 1
          maxLength: 1024
        last_name:
          type: string
          minLength: 1
          maxLength: 1024
        email:
          type: string
          minLength: 1
          maxLength: 1024
        status:
          type: string
          $ref: '#/components/schemas/CustomerStatus'
        capabilities:
          deprecated: true
          type: object
          properties:
            payin_crypto:
              type: string
              $ref: '#/components/schemas/CustomerCapabilityState'
            payout_crypto:
              type: string
              $ref: '#/components/schemas/CustomerCapabilityState'
            payin_fiat:
              type: string
              $ref: '#/components/schemas/CustomerCapabilityState'
            payout_fiat:
              type: string
              $ref: '#/components/schemas/CustomerCapabilityState'
        future_requirements_due:
          deprecated: true
          readOnly: true
          description: Information about requirements that may be needed in the future for the customer (eg. enhanced KYC checks for high volume transactions etc.). Please consult our KYC guide on how to resolve each requirement.
          type: array
          minItems: 0
          items:
            type: string
            enum:
            - id_verification
        requirements_due:
          deprecated: true
          readOnly: true
          description: KYC requirements still needed to be completed. Please consult our KYC guide on how to resolve each requirement.
          type: array
          minItems: 0
          items:
            type: string
            enum:
            - external_account
            - id_verification
        created_at:
          readOnly: true
          type: string
          description: Time of creation of the customer
          format: date-time
        updated_at:
          readOnly: true
          type: string
          description: Time of last update of the customer
          format: date-time
        rejection_reasons:
          deprecated: true
          readOnly: true
          description: Reasons why a customer KYC was rejected
          type: array
          minItems: 0
          items:
            $ref: '#/components/schemas/RejectionReason'
        has_accepted_terms_of_service:
          readOnly: true
          description: Whether the customer has accepted the terms of service.
          type: boolean
        client_reference_id:
          description: Caller-provided identifier used to correlate this customer with your internal records. Returned in API and webhook responses.
          $ref: '#/components/schemas/client_reference_id'
        endorsements:
          readOnly: true
          description: A summary of whether the customer has received approvals to complete onboarding or use certain products/services offered by Bridge.
          type: array
          minItems: 0
          items:
            $ref: '#/components/schemas/Endorsement'
    ReturnInstructions:
      description: Optional instructions for where to send funds if the transfer is returned (e.g. refund). Only supported when the source payment rail is crypto. Memo is required when the source payment rail is Stellar.
      type: object
      required:
      - address
      properties:
        address:
          description: The crypto wallet address to send returned funds to. Must be valid for the source payment rail's chain.
          type: string
        memo:
          description: Memo to include with the return transaction. Required when the source payment rail is Stellar; optional for other memo-capable chains.
          type: string
    TransferSourcePaymentRail:
      type: string
      enum:
      - ach
      - wire
      - ach_push
      - ach_same_day
      - fednow
      - arbitrum
      - avalanche_c_chain
      - base
      - bre_b
      - co_bank_transfer
      - bridge_wallet
      - celo
      - ethereum
      - faster_payments
      - optimism
      - pix
      - polygon
      - sepa
      - solana
      - spei
      - stellar
      - swift
      - tempo
      - tron
    TransferDestination:
      required:
      - currency
   

# --- truncated at 32 KB (129 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bridge/refs/heads/main/openapi/bridge-customers-api-openapi.yml