Weavr Buyers API

Buyers are identities representing a business Once on-boarded, Buyers can create payment runs and pay their suppliers in your application.

OpenAPI Specification

weavr-buyers-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: v3
  title: Weavr Multi Product BackOffice Access Token Buyers API
  x-logo:
    url: https://storage.googleapis.com/weavr-cdn/weavr_logo-new.png
    backgroundColor: '#FFFFFF'
    altText: Weavr
  description: 'Weavr Multi Back Office API allows you, as an innovator, to perform various back office operations concerning

    identities and their instruments, without requiring the users to be logged in.


    A token is to be obtained through the `access_token` method, and this will allow relevant operations

    to be performed on behalf of this same identity.

    '
  contact:
    name: Weavr
    url: https://weavr.io
servers:
- description: Weavr Sandbox Environment
  url: https://sandbox.weavr.io/multi/backoffice
tags:
- name: Buyers
  description: 'Buyers are identities representing a business


    Once on-boarded, Buyers can create payment runs and pay their suppliers in your application.

    '
paths:
  /v1/buyers:
    post:
      description: "Buyers are identities representing a business. Once on-boarded, Buyers can create and manage their own instruments via your plugin. \n\nThe information provided must be accurate and will be passed on for KYB verification with our partner.\n"
      summary: Create a buyer
      operationId: buyerCreate
      security:
      - apiKey: []
      tags:
      - Buyers
      parameters:
      - in: header
        name: idempotency-ref
        description: A unique call reference generated by the caller that, taking into consideration the payload as well as the operation itself, helps avoid duplicate operations. Idempotency reference uniqueness is maintained for at least 24 hours.
        required: false
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - adminUser
              - company
              - acceptedTerms
              - ipAddress
              - supportedCurrencies
              properties:
                tag:
                  type: string
                  description: The tag field is a custom field that can be used to search and filter.
                  maxLength: 50
                  pattern: ^[a-zA-Z0-9_-]+$
                adminUser:
                  type: object
                  required:
                  - name
                  - surname
                  - email
                  - mobile
                  - companyPosition
                  description: 'The admin user needs to be a director or a legal representative of the buyer that is being onboarded - this user cannot be deactivated.


                    Admin users need to verify their email address and mobile number, as well as complete KYC as part of the Buyer''s due diligence process.

                    '
                  properties:
                    name:
                      type: string
                      maxLength: 50
                      description: The first name of the admin user.
                    surname:
                      type: string
                      maxLength: 50
                      description: The last name of the admin user.
                    email:
                      type: string
                      description: E-mail Address of the user
                      format: email
                    mobile:
                      type: object
                      description: Mobile number of the user
                      required:
                      - number
                      - countryCode
                      properties:
                        countryCode:
                          maxLength: 6
                          minLength: 1
                          pattern: ^[\+][0-9]{1,5}$
                          type: string
                          description: The country code of the Buyer's admin user mobile number (e.g. +44).
                        number:
                          maxLength: 15
                          minLength: 1
                          pattern: ^[0-9]+$
                          type: string
                          description: The mobile number of the Buyer's admin user - excluding country code.
                    companyPosition:
                      type: string
                      description: The company position of the Buyer Admin User.
                      enum:
                      - DIRECTOR
                      - AUTHORISED_REPRESENTATIVE
                    dateOfBirth:
                      type: object
                      required:
                      - year
                      - month
                      - day
                      properties:
                        year:
                          type: integer
                          format: int32
                          maximum: 2100
                          minimum: 1900
                        month:
                          type: integer
                          format: int32
                          maximum: 12
                          minimum: 1
                        day:
                          type: integer
                          format: int32
                          maximum: 31
                          minimum: 1
                company:
                  required:
                  - name
                  - type
                  - countryOfRegistration
                  type: object
                  description: The details associated with the company being on-boarded. The details provided need to match exactly with the details provided during KYB.
                  properties:
                    type:
                      type: string
                      description: Supported company types - if company type is not listed, please contact our support team to check if the company type can be supported.
                      enum:
                      - LLC
                      - PUBLIC_LIMITED_COMPANY
                      - LIMITED_LIABILITY_PARTNERSHIP
                    name:
                      maxLength: 100
                      type: string
                      description: The registered name of the company.
                    registrationNumber:
                      maxLength: 20
                      minLength: 1
                      type: string
                      description: The company registration number.
                    businessAddress:
                      description: The address where the business is based.
                      type: object
                      required:
                      - addressLine1
                      - city
                      - postCode
                      - country
                      properties:
                        addressLine1:
                          minLength: 1
                          maxLength: 150
                          type: string
                          description: The first line of the address.
                        addressLine2:
                          maxLength: 150
                          type: string
                          description: The second line of the address.
                        city:
                          minLength: 1
                          maxLength: 50
                          type: string
                          description: The city of the address.
                        postCode:
                          minLength: 1
                          maxLength: 10
                          pattern: ^[A-Za-z0-9 -]*$
                          type: string
                          description: The post cost associated with the address.
                        state:
                          maxLength: 50
                          type: string
                          description: The state of the address.
                        country:
                          maxLength: 2
                          minLength: 2
                          pattern: ^[A-Z]+$
                          type: string
                          description: The country of the address expressed in ISO 3166 alpha-2 format.
                    countryOfRegistration:
                      type: string
                      maxLength: 2
                      minLength: 2
                      pattern: ^[A-Z]+$
                      enum:
                      - GB
                      - AT
                      - BE
                      - BG
                      - HR
                      - CY
                      - CZ
                      - DK
                      - EE
                      - FI
                      - FR
                      - DE
                      - GI
                      - GR
                      - HU
                      - IS
                      - IE
                      - IT
                      - LV
                      - LI
                      - LT
                      - LU
                      - MT
                      - NL
                      - 'NO'
                      - PL
                      - PT
                      - RO
                      - SK
                      - SI
                      - ES
                      - SE
                      description: The country of company registration in ISO 3166 alpha-2.
                acceptedTerms:
                  type: boolean
                  description: Must be set to *true* to indicate that the buyer admin user has accepted the terms and conditions.
                ipAddress:
                  type: string
                  maxLength: 45
                  minLength: 5
                  description: The IP address of the buyer user doing the registration.
                supportedCurrencies:
                  type: array
                  minItems: 1
                  items:
                    type: string
                    description: The currency expressed in ISO-4217 code.
                    maxLength: 3
                    minLength: 3
                    enum:
                    - GBP
                    - EUR
      responses:
        '200':
          description: Success
          headers:
            request-ref:
              description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
              required: true
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                - required:
                  - id
                  - adminUser
                  - company
                  - acceptedTerms
                  - creationTimestamp
                  - supportedCurrencies
                  type: object
                  properties:
                    id:
                      type: string
                      pattern: ^[0-9]+$
                      description: Id of the buyer.
                    tag:
                      type: string
                      description: The tag field is a custom field that can be used to search and filter.
                      maxLength: 50
                      pattern: ^[a-zA-Z0-9_-]+$
                    adminUser:
                      required:
                      - id
                      - email
                      - name
                      - surname
                      - mobile
                      - active
                      - emailVerified
                      - mobileNumberVerified
                      - companyPosition
                      - roles
                      type: object
                      properties:
                        id:
                          allOf:
                          - type: string
                            pattern: ^[0-9]+$
                            description: The identifier of the user.
                          - description: The Corporate Id
                        name:
                          maxLength: 100
                          type: string
                          description: First name of the admin user.
                        surname:
                          maxLength: 100
                          type: string
                          description: Last name of the admin user.
                        email:
                          type: string
                          description: E-mail Address of the user
                          format: email
                        mobile:
                          type: object
                          description: Mobile number of the user
                          required:
                          - number
                          - countryCode
                          properties:
                            countryCode:
                              maxLength: 6
                              minLength: 1
                              pattern: ^[\+][0-9]{1,5}$
                              type: string
                              description: The country code of the Buyer's admin user mobile number (e.g. +44).
                            number:
                              maxLength: 15
                              minLength: 1
                              pattern: ^[0-9]+$
                              type: string
                              description: The mobile number of the Buyer's admin user - excluding country code.
                        companyPosition:
                          type: string
                          description: The company position of the Buyer Admin User.
                          enum:
                          - DIRECTOR
                          - AUTHORISED_REPRESENTATIVE
                        dateOfBirth:
                          description: Date of birth of the authorised user.
                          type: object
                          required:
                          - year
                          - month
                          - day
                          properties:
                            year:
                              type: integer
                              format: int32
                              maximum: 2100
                              minimum: 1900
                            month:
                              type: integer
                              format: int32
                              maximum: 12
                              minimum: 1
                            day:
                              type: integer
                              format: int32
                              maximum: 31
                              minimum: 1
                        active:
                          type: boolean
                          description: The state of the admin user. If false, then the user will not be able to log in.
                          readOnly: true
                        emailVerified:
                          type: boolean
                          description: Indicates if the admin user's email has been verified.
                          readOnly: true
                        mobileNumberVerified:
                          type: boolean
                          description: Indicates if the admin user's mobile number has been verified.
                          readOnly: true
                        roles:
                          type: array
                          minItems: 1
                          description: 'Roles define the level of access assigned to the user.


                            * `CREATOR`: Users assigned this role can create, view and update payment runs.

                            * `CONTROLLER`: Users assigned this role can view and link their company''s bank accounts as well as fund payment runs.

                            * `ADMIN`: Users assigned to this role can create a business and ensure that systems and processes are effectively managed.

                            '
                          items:
                            type: string
                            enum:
                            - ADMIN
                            - CREATOR
                            - CONTROLLER
                      description: The admin user of the Buyer Identity.
                    company:
                      allOf:
                      - required:
                        - name
                        - type
                        - countryOfRegistration
                        type: object
                        description: The details associated with the company being on-boarded. The details provided need to match exactly with the details provided during KYB.
                        properties:
                          type:
                            type: string
                            description: Supported company types - if company type is not listed, please contact our support team to check if the company type can be supported.
                            enum:
                            - LLC
                            - PUBLIC_LIMITED_COMPANY
                            - LIMITED_LIABILITY_PARTNERSHIP
                          name:
                            maxLength: 100
                            type: string
                            description: The registered name of the company.
                          registrationNumber:
                            maxLength: 20
                            minLength: 1
                            type: string
                            description: The company registration number.
                          businessAddress:
                            description: The address where the business is based.
                            type: object
                            required:
                            - addressLine1
                            - city
                            - postCode
                            - country
                            properties:
                              addressLine1:
                                minLength: 1
                                maxLength: 150
                                type: string
                                description: The first line of the address.
                              addressLine2:
                                maxLength: 150
                                type: string
                                description: The second line of the address.
                              city:
                                minLength: 1
                                maxLength: 50
                                type: string
                                description: The city of the address.
                              postCode:
                                minLength: 1
                                maxLength: 10
                                pattern: ^[A-Za-z0-9 -]*$
                                type: string
                                description: The post cost associated with the address.
                              state:
                                maxLength: 50
                                type: string
                                description: The state of the address.
                              country:
                                maxLength: 2
                                minLength: 2
                                pattern: ^[A-Z]+$
                                type: string
                                description: The country of the address expressed in ISO 3166 alpha-2 format.
                          countryOfRegistration:
                            type: string
                            maxLength: 2
                            minLength: 2
                            pattern: ^[A-Z]+$
                            enum:
                            - GB
                            - AT
                            - BE
                            - BG
                            - HR
                            - CY
                            - CZ
                            - DK
                            - EE
                            - FI
                            - FR
                            - DE
                            - GI
                            - GR
                            - HU
                            - IS
                            - IE
                            - IT
                            - LV
                            - LI
                            - LT
                            - LU
                            - MT
                            - NL
                            - 'NO'
                            - PL
                            - PT
                            - RO
                            - SK
                            - SI
                            - ES
                            - SE
                            description: The country of company registration in ISO 3166 alpha-2.
                      - type: object
                        properties:
                          registeredAddress:
                            required:
                            - addressLine1
                            - city
                            - country
                            type: object
                            description: The legal address of the company. This information is captured via the Due Diligence (KYB) process.
                            properties:
                              addressLine1:
                                type: string
                              addressLine2:
                                type: string
                              city:
                                type: string
                              postCode:
                                maxLength: 10
                                pattern: ^[A-Za-z0-9 -]*$
                                type: string
                              state:
                                maxLength: 50
                                type: string
                              country:
                                maxLength: 2
                                minLength: 2
                                pattern: ^[A-Z]+$
                                type: string
                                description: Country of the identity in ISO 3166 alpha-2 format.
                            readOnly: true
                          incorporatedOn:
                            description: The company's date of incorporation
                            type: object
                            required:
                            - year
                            - month
                            - day
                            properties:
                              year:
                                type: integer
                                format: int32
                                maximum: 2100
                                minimum: 1900
                              month:
                                type: integer
                                format: int32
                                maximum: 12
                                minimum: 1
                              day:
                                type: integer
                                format: int32
                                maximum: 31
                                minimum: 1
                            readOnly: true
                    acceptedTerms:
                      type: boolean
                      description: Must be set to *true* to indicate that the admin user has accepted the terms and conditions.
                    supportedCurrencies:
                      type: array
                      items:
                        type: object
                        required:
                        - currency
                        - status
                        properties:
                          currency:
                            type: string
                            description: The currency expressed in ISO-4217 code.
                            maxLength: 3
                            minLength: 3
                            enum:
                            - GBP
                            - EUR
                          status:
                            type: string
                            description: 'The status of the currency, which can include the following values


                              * `PENDING_KYB_APPROVAL`: The buyer’s KYB process is pending approval.

                              '
                            enum:
                            - PENDING_KYB_APPROVAL
                    creationTimestamp:
                      type: integer
                      format: int64
                      description: The time when the Buyer was created, expressed in Epoch timestamp using millisecond precision.
                      readOnly: true
                - type: object
                  properties:
                    ipAddress:
                      maxLength: 45
                      minLength: 5
                      type: string
                      description: The IP address of the user doing the registration.
        '400':
          description: Bad Request Error - Your request is invalid.
          headers:
            request-ref:
              description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
              required: true
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    maxLength: 255
                    type: string
                    description: When present helps to identify and fix the problem.
                  syntaxErrors:
                    type: object
                    description: Is returned as part of an HTTP error response whenever a syntax error is detected. A list of the fields together with their syntax error will be provided.
                    properties:
                      invalidFields:
                        type: array
                        items:
                          type: object
                          properties:
                            params:
                              type: array
                              items:
                                type: string
                            fieldName:
                              type: string
                            error:
                              type: string
                              enum:
                              - REQUIRED
                              - HAS_TEXT
                              - REQUIRES
                              - SIZE
                              - RANGE
                              - IN
                              - NOT_IN
                              - REGEX
                              - EXACTLY
                              - AT_LEAST
                              - AT_MOST
                              - ALL_OR_NONE
        '401':
          description: Unauthorized - Your credentials or access token are invalid.
          headers:
            request-ref:
              description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
              required: true
              schema:
                type: string
        '403':
          description: Forbidden - Access to the requested resource or action is forbidden.
          headers:
            request-ref:
              description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
              required: true
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                    enum:
                    - INSUFFICIENT_PERMISSIONS
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                    enum:
                    - ADMIN_EMAIL_NOT_UNIQUE
                    - CURRENCY_UNSUPPORTED
                    - COUNTRY_INVALID
                    - TERMS_NOT_ACCEPTED
                    - MOBILE_OR_COUNTRY_CODE_INVALID
                    - COUNTRY_UNSUPPORTED
                    - COMPANY_TYPE_UNSUPPORTED
                    - IDEMPOTENT_REQUEST_IN_PROGRESS
        '413':
          description: Content Too Large
          headers:
            request-ref:
              description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
              required: true
              schema:
                type: string
        '422':
          description: Unprocessable Entity
          headers:
            request-ref:
              description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
              required: true
              schema:
                type: string
        '429':
          description: Too many requests.
          headers:
            request-ref:
              description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
              required: true
              schema:
                type: string
            x-ratelimit-limit:
              description: 'Example: `20, 10;w=60, 20;w=3600, 200;w=86400`

                The first number (20) is the limit that has been exceeded.

                The remaining numbers are the limits that are in force, with ''w'' meaning ''window in seconds''. In this example `20;w=3600` was exceeded. 20 calls in 3600secs (1hr)

                '
              required: true
              schema:
                type: string
            x-ratelimit-reset:
              description: The number of seconds until the window is reset.
              required: true
              schema:
                minimum: 0
                type: integer
                format: int32
        '500':
          description: Internal Server Error - There is a problem with the server. Please try again later.
          headers:
            request-ref:
              description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
              required: true
              schema:
                type: string
        '503':
          description: Service Unavailable - We're temporarily offline for maintenance. Please try again later.
          headers:
            request-ref:
              description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
              required: true
              schema:
                type: string
        default:
          description: Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                  message:
                    type: string
    get:
      description: 'Retrieve the details of the buyer that the logged-in user belongs to.



        Required user role: `ADMIN`'
      summary: Get buyer details
      operationId: buyerGet
      tags:
      - Buyers
      responses:
        '200':
          description: Success
          headers:
            request-ref:
              description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
              required: true
              schema:
                type: string
          content:
            application/json:
              schema:
                allOf:
                - required:
                  - id
                  - adminUser
                  - company
                  - acceptedTerms
                  - creationTimestamp
                  - supportedCurrencies
                  type: object
                  properties:
                    id:
                      type: string
                      pattern: ^[0-9]+$
                      description: Id of the buyer.
                    tag:
                      t

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