Download OpenAPI specification:Download
Weavr Payment Run Plug-in API provides a simple and flexible way for Embedders to add payment execution capabilities in their application.
By integrating Weavr Payment Run plug-in API in your application, you can embed banking and payment capabilities within your app to boost productivity for your users in a seamless experience.
Each request to the API must include an api_key
that represents your account. You can obtain an API Key by registering for a Embedder account here.
Almost all endpoints require a secondary authentication token auth_token
that represents the user for whom the request is being executed.
To help you get started with your integration, you can download the Postman collection here. The collection includes the steps you’ll need to follow to integrate Embedded Payment Run within your app.
The collection makes use of environment variables to pre-fill details associated with your Sandbox account, such as your account’s API Key. You can download your Sandbox Account environment file from the Sandbox Portal.
Authenticate a user with the email
and password
that they provided when registering.
Given that the user credentials are correct, this returns a token
that can then be used to authorise
other secured operations. In case the password is expired, a temporary token
is returned, which can be used
solely for updating the password.
The token returned is valid for 5 minutes from last activity.
OK
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
The user's password has expired. Use the returned temporary token to update their password via the '/passwords/update' endpoint.
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "email": "user@example.com",
- "password": {
- "value": "pa$$word"
}
}
{- "token": "string",
- "tokenType": "AUTH",
- "identity": {
- "type": "BUYER",
- "id": "string"
}, - "credentials": {
- "type": "ADMIN",
- "id": "string"
}
}
Logs out the user and terminates the session identified by the
auth_token
in the Authorization Header.
Success - No Content.
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Create a new password for the user identified by the user_id
path parameter.
required | object The user's password or passcode used to log in a user. Passwords must be:
For non-PCI compliant integrations, the password submitted must be tokenised. |
OK
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "password": {
- "value": "pa$$word"
}
}
{- "passwordInfo": {
- "buyerId": "string",
- "expiryDate": 0
}, - "token": "string"
}
Update the password for the logged-in user.
required | object The user's password or passcode used to log in a user. Passwords must be:
For non-PCI compliant integrations, the password submitted must be tokenised. |
required | object The user's password or passcode used to log in a user. Passwords must be:
For non-PCI compliant integrations, the password submitted must be tokenised. |
OK
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "oldPassword": {
- "value": "pa$$word"
}, - "newPassword": {
- "value": "pa$$word"
}
}
{- "passwordInfo": {
- "buyerId": "string",
- "expiryDate": 0
}, - "token": "string"
}
Check that a password adheres to all complexity checks.
required | object The user's password or passcode used to log in a user. Passwords must be:
For non-PCI compliant integrations, the password submitted must be tokenised. |
Success - No Content.
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "password": {
- "value": "pa$$word"
}
}
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Initiate the lost password process.
If the email address provided is associated with an active user, an email will be sent, containing a URL that redirects the user to change their password.
The URL contains request parameters for all of the parameters required to change the password for the user via the /passwords/lost_password/resume
POST endpoint.
Success - No Content.
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "email": "user@example.com"
}
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
This is the second and final step in updating the password of a user who forgot their password.
OK
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "nonce": "string",
- "email": "user@example.com",
- "newPassword": {
- "value": "pa$$word"
}
}
{- "token": "string"
}
This is the first step in enrolling the logged-in user's mobile device, where a one-time password is sent to the device.
Note that on the Sandbox Environment, text messages are not sent and the one-time-password is always "123456".
Success - No Content.
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
The second step in enrolling the logged-in user (root or authorised user) to use one-time-passwords to enable verification of transactions.
Note that on the Sandbox Environment, text messages are not sent and the verificationCode
is always set to "123456".
Success - No Content.
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "verificationCode": "string"
}
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Initiates the step-up token process by sending an SMS with an one-time-password to a device belonging to the logged-in user that was previously enrolled through /authentication_factors/otp/{channel}
endpoint.
This process is required for endpoints that require a step-up token to complete the call.
Note that on the Sandbox Environment, text messages are not sent and the one-time-password is always "123456".
Success - No Content.
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Conflict
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Completes the verification process for a step up token.
Note that on the Sandbox Environment, text messages are not sent and the verificationCode
is always "123456".
Success - No Content.
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Conflict
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "verificationCode": "string"
}
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
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 and manage their own instruments via your plugin.
The information provided must be accurate and will be passed on for KYB verification with our partner.
Success
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "tag": "string",
- "adminUser": {
- "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "companyPosition": "DIRECTOR",
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}
}, - "company": {
- "type": "SOLE_TRADER",
- "name": "string",
- "registrationNumber": "string",
- "businessAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "countryOfRegistration": "GB"
}, - "acceptedTerms": true,
- "ipAddress": "string",
- "baseCurrency": "GBP",
- "supportedCurrencies": [
- "GBP"
]
}
{- "id": "string",
- "tag": "string",
- "adminUser": {
- "id": "string",
- "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "companyPosition": "DIRECTOR",
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}, - "active": true,
- "emailVerified": true,
- "mobileNumberVerified": true,
- "roles": [
- "ADMIN"
]
}, - "company": {
- "type": "SOLE_TRADER",
- "name": "string",
- "registrationNumber": "string",
- "businessAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "countryOfRegistration": "GB",
- "registeredAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "incorporatedOn": {
- "year": 1900,
- "month": 1,
- "day": 1
}
}, - "acceptedTerms": true,
- "baseCurrency": "GBP",
- "supportedCurrencies": [
- "GBP"
], - "creationTimestamp": 0
}
Retrieve the details of the buyer that the logged-in user belongs to.
Required user role: ADMIN
Success
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "id": "string",
- "tag": "string",
- "adminUser": {
- "id": "string",
- "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "companyPosition": "DIRECTOR",
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}, - "active": true,
- "emailVerified": true,
- "mobileNumberVerified": true,
- "roles": [
- "ADMIN"
]
}, - "company": {
- "type": "SOLE_TRADER",
- "name": "string",
- "registrationNumber": "string",
- "businessAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "countryOfRegistration": "GB",
- "registeredAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "incorporatedOn": {
- "year": 1900,
- "month": 1,
- "day": 1
}
}, - "acceptedTerms": true,
- "baseCurrency": "GBP",
- "supportedCurrencies": [
- "GBP"
], - "creationTimestamp": 0,
- "ipAddress": "string"
}
Update the details of the buyer that the logged-in user belongs to.
The following Buyer details are verified during due diligence (KYB) and cannot be updated via the API once the Buyer has been verified:
If these details need to be changed after due diligence is completed, please contact Customer Support to restart the Due Diligence process.
Required user role: ADMIN
Created
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "tag": "string",
- "company": {
- "businessAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}
}, - "adminUser": {
- "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}, - "roles": [
- "ADMIN"
]
}, - "baseCurrency": "GBP",
- "resetMobileCounter": true
}
{- "id": "string",
- "tag": "string",
- "adminUser": {
- "id": "string",
- "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "companyPosition": "DIRECTOR",
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}, - "active": true,
- "emailVerified": true,
- "mobileNumberVerified": true,
- "roles": [
- "ADMIN"
]
}, - "company": {
- "type": "SOLE_TRADER",
- "name": "string",
- "registrationNumber": "string",
- "businessAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "countryOfRegistration": "GB",
- "registeredAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "incorporatedOn": {
- "year": 1900,
- "month": 1,
- "day": 1
}
}, - "acceptedTerms": true,
- "baseCurrency": "GBP",
- "supportedCurrencies": [
- "GBP"
], - "creationTimestamp": 0
}
The first step in verifying a admin user's email. The admin user whose email address is to be verified is sent an email containing a randomly generated code.
This code must then be provided in the buyerAdminUserEmailVerify operation to verify the admin user's email address.
Note that on the Sandbox Environment, the verificationCode
is always set to "123456".
Success - No Content.
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "email": "user@example.com"
}
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
The second step in verifying the admin user's email. The randomly generated code sent to the admin user via email, using the buyerAdminUserEmailVerificationCodeSend operation, is submitted here to verify the admin user's email.
This is needed as part of the verification process for basic due diligence.
Note that on the Sandbox Environment, the verificationCode
is always set to "123456".
Success - No Content.
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "email": "user@example.com",
- "verificationCode": "string"
}
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Buyers need to complete due diligence (KYB) before they can create payment runs and pay their suppliers.
This operation initiates the due diligence process for the buyer that the logged-in user belongs to.
Due Diligence is handled by a KYB provider - you will need to embed the KYB UI Component in your application so that the buyer will be able to perform the KYB process.
To initialise the KYB UI Component, you need a reference
that is given you in the response of this operation.
Required user role: ADMIN
Success
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "reference": "string"
}
Returns the KYB status for the buyer that the logged-in user belongs to.
Required user role: ADMIN
Success
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "kybStatus": "NOT_STARTED",
- "ongoingKybStatus": "NOT_STARTED"
}
Buyers can invite authorised users to access their account. Once on-boarded, authorised users can transact on behalf of the identity they are on-boarded with.
Authorised users are typically employees who have access to company's banking accounts.
Note that /users
endpoints are to be used only for performing operations related to authorised users - getting or updating the details of admin users is to be done via /buyers
endpoints.
Creates a user that belongs to the buyer that the logged-in user belongs to.
Once on-boarded, users have access and manage the buyer's payment runs.
Users are assigned roles
which limits the level of access they have and what they can do on behalf of the buyer.
Required user role: ADMIN
Success
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}, - "roles": [
- "CREATOR"
]
}
{- "id": "string",
- "buyerId": "string",
- "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "active": true,
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}, - "roles": [
- "CREATOR"
]
}
Fetches all authorised users associated with the buyer that the logged-in user belongs to.
Required user role: ADMIN
Success
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "users": [
- {
- "id": "string",
- "buyerId": "string",
- "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "active": true,
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}, - "roles": [
- "CREATOR"
]
}
], - "count": 0,
- "responseCount": 0
}
Retrieves the user identified by the user_id
path parameter.
Required user role: ADMIN
Success
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "id": "string",
- "buyerId": "string",
- "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "active": true,
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}, - "roles": [
- "CREATOR"
]
}
Update the details of a user identified by the user_id
in the the path parameter.
Only the fields that are specified in the request body will be updated. All other fields will remain unchanged.
When patching a mobile number, the new mobile number should be enrolled for Additional Factors.
Required user role: ADMIN
Success
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}, - "roles": [
- "CREATOR"
]
}
{- "id": "string",
- "buyerId": "string",
- "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "active": true,
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}, - "roles": [
- "CREATOR"
]
}
Activate the user identified by the user_id
path parameter.
By default, any new users created will be automatically activated. This operation needs to be used only if the user was previously de-activated using the userDeactivate operation, or if the user was de-activated automatically after multiple incorrect login attempts.
Required user role: ADMIN
Success - No Content.
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
De-activate the user identified by the user_id
path parameter.
Deactivated users cannot log in or execute any operations with their credentials.
This operations is not final and a user can be re-activated using the userActivate operation. Note that another active user would need to log in so as to re-activate the de-activated user.
Required user role: ADMIN
Success - No Content.
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Once a user is created using the userCreate operation, the user needs to setup his/her password.
An invitation needs to be sent to the user in order to be able to set up the password for the first time. The invitation email, which remains valid for 1 month, will contain a URL having all information required to setup the password via the userInviteConsume.
Required user role: ADMIN
Success - No Content.
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Check if a user's invite is still valid. This operation is useful to avoid having the user fill in a form only to be held by a validation issue (eg. expired invite).
Success - No Content.
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "inviteCode": "string"
}
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Consumes an invitation previously sent to the user via userInviteSend. This is needed so that the invited user sets up the password.
Note that on the Sandbox Environment, the inviteCode
is always set to "123456".
Success
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "inviteCode": "string",
- "password": {
- "value": "pa$$word"
}
}
{- "token": "string"
}
A Payment run contains a list of supplier payments. A Payment run can be
CREATOR
role CONTROLLER
roleCONTROLLER
roleNote that the Controller user must have their mobile device enrolled to SCA.
Before a payment run can be executed, it must be funded. Users with the CONTROLLER
role must link their company's bank account(s) that are represented as Linked Accounts, which than can be used as the funding source for a payment run.
Depending on the bank's constraints it may not be possible to deposit the total amount of funds required for a payment run, in which case the payment run will be automatically split into funding groups. All funding groups must be funded and executed for the payment run to be marked as completed.
Note that even if the payment is created successfully, you still need to check its status in order to determine if it is completed
orfailed
.
Create a new payment run containing a list of outstanding supplier payments.
Required user role: CREATOR
OK
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "paymentRunRef": "94fddfb2-297d-423d-9157-4200b7beb834",
- "tag": "string",
- "description": "September payment run 01",
- "payments": [
- {
- "externalRef": "c99cd66c-82fc-4a01-977b-61a2f5a247a1",
- "paymentRef": "c99cd66c-82fc-4a01-977b-61a2f5a247a1",
- "paymentAmount": {
- "currency": "GBP",
- "amount": 1
}, - "reference": "string",
- "supplier": {
- "name": "string",
- "address": "string",
- "bankName": "string",
- "bankAddress": "string",
- "bankCountry": "st",
- "bankAccountDetails": {
- "accountNumber": "stringst",
- "sortCode": "string"
}
}
}
]
}
{- "id": "string",
- "paymentRunRef": "94fddfb2-297d-423d-9157-4200b7beb834",
- "tag": "string",
- "description": "September payment run 01",
- "createdBy": "110747174434373672",
- "status": "PENDING_CONFIRMATION",
- "statusReason": "string",
- "payments": [
- {
- "id": "string",
- "status": "CANCELLED",
- "externalRef": "c99cd66c-82fc-4a01-977b-61a2f5a247a1",
- "paymentRef": "c99cd66c-82fc-4a01-977b-61a2f5a247a1",
- "paymentAmount": {
- "currency": "GBP",
- "amount": 1
}, - "reference": "string",
- "supplier": {
- "name": "string",
- "address": "string",
- "bankName": "string",
- "bankAddress": "string",
- "bankCountry": "st",
- "bankAccountDetails": {
- "accountNumber": "stringst",
- "sortCode": "string"
}
}
}
], - "createdAt": "2019-08-24T14:15:22Z"
}
Retrieve the list of payment runs belonging to the buyer that the logged-in user belongs to.
Required user roles: CONTROLLER
OR CREATOR
OK
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "count": 10,
- "responseCount": 100,
- "paymentRuns": [
- {
- "id": "string",
- "paymentRunRef": "94fddfb2-297d-423d-9157-4200b7beb834",
- "tag": "string",
- "description": "September payment run 01",
- "createdBy": "110747174434373672",
- "status": "PENDING_CONFIRMATION",
- "statusReason": "string",
- "payments": [
- {
- "id": "string",
- "status": "CANCELLED",
- "externalRef": "c99cd66c-82fc-4a01-977b-61a2f5a247a1",
- "paymentRef": "c99cd66c-82fc-4a01-977b-61a2f5a247a1",
- "paymentAmount": {
- "currency": "GBP",
- "amount": 1
}, - "reference": "string",
- "supplier": {
- "name": "string",
- "address": "string",
- "bankName": "string",
- "bankAddress": "string",
- "bankCountry": "st",
- "bankAccountDetails": {
- "accountNumber": "stringst",
- "sortCode": "string"
}
}
}
], - "createdAt": "2019-08-24T14:15:22Z"
}
]
}
Retrieve a payment run belonging to the buyer that the logged-in user belongs to.
Required user roles: CONTROLLER
OR CREATOR
OK
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "id": "string",
- "paymentRunRef": "94fddfb2-297d-423d-9157-4200b7beb834",
- "tag": "string",
- "description": "September payment run 01",
- "createdBy": "110747174434373672",
- "status": "PENDING_CONFIRMATION",
- "statusReason": "string",
- "payments": [
- {
- "id": "string",
- "status": "CANCELLED",
- "externalRef": "c99cd66c-82fc-4a01-977b-61a2f5a247a1",
- "paymentRef": "c99cd66c-82fc-4a01-977b-61a2f5a247a1",
- "paymentAmount": {
- "currency": "GBP",
- "amount": 1
}, - "reference": "string",
- "supplier": {
- "name": "string",
- "address": "string",
- "bankName": "string",
- "bankAddress": "string",
- "bankCountry": "st",
- "bankAccountDetails": {
- "accountNumber": "stringst",
- "sortCode": "string"
}
}
}
], - "createdAt": "2019-08-24T14:15:22Z"
}
Confirm that a payment run can be executed.
Required user role: CONTROLLER
Success - No Content.
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Conflict
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Start the the funding process of a payment run.
Specify the funding source of the payment run by providing an id to an already linked account.
Depending on the maximum payment amount constraints imposed by the bank that is providing the account, the payment run may be split in 2 or more groups. Note that you'll need to complete a funding process for each instruction returned.
Required user role: CONTROLLER
OK
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "count": 10,
- "responseCount": 100,
- "fundingInstructions": [
- {
- "reference": "string",
- "totalAmount": {
- "currency": "GBP",
- "amount": 454321
}, - "status": "PENDING_FUNDING",
- "fundingDate": "2019-08-24T14:15:22Z",
- "payments": [
- {
- "id": "string",
- "status": "CANCELLED",
- "externalRef": "c99cd66c-82fc-4a01-977b-61a2f5a247a1",
- "paymentRef": "c99cd66c-82fc-4a01-977b-61a2f5a247a1",
- "paymentAmount": {
- "currency": "GBP",
- "amount": 1
}, - "reference": "string",
- "supplier": {
- "name": "string",
- "address": "string",
- "bankName": "string",
- "bankAddress": "string",
- "bankCountry": "st",
- "bankAccountDetails": {
- "accountNumber": "stringst",
- "sortCode": "string"
}
}
}
]
}
]
}
Cancel a payment run.
Note that only payment runs which haven't started executing and whose status is PENDING_CONFIRMATION
can be cancelled.
Required user roles: CONTROLLER
OR CREATOR
Success - No Content.
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Linked accounts represent bank accounts that the buyer has with other banks. Once set up, they are used to fund payment runs.
Retrieves the linked accounts belonging to the buyer that the logged-in user belongs to.
Required user role: CONTROLLER
OK
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "linkedAccounts": [
- {
- "id": "652d25b73541d8084a88a38d",
- "accountIdentification": {
- "accountNumber": "stringst",
- "sortCode": "string"
}, - "currency": "GBP",
- "institution": {
- "id": "string",
- "displayName": "string",
- "countries": [
- "GB"
], - "images": {
- "icon": "string",
- "logo": "string"
}, - "info": {
- "loginUrl": "string",
- "helplinePhoneNumber": "string"
}
}, - "consent": {
- "expiresAt": "2019-08-24T14:15:22Z",
- "expiresIn": 0,
- "status": "ACTIVE"
}, - "status": "LINKED"
}
], - "count": 0,
- "responseCount": 0
}
Retrieves a linked account of the buyer that the logged-in user belongs to.
Required user role: CONTROLLER
OK
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "id": "652d25b73541d8084a88a38d",
- "accountIdentification": {
- "accountNumber": "stringst",
- "sortCode": "string"
}, - "currency": "GBP",
- "institution": {
- "id": "string",
- "displayName": "string",
- "countries": [
- "GB"
], - "images": {
- "icon": "string",
- "logo": "string"
}, - "info": {
- "loginUrl": "string",
- "helplinePhoneNumber": "string"
}
}, - "consent": {
- "expiresAt": "2019-08-24T14:15:22Z",
- "expiresIn": 0,
- "status": "ACTIVE"
}, - "status": "LINKED"
}
Delete a linked account.
Required user role: CONTROLLER
Success - No Content.
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Unlinks a linked account identified by the linked_account_id
.
This action is not reversible and if the buyer wants to use this linked account again to fund payment runs, they will have to re-link the account. More information on how to link an account can be found here.
Details of an unlinked account, can still be retrieved via the Get linked accounts and Get linked account endpoints.
Required user role: CONTROLLER
OK
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "id": "652d25b73541d8084a88a38d",
- "accountIdentification": {
- "accountNumber": "stringst",
- "sortCode": "string"
}, - "currency": "GBP",
- "institution": {
- "id": "string",
- "displayName": "string",
- "countries": [
- "GB"
], - "images": {
- "icon": "string",
- "logo": "string"
}, - "info": {
- "loginUrl": "string",
- "helplinePhoneNumber": "string"
}
}, - "consent": {
- "expiresAt": "2019-08-24T14:15:22Z",
- "expiresIn": 0,
- "status": "ACTIVE"
}, - "status": "LINKED"
}
Simulators enable you to trigger processes in Sandbox that in Production are triggered from an external action rather than from your application. this way you can test scenarios that otherwise you would only encounter in the Live environment.
Note: These endpoints are only available on Sandbox and won’t work in the Live environment.
Simulate funding a payment run using a linked account.
This endpoint will only function in Sandbox and should not be used in the Live environment.
Success
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Conflict
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Simulate linking an account via Open Banking to fund payments within a payment run.
This endpoint will only function in Sandbox and should not be used in the Live environment.
OK
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Conflict
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "institutionId": "string",
- "buyerId": "string",
- "createdBy": "string",
- "accountIdentification": {
- "accountNumber": "stringst",
- "sortCode": "string"
}
}
{- "id": "652d25b73541d8084a88a38d",
- "accountIdentification": {
- "accountNumber": "stringst",
- "sortCode": "string"
}, - "currency": "GBP",
- "institution": {
- "id": "string",
- "displayName": "string",
- "countries": [
- "GB"
], - "images": {
- "icon": "string",
- "logo": "string"
}, - "info": {
- "loginUrl": "string",
- "helplinePhoneNumber": "string"
}
}, - "consent": {
- "expiresAt": "2019-08-24T14:15:22Z",
- "expiresIn": 0,
- "status": "ACTIVE"
}, - "status": "LINKED",
- "createdAt": "string"
}
Simulates due diligence (KYB) for Buyers.
This endpoint will only function in Sandbox and should not be used in the Live environment.
Success - No Content.
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Simulates issuing the SCA challenge for a payment run.
No Content
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Simulates verifying the SCA challenge for a payment run.
No Content
Bad Request Error - Your request is invalid.
Unauthorized - Your credentials or access token are invalid.
Forbidden - Access to the requested resource or action is forbidden.
Not found - The requested resource couldn't be found.
Conflict
Too many requests.
Internal Server Error - There is a problem with the server. Please try again later.
Service Unavailable - We're temporarily offline for maintenance. Please try again later.
Error
{- "verificationCode": "string"
}
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Buyers are identities representing companies. Once on-boarded, Buyers can create and manage their own instruments via your application.
Notification that the KYB status of a buyer identity has been updated.
Return a 200 status to indicate that the data was received successfully
{- "type": "buyerKYBWatch",
- "payload": {
- "buyerId": "string",
- "status": "NOT_STARTED",
- "details": [
- "BUYER_DETAILS_UNSATISFACTORY"
], - "rejectionComment": "string",
- "ongoingStatus": "NOT_STARTED"
}
}
Notification that the verification status of a buyer beneficiary has been updated.
Return a 200 status to indicate that the data was received successfully
{- "type": "buyerBeneficiaryStatusWatch",
- "payload": {
- "event": [
- "STATUS_UPDATED"
], - "eventDetails": [
- "BUYER_DETAILS_UNSATISFACTORY"
], - "additionalInformation": {
- "buyerId": "string",
- "buyerName": "string",
- "adminUserEmail": "string",
- "kybStatus": "NOT_STARTED",
- "beneficiary": {
- "type": "UNDEFINED_BENEFICIARY_TYPE",
- "firstName": "string",
- "middleName": "string",
- "lastName": "string",
- "email": "string",
- "status": "NOT_STARTED",
- "ongoingKybStatus": "NOT_STARTED"
}
}, - "rejectionComment": "string"
}
}
Notification that a buyer has been activated.
Return a 200 status to indicate that the data was received successfully
{- "type": "buyerActivatedWatch",
- "payload": {
- "actionDoneBy": "UNDEFINED",
- "buyerId": "string"
}
}
Notification that a buyer identity has been deactivated.
Return a 200 status to indicate that the data was received successfully
{- "type": "buyerDeactivatedWatch",
- "payload": {
- "actionDoneBy": "UNDEFINED",
- "buyerId": "string",
- "reasonCode": "UNDEFINED_REASON"
}
}
Notification that the status of a Payment Run has been updated.
Payment run event triggered when the status changes
Return a 200 status to indicate that the data was received successfully
{- "type": "paymentRunWatch",
- "payload": {
- "id": "string",
- "paymentRunRef": "94fddfb2-297d-423d-9157-4200b7beb834",
- "tag": "string",
- "description": "September payment run 01",
- "createdBy": "110747174434373672",
- "status": "PENDING_CONFIRMATION",
- "statusReason": "string",
- "payments": [
- {
- "id": "string",
- "status": "CANCELLED",
- "externalRef": "c99cd66c-82fc-4a01-977b-61a2f5a247a1",
- "paymentRef": "c99cd66c-82fc-4a01-977b-61a2f5a247a1",
- "paymentAmount": {
- "currency": "GBP",
- "amount": 1
}, - "reference": "string",
- "supplier": {
- "name": "string",
- "address": "string",
- "bankName": "string",
- "bankAddress": "string",
- "bankCountry": "st",
- "bankAccountDetails": {
- "accountNumber": "stringst",
- "sortCode": "string"
}
}
}
], - "createdAt": "2019-08-24T14:15:22Z"
}
}
Notification that the status of a payment in the Payment Run has been updated.
Event triggered when the status of a payment run payment changes
Return a 200 status to indicate that the data was received successfully
{- "type": "paymentRunPaymentWatch",
- "payload": {
- "paymentRunId": "string",
- "id": "string",
- "status": "CANCELLED",
- "externalRef": "c99cd66c-82fc-4a01-977b-61a2f5a247a1",
- "paymentRef": "c99cd66c-82fc-4a01-977b-61a2f5a247a1",
- "paymentAmount": {
- "currency": "GBP",
- "amount": 1
}, - "reference": "string",
- "supplier": {
- "name": "string",
- "address": "string",
- "bankName": "string",
- "bankAddress": "string",
- "bankCountry": "st",
- "bankAccountDetails": {
- "accountNumber": "stringst",
- "sortCode": "string"
}
}
}
}
Notification of the status update for a linked Account.
Payment run event triggered when the status changes
Return a 200 status to indicate that the data was received successfully
{- "type": "linkedAccountWatch",
- "payload": {
- "id": "652d25b73541d8084a88a38d",
- "accountIdentification": {
- "accountNumber": "stringst",
- "sortCode": "string"
}, - "currency": "GBP",
- "institution": {
- "id": "string",
- "displayName": "string",
- "countries": [
- "GB"
], - "images": {
- "icon": "string",
- "logo": "string"
}, - "info": {
- "loginUrl": "string",
- "helplinePhoneNumber": "string"
}
}, - "consent": {
- "expiresAt": "2019-08-24T14:15:22Z",
- "expiresIn": 0,
- "status": "ACTIVE"
}, - "status": "LINKED"
}
}
Notification that a login attempt was completed successfully or declined.
Return a 200 status to indicate that the data was received successfully
{- "type": "loginWatch",
- "payload": {
- "credential": {
- "type": "ROOT",
- "id": "string"
}, - "buyerId": "string",
- "type": "string",
- "status": "VERIFIED",
- "publishedTimestamp": "string"
}
}
Notification that a step-up has been completed or declined.
Return a 200 status to indicate that the data was received successfully
{- "type": "stepupWatch",
- "payload": {
- "credential": {
- "type": "ROOT",
- "id": "string"
}, - "buyerId": "string",
- "challengeId": "string",
- "type": "string",
- "status": "VERIFIED",
- "publishedTimestamp": "string",
- "authToken": "string"
}
}
Notification that an enrolment has been accepted or declined.
Return a 200 status to indicate that the data was received successfully
{- "type": "authenticationFactorsWatch",
- "payload": {
- "credential": {
- "type": "ROOT",
- "id": "string"
}, - "type": "string",
- "status": "ACTIVE",
- "publishedTimestamp": "string"
}
}
Notification that the sweeping status has been updated.
Sweeping represents transactions that return money to the source account. It may be triggered by unmatched incoming transaction or by failed payment run payments.
Return a 200 status to indicate that the data was received successfully
{- "type": "sweepingWatch",
- "payload": {
- "buyerId": "string",
- "sweepingId": "654cea294f19c7598987cc84",
- "reference": "string",
- "transactionDate": "2023-09-23T11:34:45Z00",
- "transactionAmount": {
- "currency": "GBP",
- "amount": 454321
}, - "status": "SUBMITTED",
- "destination": {
- "linkedAccountId": "652d25b73541d8084a88a38d",
- "bankAccountDetails": {
- "accountNumber": "stringst",
- "sortCode": "string"
}
}
}
}