Weavr Buyers API
Buyers are identities representing a business Once on-boarded, Buyers can create payment runs and pay their suppliers in your application.
Buyers are identities representing a business Once on-boarded, Buyers can create payment runs and pay their suppliers in your application.
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