Solvimon customers API

The customers API from Solvimon — 10 operation(s) for customers.

OpenAPI Specification

solvimon-customers-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Configuration alertRules customers API
  version: 1.0.0
servers:
- url: https://test.api.solvimon.com
  description: The TEST environment for our API
- url: https://api.solvimon.com
  description: The live environment for our API
tags:
- name: customers
paths:
  /v{version}/customers:
    get:
      operationId: getCustomers
      summary: Get a list of all customers
      description: Requires the CUSTOMER.VIEW permission.
      tags:
      - customers
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: limit
        in: query
        description: The amount of records shown in the list
        required: false
        schema:
          type: integer
      - name: page
        in: query
        description: The page which is going to be shown
        required: false
        schema:
          type: integer
      - name: order_by
        in: query
        description: The parameter by which the response is ordered.
        required: false
        schema:
          type: string
      - name: custom_field
        in: query
        description: Filter the response by a custom field value.
        required: false
        schema:
          type: string
      - name: order_direction
        in: query
        description: The order direction by which the response is ordered.
        required: false
        schema:
          type: string
      - name: reference
        in: query
        description: The reference by which the resource will be filtered.
        required: false
        schema:
          type: string
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerResponseWrapper'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    post:
      operationId: postCustomers
      summary: Create a customer
      description: Requires the CUSTOMER.CREATE permission.
      tags:
      - customers
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerCreateRequest'
    put:
      operationId: putCustomers
      summary: Update or create a customer (upsert)
      description: Requires the CUSTOMER.CREATE, CUSTOMER.UPDATE or CUSTOMER.STATUS.DRAFT.UPDATE permission.
      tags:
      - customers
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: identifier_field
        in: query
        description: Which field to use to identify whether the resource exists or not
        required: false
        schema:
          type: string
      - name: custom_field_reference
        in: query
        description: Which custom field to use to identify whether the resource exists or not
        required: false
        schema:
          type: string
      - name: field_actions
        in: query
        description: The list of actions for specific fields.
        required: false
        schema:
          type: object
          additionalProperties:
            type: string
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerCreateRequest'
  /v{version}/customers/{resourceIdOrReference}:
    get:
      operationId: getCustomersByResourceIdOrReference
      summary: Get a customer by ID or reference
      description: Requires the CUSTOMER.VIEW permission.
      tags:
      - customers
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceIdOrReference
        in: path
        description: The ID or reference of the resource.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    delete:
      operationId: deleteCustomersByResourceIdOrReference
      summary: Delete a customer by ID or reference
      description: Requires the CUSTOMER.DELETE or CUSTOMER.STATUS.DRAFT.DELETE permission.
      tags:
      - customers
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceIdOrReference
        in: path
        description: The ID or reference of the resource.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
    patch:
      operationId: patchCustomersByResourceIdOrReference
      summary: Update a customer by ID or reference
      description: Requires the CUSTOMER.UPDATE or CUSTOMER.STATUS.DRAFT.UPDATE permission.
      tags:
      - customers
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceIdOrReference
        in: path
        description: The ID or reference of the resource.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerUpdateRequest'
  /v{version}/customers/{resourceIdOrReference}/entitlements:
    get:
      operationId: getCustomersByResourceIdOrReferenceEntitlements
      summary: Get a customer its entitlements
      description: Requires the CUSTOMER.VIEW permission.
      tags:
      - customers
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceIdOrReference
        in: path
        description: The ID or reference of the resource.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Entitlements'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /v{version}/customers/{resourceIdOrReference}/activate:
    post:
      operationId: postCustomersByResourceIdOrReferenceActivate
      summary: Activate a customer
      description: Requires the CUSTOMER.UPDATE or CUSTOMER.STATUS.DRAFT.UPDATE permission.
      tags:
      - customers
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceIdOrReference
        in: path
        description: The ID or reference of the resource.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /v{version}/customers/{resourceIdOrReference}/deprecate:
    post:
      operationId: postCustomersByResourceIdOrReferenceDeprecate
      summary: Deprecate a customer
      description: Requires the CUSTOMER.UPDATE permission.
      tags:
      - customers
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceIdOrReference
        in: path
        description: The ID or reference of the resource.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /v{version}/customers/{resourceIdOrReference}/archive:
    post:
      operationId: postCustomersByResourceIdOrReferenceArchive
      summary: Archive a customer
      description: Requires the CUSTOMER.UPDATE permission.
      tags:
      - customers
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceIdOrReference
        in: path
        description: The ID or reference of the resource.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /v{version}/customers/{resourceIdOrReference}/forget:
    post:
      operationId: postCustomersByResourceIdOrReferenceForget
      summary: Forget a customer
      description: Requires the CUSTOMER.UPDATE permission.
      tags:
      - customers
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceIdOrReference
        in: path
        description: The ID or reference of the resource.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Customer'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
  /v{version}/customers/{resourceIdOrReference}/wallets/balance:
    post:
      operationId: postCustomersByResourceIdOrReferenceWalletsBalance
      summary: Get the balance of all wallets of a customer
      description: Requires the CUSTOMER.VIEW or WALLET.VIEW permission.
      tags:
      - customers
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: resourceIdOrReference
        in: path
        description: The ID or reference of the resource.
        required: true
        schema:
          type: string
          default: ''
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerWalletBalancesStatus'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WalletBalanceStatusRequestCreateRequest'
  /v{version}/customers/search:
    post:
      operationId: postCustomersSearch
      summary: Search customers
      description: Requires the CUSTOMER.VIEW permission.
      tags:
      - customers
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: expand[]
        in: query
        description: The id fields of the resources that are going to be expanded.
        required: false
        schema:
          type: array
          items:
            type: string
      - name: limit
        in: query
        description: The amount of records shown in the list
        required: false
        schema:
          type: integer
      - name: page
        in: query
        description: The page which is going to be shown
        required: false
        schema:
          type: integer
      - name: order_by
        in: query
        description: The parameter by which the response is ordered. default = name
        required: false
        schema:
          type: string
      - name: order_direction
        in: query
        description: The parameter for the response ordering direction (asc, desc) default asc
        required: false
        schema:
          type: string
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerResponseWrapper'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchCreateRequest'
  /v{version}/customers/validate-tax-id:
    post:
      operationId: postCustomersValidateTaxId
      summary: Validate tax id values
      description: Requires the CUSTOMER.CREATE permission.
      tags:
      - customers
      parameters:
      - name: version
        in: path
        description: version
        required: true
        schema:
          type: string
          default: '1'
      - name: X-API-KEY
        in: header
        required: true
        schema:
          type: string
      - name: x-platform-id
        in: header
        description: Platform ID.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxIdValidationWrapper'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomerCreateRequest'
components:
  schemas:
    IndividualCreateRequest:
      type: object
      properties:
        name:
          $ref: '#/components/schemas/Name'
        residential_address:
          $ref: '#/components/schemas/Address'
      title: IndividualCreateRequest
    CustomerWalletBalanceStatus:
      type: object
      properties:
        wallet_id:
          type:
          - string
          - 'null'
        wallet_balance:
          oneOf:
          - $ref: '#/components/schemas/WalletBalanceStatus'
          - type: 'null'
      title: CustomerWalletBalanceStatus
    TaxIdValidationValid:
      type: string
      enum:
      - VALID
      - NOT_VALID
      - UNKNOWN
      title: TaxIdValidationValid
    TaxIdValidation:
      type: object
      properties:
        id:
          type: string
        validation_date:
          type: string
        source:
          type: string
        valid:
          $ref: '#/components/schemas/TaxIdValidationValid'
        message:
          type:
          - string
          - 'null'
      title: TaxIdValidation
    LinkedIntegration:
      type: object
      properties:
        id:
          type: string
        link_details:
          type: array
          items:
            $ref: '#/components/schemas/LinkDetail'
      title: LinkedIntegration
    WalletBalanceStatus:
      type: object
      properties:
        balance:
          oneOf:
          - $ref: '#/components/schemas/WalletBalanceValue'
          - type: 'null'
        reserved_balance:
          oneOf:
          - $ref: '#/components/schemas/WalletBalanceValue'
          - type: 'null'
        open_balance:
          oneOf:
          - $ref: '#/components/schemas/WalletBalanceValue'
          - type: 'null'
        balance_at:
          type:
          - string
          - 'null'
      title: WalletBalanceStatus
    IntegrationDetails:
      type: object
      properties:
        id:
          type:
          - string
          - 'null'
        reference:
          type:
          - string
          - 'null'
        payment_gateway_variant:
          $ref: '#/components/schemas/IntegrationDetailsPaymentGatewayVariant'
        adyen:
          $ref: '#/components/schemas/AdyenIntegrationDetails'
        stripe:
          $ref: '#/components/schemas/StripeIntegrationDetails'
      title: IntegrationDetails
    PricingPlanSubscriptionSelectorRuleType:
      type: string
      enum:
      - EQUALS
      - NOT_EQUALS
      - IN
      - NOT_IN
      - GREATER_THAN
      - GREATER_THAN_OR_EQUALS
      - LESS_THAN
      - LESS_THAN_OR_EQUALS
      - EMPTY
      - NOT_EMPTY
      - CONTAINS
      - NOT_CONTAINS
      title: PricingPlanSubscriptionSelectorRuleType
    PricingPlanSubscriptionSelectorDataField:
      type: string
      enum:
      - BILLING_ENTITY_REGISTERED_ADDRESS_COUNTRY
      - PRICING_PLAN_REFERENCE
      title: PricingPlanSubscriptionSelectorDataField
    PricingPlanSubscriptionSelectorFilterField:
      type: string
      enum:
      - BILLING_ENTITY_REGISTERED_ADDRESS_COUNTRY
      - PRICING_PLAN_REFERENCE
      title: PricingPlanSubscriptionSelectorFilterField
    TaxRegistration:
      type: object
      properties:
        id:
          type:
          - string
          - 'null'
          description: The id of this tax registration
        description:
          type:
          - string
          - 'null'
          description: The description of this tax registration
        tax_id:
          type:
          - string
          - 'null'
          description: The tax id of this tax registration, e.g. a TIN, VAT id or other tax number
        tax_ids:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/TaxId'
          description: Tax IDs used for tax purposes of the tax registration, e.g. TINs, VAT ids, or other tax number
        registration_number:
          type:
          - string
          - 'null'
          description: The registration number of this tax registration, e.g. a company registration number
        registered_address:
          $ref: '#/components/schemas/Address'
          description: The address of this tax registration, if different from the billing entity. Currently, only the address will be used for tax calculations
      title: TaxRegistration
    PricingPlanSubscriptionSelector:
      type: object
      properties:
        data:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/PricingPlanSubscriptionSelectorData'
        rules:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/PricingPlanSubscriptionSelectorRule'
        filters:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/PricingPlanSubscriptionSelectorFilter'
        fallback:
          oneOf:
          - $ref: '#/components/schemas/PricingPlanSubscriptionSelectorFallback'
          - type: 'null'
          description: The fallback logic what to do when no subscription is found. By default it is LATEST
      title: PricingPlanSubscriptionSelector
    ApiErrorType:
      type: string
      enum:
      - API_ERROR
      - INVALID_REQUEST
      title: ApiErrorType
    CustomerSellerDetailsUpdateRequest:
      type: object
 

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