Download OpenAPI specification:Download
Weavr Multi API provides a simple and flexible way to issue cards and accounts to your customers.
By integrating Weavr Multi API in your application you can embed banking capabilities within your app and provide a seamless experience for your customers.
Each request to the Multi API must include an api_key
that represents your account. You can obtain an API Key by registering for a Multi account here.
Almost all endpoints require a secondary authentication token auth_token
that represents the user for whom the request is being executed.
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.
email required | string <email> (Email) E-mail Address of the user |
required | object (SensitivePassword) 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. |
{- "email": "user@example.com",
- "password": {
- "value": "pa$$word"
}
}
{- "token": "string",
- "tokenType": "AUTH",
- "identity": {
- "type": "CONSUMER",
- "id": "string"
}, - "credentials": {
- "type": "ROOT",
- "id": "string"
}
}
Retrieves a list of identities available to the holder of the token.
curl -i -X GET \ https://sandbox.weavr.io/multi/identities \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
[- {
- "id": {
- "type": "CONSUMER",
- "id": "string"
}, - "name": "string"
}
]
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".
channel required | string (SCAOtpChannel) The unique identifier for the channel. |
curl -i -X POST \ https://sandbox.weavr.io/multi/stepup/challenges/otp/:channel \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "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".
channel required | string (SCAOtpChannel) The unique identifier for the channel. |
verificationCode required | string (Nonce) <= 50 characters ^[a-zA-Z0-9_.*@-]*$|^[a-zA-Z0-9.!#$%&*+\\/=?^... A randomly generated one-time use code. |
{- "verificationCode": "string"
}
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Initiates the step-up token process by submitting a push notification to a device belonging to the logged-in user that was previously enrolled through the /authentication_factors/push/{channel}
endpoint.
You should only start this process if the token step-up isn't already in flight.
channel required | string (SCAPushChannel)
|
curl -i -X POST \ https://sandbox.weavr.io/multi/stepup/challenges/push/:channel \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "id": "string"
}
Logs out the user and terminates the session identified by the auth_token
in the Authorization Header.
curl -i -X POST \ https://sandbox.weavr.io/multi/logout \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "url": "string"
}
Acquire a Bearer
token granting you access to securely perform delegated access operations on behalf of the given identity
.
The token representing the identity should be included in the Authorization
header of all requests to endpoints representing Delegated Access operations.
object (IdentityId) |
{- "identity": {
- "type": "CONSUMER",
- "id": "string"
}
}
{- "token": "string",
- "identity": {
- "type": "CONSUMER",
- "id": "string"
}, - "credentials": {
- "type": "ROOT",
- "id": "string"
}
}
Create a new password for the user identified by the user_id
path parameter.
user_id required | string (UserId) ^[0-9]+$ The user id for which this password is created. |
required | object (SensitivePassword) 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. |
{- "password": {
- "value": "pa$$word"
}
}
{- "passwordInfo": {
- "identityId": {
- "type": "CONSUMER",
- "id": "string"
}, - "expiryDate": 0
}, - "token": "string"
}
Update the password for the logged-in user.
required | object (SensitivePassword) 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 (SensitivePassword) 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. |
{- "oldPassword": {
- "value": "pa$$word"
}, - "newPassword": {
- "value": "pa$$word"
}
}
{- "passwordInfo": {
- "identityId": {
- "type": "CONSUMER",
- "id": "string"
}, - "expiryDate": 0
}, - "token": "string"
}
Check that a password adheres to all complexity checks.
required | object (SensitivePassword) 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. |
{- "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.
email required | string <email> (Email) E-mail Address of the user |
{- "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.
nonce required | string (Nonce) <= 50 characters ^[a-zA-Z0-9_.*@-]*$|^[a-zA-Z0-9.!#$%&*+\\/=?^... A randomly generated one-time use code. |
email required | string <email> (Email) E-mail Address of the user |
required | object (SensitivePassword) 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. |
{- "nonce": "string",
- "email": "user@example.com",
- "newPassword": {
- "value": "pa$$word"
}
}
{- "token": "string"
}
Retrieves the list of authentication factors that can be used to verify the logged-in user.
curl -i -X GET \ https://sandbox.weavr.io/multi/authentication_factors \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "factors": [
- {
- "type": "OTP",
- "status": "PENDING_VERIFICATION",
- "channel": "SMS"
}
]
}
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".
channel required | string (SCAOtpChannel) The unique identifier for the channel. |
curl -i -X POST \ https://sandbox.weavr.io/multi/authentication_factors/otp/:channel \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "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".
channel required | string (SCAOtpChannel) The unique identifier for the channel. |
verificationCode required | string (Nonce) <= 50 characters ^[a-zA-Z0-9_.*@-]*$|^[a-zA-Z0-9.!#$%&*+\\/=?^... A randomly generated one-time use code. |
{- "verificationCode": "string"
}
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
This is the first step in enrolling the logged-in user's mobile device, where a push notification is sent to the device.
channel required | string (SCAPushChannel)
|
curl -i -X POST \ https://sandbox.weavr.io/multi/authentication_factors/push/:channel \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "linkingCode": "string"
}
Unlink a user device for authentication using push notifications
channel required | string (SCAPushChannel)
|
curl -i -X DELETE \ https://sandbox.weavr.io/multi/authentication_factors/push/:channel \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Corporates are identities representing companies. Once on-boarded, Corporates can create and manage their own instruments via your application.
Create a corporate identity for a business customer. The information provided must be accurate and will be passed on for KYB verification with our partner.
profileId required | string (ProfileId) ^[0-9]+$ The profile Id which a specific identity, instrument or transaction type is linked to. Profiles contain configuration and determine behavioral aspects of the newly created transaction, for example, fees that may apply. You can have one or more profiles linked to your application, and these can be used to drive different behaviors according to your product's needs. Profile Ids can be found in the Multi Portal, in the API Credentials page. |
tag | string (Tag) <= 50 characters ^[a-zA-Z0-9_-]+$ The tag field is a custom field that can be used to search and filter. |
required | object The root user needs to be a director or a legal representative of the corporate that is being onboarded - this user cannot be deactivated. Root users need to verify their email address and mobile number, as well as complete KYC as part of the Corporate's due diligence process. |
required | object The details associated with the company being on-boarded. The details provided need to match exactly with the details provided during KYB. |
industry | string (Industry) Deprecated The industry of the identity. |
sourceOfFunds | string (CorporateSourceOfFunds) Deprecated The corporate's source of funds. |
sourceOfFundsOther | string Deprecated Description of source of funds in case |
acceptedTerms required | boolean Must be set to true to indicate that the corporate root user has accepted the terms and conditions. |
ipAddress required | string [ 5 .. 45 ] characters The IP address of the corporate user doing the registration. |
baseCurrency required | string (Currency) 3 characters ^[A-Z]*$ The currency expressed in ISO-4217 code. Example: GBP, EUR, USD. |
feeGroup | string Fee groups allow the possibility to charge different fees to users under the same profile. If fee groups are not required, ignore this field. |
{- "profileId": "string",
- "tag": "string",
- "rootUser": {
- "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",
- "businessAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "name": "string",
- "registrationNumber": "string",
- "registrationCountry": "st"
}, - "industry": "ACCOUNTING",
- "sourceOfFunds": "LABOUR_CONTRACT",
- "sourceOfFundsOther": "string",
- "acceptedTerms": true,
- "ipAddress": "string",
- "baseCurrency": "str",
- "feeGroup": "string"
}
{- "id": {
- "type": "CONSUMER",
- "id": "string"
}, - "profileId": "string",
- "tag": "string",
- "rootUser": {
- "id": {
- "type": "CONSUMER",
- "id": "string"
}, - "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "companyPosition": "DIRECTOR",
- "active": true,
- "emailVerified": true,
- "mobileNumberVerified": true,
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}, - "passwordAlreadySet": true
}, - "company": {
- "name": "string",
- "type": "SOLE_TRADER",
- "registrationNumber": "string",
- "registeredAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "businessAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "countryOfRegistration": "st",
- "incorporatedOn": {
- "year": 1900,
- "month": 1,
- "day": 1
}
}, - "industry": "ACCOUNTING",
- "sourceOfFunds": "LABOUR_CONTRACT",
- "sourceOfFundsOther": "string",
- "acceptedTerms": true,
- "ipAddress": "string",
- "baseCurrency": "str",
- "feeGroup": "string",
- "creationTimestamp": 0
}
curl -i -X GET \ https://sandbox.weavr.io/multi/corporates \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "id": {
- "type": "CONSUMER",
- "id": "string"
}, - "profileId": "string",
- "tag": "string",
- "rootUser": {
- "id": {
- "type": "CONSUMER",
- "id": "string"
}, - "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "companyPosition": "DIRECTOR",
- "active": true,
- "emailVerified": true,
- "mobileNumberVerified": true,
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}
}, - "company": {
- "name": "string",
- "type": "SOLE_TRADER",
- "registrationNumber": "string",
- "registeredAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "businessAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "countryOfRegistration": "st",
- "incorporatedOn": {
- "year": 1900,
- "month": 1,
- "day": 1
}
}, - "industry": "ACCOUNTING",
- "sourceOfFunds": "LABOUR_CONTRACT",
- "sourceOfFundsOther": "string",
- "acceptedTerms": true,
- "ipAddress": "string",
- "baseCurrency": "str",
- "feeGroup": "string",
- "creationTimestamp": 0
}
Update the details of the logged-in corporate identity.
The following Corporate details are verified during due diligence (KYB) and cannot be updated via the API once the Corporate 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.
tag | string (Tag) <= 50 characters ^[a-zA-Z0-9_-]+$ The tag field is a custom field that can be used to search and filter. |
industry | string (Industry) Deprecated The industry of the identity. |
sourceOfFunds | string (CorporateSourceOfFunds) Deprecated The corporate's source of funds. |
sourceOfFundsOther | string Deprecated Description of source of funds in case |
object (Address) | |
feeGroup | string The fee group which the Corporate will be bound to. Do not specify this if you are not using fee groups. |
baseCurrency | string (Currency) 3 characters ^[A-Z]*$ The currency expressed in ISO-4217 code. Example: GBP, EUR, USD. |
name | string <= 20 characters ^[^0-9~!@#$%^*()_+={}\\|:;,<>/?]*$ The first name of the Corporate root user. |
surname | string <= 20 characters ^[^0-9~!@#$%^*()_+={}\\|:;,<>/?]*$ The last name of the Corporate root user. |
string <email> (Email) E-mail Address of the user | |
object (Mobile) | |
object (Date) | |
resetMobileCounter | boolean |
{- "tag": "string",
- "industry": "ACCOUNTING",
- "sourceOfFunds": "LABOUR_CONTRACT",
- "sourceOfFundsOther": "string",
- "companyBusinessAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "feeGroup": "string",
- "baseCurrency": "str",
- "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}, - "resetMobileCounter": true
}
{- "id": {
- "type": "CONSUMER",
- "id": "string"
}, - "profileId": "string",
- "tag": "string",
- "rootUser": {
- "id": {
- "type": "CONSUMER",
- "id": "string"
}, - "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "companyPosition": "DIRECTOR",
- "active": true,
- "emailVerified": true,
- "mobileNumberVerified": true,
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}
}, - "company": {
- "name": "string",
- "type": "SOLE_TRADER",
- "registrationNumber": "string",
- "registeredAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "businessAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "countryOfRegistration": "st",
- "incorporatedOn": {
- "year": 1900,
- "month": 1,
- "day": 1
}
}, - "industry": "ACCOUNTING",
- "sourceOfFunds": "LABOUR_CONTRACT",
- "sourceOfFundsOther": "string",
- "acceptedTerms": true,
- "ipAddress": "string",
- "baseCurrency": "str",
- "feeGroup": "string",
- "creationTimestamp": 0
}
The first step in verifying a root user's email. The root 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 corporateRootUserEmailVerify operation to verify the root user's email address.
Note that on the Sandbox Environment, the verificationCode
is always set to "123456".
email required | string <email> (Email) E-mail Address of the user |
{- "email": "user@example.com"
}
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
The second step in verifying the root user's email. The randomly generated code sent to the root user via email, using the corporateRootUserEmailVerificationCodeSend operation, is submitted here to verify the root 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".
email required | string <email> (Email) E-mail Address of the user |
verificationCode required | string (VerificationCode) 6 characters ^[0-9]+$ A randomly generated one-time use code used to verify the user's email address or mobile number. |
{- "email": "user@example.com",
- "verificationCode": "string"
}
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Corporates need to complete due diligence (KYB) before they can create instruments and perform transactions.
This operation initiates the due diligence process for the logged-in corporate.
Due Diligence is handled by a KYB provider - you will need to embed the KYB UI Component in your application so that the Corporate 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.
curl -i -X POST \ https://sandbox.weavr.io/multi/corporates/kyb \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "reference": "string"
}
Returns the KYB status for the logged-in corporate.
curl -i -X GET \ https://sandbox.weavr.io/multi/corporates/kyb \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "kybStatus": "NOT_STARTED",
- "ongoingKybStatus": "NOT_STARTED"
}
Charge a fee to the corporate identified by the auth token, based on a pre-defined custom fee. Custom fees can be configured in the Multi Portal.
The fees collected will be deposited into your Revenue Account. The balance and transaction history of your revenue account can be viewed in the Multi Portal.
idempotency-ref | string 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. |
feeType required | string The fee type as defined in the Multi Portal. |
required | object (InstrumentId) |
{- "feeType": "string",
- "source": {
- "id": "string",
- "type": "managed_cards"
}
}
{- "transactionId": {
- "type": "INSTRUMENT_CREATE",
- "id": "string"
}, - "profileId": "string",
- "feeType": "string",
- "source": {
- "id": "string",
- "type": "managed_cards"
}, - "availableBalanceAdjustment": {
- "currency": "str",
- "amount": 0
}, - "state": "INITIALISED",
- "creationTimestamp": 0
}
Consumers are identities representing individuals. Once on-boarded, Consumers can create and manage their own instruments via your application.
Create a Consumer Identity to represent an Individual.
The information provided must be accurate as it will be passed on for KYC verification with our partner.
Incorrect information may incur a re-processing fee.
profileId required | string (ProfileId) ^[0-9]+$ The profile Id which a specific identity, instrument or transaction type is linked to. Profiles contain configuration and determine behavioral aspects of the newly created transaction, for example, fees that may apply. You can have one or more profiles linked to your application, and these can be used to drive different behaviors according to your product's needs. Profile Ids can be found in the Multi Portal, in the API Credentials page. |
tag | string (Tag) <= 50 characters ^[a-zA-Z0-9_-]+$ The tag field is a custom field that can be used to search and filter. |
required | object The root user represents the identity. Root users need to verify their email address and mobile number, as well as complete KYC, as part of the Consumer's due diligence process. |
ipAddress required | string [ 5 .. 45 ] characters The IP address of the user doing the registration. |
acceptedTerms required | boolean Must be set to true to indicate that the consumer has accepted the terms and conditions. |
baseCurrency | string (Currency) 3 characters ^[A-Z]*$ The currency expressed in ISO-4217 code. Example: GBP, EUR, USD. |
feeGroup | string The fee group which the consumer is bound to. Fee groups provide the possibility of different fees to users under the same profile. If fee groups are not required, ignore this field. |
sourceOfFunds | string (ConsumerSourceOfFunds) Deprecated The consumer's source of funds. |
sourceOfFundsOther | string Deprecated Description of source of funds in case |
{- "profileId": "string",
- "tag": "string",
- "rootUser": {
- "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}, - "occupation": "ACCOUNTING",
- "address": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "placeOfBirth": "string",
- "nationality": "st"
}, - "ipAddress": "string",
- "acceptedTerms": true,
- "baseCurrency": "str",
- "feeGroup": "string",
- "sourceOfFunds": "PERSONAL_SAVINGS",
- "sourceOfFundsOther": "string"
}
{- "id": {
- "type": "CONSUMER",
- "id": "string"
}, - "profileId": "string",
- "tag": "string",
- "rootUser": {
- "id": {
- "type": "CONSUMER",
- "id": "string"
}, - "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "occupation": "ACCOUNTING",
- "active": true,
- "emailVerified": true,
- "mobileNumberVerified": true,
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}, - "address": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "nationality": "st",
- "placeOfBirth": "string"
}, - "creationTimestamp": 0,
- "ipAddress": "string",
- "acceptedTerms": true,
- "baseCurrency": "str",
- "feeGroup": "string",
- "sourceOfFunds": "PERSONAL_SAVINGS",
- "sourceOfFundsOther": "string"
}
curl -i -X GET \ https://sandbox.weavr.io/multi/consumers \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "id": {
- "type": "CONSUMER",
- "id": "string"
}, - "profileId": "string",
- "tag": "string",
- "rootUser": {
- "id": {
- "type": "CONSUMER",
- "id": "string"
}, - "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "occupation": "ACCOUNTING",
- "active": true,
- "emailVerified": true,
- "mobileNumberVerified": true,
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}, - "address": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "nationality": "st",
- "placeOfBirth": "string"
}, - "creationTimestamp": 0,
- "ipAddress": "string",
- "acceptedTerms": true,
- "baseCurrency": "str",
- "feeGroup": "string",
- "sourceOfFunds": "PERSONAL_SAVINGS",
- "sourceOfFundsOther": "string"
}
Update the details of the logged-in consumer identity.
If the Consumer root user has already completed KYC, the following details cannot be updated:
tag | string (Tag) <= 50 characters ^[a-zA-Z0-9_-]+$ The tag field is a custom field that can be used to search and filter. |
name | string <= 20 characters ^[^0-9~!@#$%^*()_+={}\\|:;,<>/?]*$ The first name of the Consumer root user. |
surname | string <= 20 characters ^[^0-9~!@#$%^*()_+={}\\|:;,<>/?]*$ The last name of the Consumer root user. |
string <email> (Email) E-mail Address of the user | |
object (Mobile) | |
object (Date) | |
object (AddressWithNoRequiredFields) The address, with none of the separate fields being set as required. | |
feeGroup | string The fee group which the consumer will be bound to. Do not specify this if you are not using fee groups. |
baseCurrency | string (Currency) 3 characters ^[A-Z]*$ The currency expressed in ISO-4217 code. Example: GBP, EUR, USD. |
occupation | string (Occupation) Deprecated The industry of the identity. |
sourceOfFunds | string (ConsumerSourceOfFunds) Deprecated The consumer's source of funds. |
sourceOfFundsOther | string Deprecated Description of source of funds in case |
placeOfBirth | string The place of birth of the consumer root user. |
nationality | string (Nationality) 2 characters ^[A-Z]+$ Nationality of the user - using ISO 3166 alpha-2. |
resetMobileCounter | boolean |
{- "tag": "string",
- "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}, - "address": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "feeGroup": "string",
- "baseCurrency": "str",
- "occupation": "ACCOUNTING",
- "sourceOfFunds": "PERSONAL_SAVINGS",
- "sourceOfFundsOther": "string",
- "placeOfBirth": "string",
- "nationality": "st",
- "resetMobileCounter": true
}
{- "id": {
- "type": "CONSUMER",
- "id": "string"
}, - "profileId": "string",
- "tag": "string",
- "rootUser": {
- "id": {
- "type": "CONSUMER",
- "id": "string"
}, - "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "occupation": "ACCOUNTING",
- "active": true,
- "emailVerified": true,
- "mobileNumberVerified": true,
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}, - "address": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "nationality": "st",
- "placeOfBirth": "string"
}, - "creationTimestamp": 0,
- "ipAddress": "string",
- "acceptedTerms": true,
- "baseCurrency": "str",
- "feeGroup": "string",
- "sourceOfFunds": "PERSONAL_SAVINGS",
- "sourceOfFundsOther": "string"
}
The first step in verifying a root user's email. The root 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 consumerRootUserEmailVerify operation to verify the root user's email address.
Note that on the Sandbox Environment, the verificationCode
is always set to "123456".
email required | string <email> (Email) E-mail Address of the user |
{- "email": "user@example.com"
}
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
The second step in verifying the root user's email. The randomly generated code sent to the root user via email, using the consumerRootUserEmailVerificationCodeSend operation, is submitted here to verify the root user's email.
This is needed as part of the verification process for basic due diligence.
Note that on the Sandbox Environment, emails are not sent and the verification code is always set to "123456".
email required | string <email> (Email) E-mail Address of the user |
verificationCode required | string (VerificationCode) 6 characters ^[0-9]+$ A randomly generated one-time use code used to verify the user's email address or mobile number. |
{- "email": "user@example.com",
- "verificationCode": "string"
}
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Consumers need to complete due diligence (KYC) before they can create instruments and fund transaction.
This operation initiates the due diligence process for the logged-in consumer.
The level of KYC that will be required from the user can be provided as an optional parameter - if this is not provided, KYC_LEVEL_2
will be assumed.
Due Diligence is handled by a KYC provider, you will need to embed the KYC UI Component in your application to show the KYC screens to your users.
To initialise the KYC UI Component, you need a reference
that is given to you in the response of this operation.
kycLevel | string (KycLevel) The KYC level, which determines what KYC information will be requested from the consumer:
|
{- "kycLevel": "KYC_LEVEL_1"
}
{- "reference": "string",
- "kycLevel": "KYC_LEVEL_1"
}
curl -i -X GET \ https://sandbox.weavr.io/multi/consumers/kyc \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "fullDueDiligence": "NOT_STARTED",
- "kycLevel": "KYC_LEVEL_1",
- "ongoingFullDueDiligence": "NOT_STARTED",
- "ongoingKycLevel": "KYC_LEVEL_1"
}
Consumers need to complete due diligence (KYC) before they can create instruments and perform transactions.
Use this call instead of /consumers/kyc
only in case where the KYC is to be performed using a mobile device.
The level of KYC that will be required from the user can be provided as an optional parameter - if this is not
provided, KYC_LEVEL_2
will be assumed.
The information returned in the response is to be used to integrate directly with Sumsub Mobile SDK.
kycLevel | string (KycLevel) The KYC level, which determines what KYC information will be requested from the consumer:
|
{- "kycLevel": "KYC_LEVEL_1"
}
{- "verificationFlow": "string",
- "accessToken": "string",
- "identityType": "string",
- "externalUserId": "string",
- "kycProviderKey": "string",
- "kycLevel": "KYC_LEVEL_1"
}
Charge a fee to the logged-in consumer based on a pre-defined custom fee. Custom fees can be configured in the Multi Portal.
The fees collected will be deposited into your Revenue Account. The balance and transaction history of your revenue account can be viewed in the Multi Portal.
idempotency-ref | string 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. |
feeType required | string The fee type as defined in the Multi Portal. |
required | object (InstrumentId) |
{- "feeType": "string",
- "source": {
- "id": "string",
- "type": "managed_cards"
}
}
{- "transactionId": {
- "type": "INSTRUMENT_CREATE",
- "id": "string"
}, - "profileId": "string",
- "feeType": "string",
- "source": {
- "id": "string",
- "type": "managed_cards"
}, - "availableBalanceAdjustment": {
- "currency": "str",
- "amount": 0
}, - "state": "INITIALISED",
- "creationTimestamp": 0
}
Corporate and Consumer identities can invite authorised users to access their account. Once on-boarded, authorised users can create and manage instruments and transactions on behalf of the identity they are on-boarded with.
In case of Corporate Identities, authorised users are typically employees who have access to company's banking products such as cards and bank accounts.
In case of Consumer Identities, authorised users are typically children/teens whose parents want them to have access to banking products such as cards and bank accounts.
Note that /users
endpoints are to be used only for performing operations related to authorised users - getting or updating the details of root users is to be done via the respective /consumers
or /corporates
endpoints.
Creates a user linked to the logged-in corporate or consumer identity.
Once on-boarded, users have access to all instruments (cards and accounts) of the identity.
Application-specific permissions to limit what each user can view and do need to be implemented in your application.
name required | string <= 20 characters The first name of the user. |
surname required | string <= 20 characters The last name of the user. |
email required | string <email> (Email) E-mail Address of the user |
object (Mobile) | |
object (Date) |
{- "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}
}
{- "id": "string",
- "identity": {
- "type": "CONSUMER",
- "id": "string"
}, - "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "active": true,
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}
}
Fetches all authorised users associated with the corporate or consumer identity the logged-in user belongs to.
offset | integer <int32> >= 0 The offset value for paging, indicating the initial item number to be returned from the data set satisfying the given criteria. Leave out to fetch the first page of results. |
limit | integer <int32> [ 1 .. 100 ] The limit of the results for paging, starting at the offset. Limit is always capped at 100. |
active | boolean Filter for active or deactivated users. Leave out to fetch all users. |
string <email> (Email) Filter by the email address of the user. |
curl -i -X GET \ 'https://sandbox.weavr.io/multi/users?offset=0&limit=1&active=true&email=user%40example.com' \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "users": [
- {
- "id": "string",
- "identity": {
- "type": "CONSUMER",
- "id": "string"
}, - "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "active": true,
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}
}
], - "count": 0,
- "responseCount": 0
}
Retrieves the user identified by the user_id
path parameter.
user_id required | string (UserId) ^[0-9]+$ The user id for which this password is created. |
curl -i -X GET \ https://sandbox.weavr.io/multi/users/:user_id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "id": "string",
- "identity": {
- "type": "CONSUMER",
- "id": "string"
}, - "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "active": true,
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}
}
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.
user_id required | string (UserId) ^[0-9]+$ The user id for which this password is created. |
name | string <= 20 characters The first name of the user. |
surname | string <= 20 characters The last name of the user. |
string <email> (Email) E-mail Address of the user | |
object (Mobile) | |
object (Date) |
{- "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}
}
{- "id": "string",
- "identity": {
- "type": "CONSUMER",
- "id": "string"
}, - "name": "string",
- "surname": "string",
- "email": "user@example.com",
- "mobile": {
- "countryCode": "string",
- "number": "string"
}, - "active": true,
- "dateOfBirth": {
- "year": 1900,
- "month": 1,
- "day": 1
}
}
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.
user_id required | string (UserId) ^[0-9]+$ The user id for which this password is created. |
curl -i -X POST \ https://sandbox.weavr.io/multi/users/:user_id/activate \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "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.
user_id required | string (UserId) ^[0-9]+$ The user id for which this password is created. |
curl -i -X POST \ https://sandbox.weavr.io/multi/users/:user_id/deactivate \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "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.
user_id required | string (UserId) ^[0-9]+$ The unique identifier for the user. |
curl -i -X POST \ https://sandbox.weavr.io/multi/users/:user_id/invite \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "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).
user_id required | string (UserId) ^[0-9]+$ The unique identifier for the user. |
inviteCode required | string (Nonce) <= 50 characters ^[a-zA-Z0-9_.*@-]*$|^[a-zA-Z0-9.!#$%&*+\\/=?^... A randomly generated one-time use code. |
{- "inviteCode": "string"
}
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Consumes an invitation perviously 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".
user_id required | string (UserId) ^[0-9]+$ The unique identifier for the user. |
inviteCode required | string (Nonce) <= 50 characters ^[a-zA-Z0-9_.*@-]*$|^[a-zA-Z0-9.!#$%&*+\\/=?^... A randomly generated one-time use code. |
required | object (SensitivePassword) 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. |
{- "inviteCode": "string",
- "password": {
- "value": "pa$$word"
}
}
{- "token": "string"
}
curl -i -X POST \ https://sandbox.weavr.io/multi/users/kyc \ -H 'api-key: YOUR_API_KEY_HERE'
{- "reference": "string"
}
Managed Accounts are a type of financial instrument offered by Weavr.
They hold funds for their owner, and can be upgraded to IBANs so as to receive and send funds to instruments outside of the Weavr Platform, via Wire Transfers.
Managed accounts can also be used as source and destination instruments in the transfer
and send
transactions.
Retrieves all managed accounts belonging to the logged-in identity.
offset | integer <int32> >= 0 The offset value for paging, indicating the initial item number to be returned from the data set satisfying the given criteria. Leave out to fetch the first page of results. |
limit | integer <int32> [ 1 .. 100 ] The limit of the results for paging, starting at the offset. Limit is always capped at 100. |
profileId | string (ProfileId) ^[0-9]+$ Filter by the managed account/card profile. Leave out to fetch all managed accounts/card. |
friendlyName | string [ 1 .. 50 ] characters Filter by the managed account/card friendly name. Leave out to fetch all managed accounts/card. The exact name must be provided, as wildcards are not supported. |
state | Array of strings (InstrumentState) unique Items Enum: "ACTIVE" "BLOCKED" "DESTROYED" |
state.blockedReason | Array of strings (BlockedReason) unique Items Enum: "USER" "SYSTEM" "LOST" |
state.destroyedReason | Array of strings (DestroyedReason) unique Items Enum: "SYSTEM" "USER" "LOST" "STOLEN" "EXPIRED" |
currency | string (Currency) 3 characters ^[A-Z]*$ Filter by the managed account/card currency. Currencies are expressed as an ISO 4217 code. Leave out to fetch all managed accounts/card. |
createdFrom | integer <int64> Filter for managed accounts/cards created after |
createdTo | integer <int64> Filter for managed accounts/cards created before |
tag | string Filter by the managed account/card tag. The exact tag must be provided, as wildcards are not supported. Leave out to fetch all managed accounts/card. |
curl -i -X GET \ 'https://sandbox.weavr.io/multi/managed_accounts?offset=0&limit=1&profileId=string&friendlyName=string&state=ACTIVE&state.blockedReason=USER&state.destroyedReason=SYSTEM¤cy=str&createdFrom=0&createdTo=0&tag=string' \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "accounts": [
- {
- "id": "string",
- "profileId": "string",
- "tag": "string",
- "friendlyName": "string",
- "currency": "str",
- "balances": {
- "availableBalance": 0,
- "actualBalance": 0
}, - "state": {
- "state": "ACTIVE",
- "blockedReason": "USER",
- "destroyedReason": "SYSTEM"
}, - "creationTimestamp": 0
}
], - "count": 0,
- "responseCount": 0
}
Creates a managed account for the consumer or corporate identity. The Managed Account Profile (configured in the Multi Portal) specified determines the behavior and restrictions that the managed account will have."
idempotency-ref | string 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. |
profileId required | string (ProfileId) ^[0-9]+$ The profile Id which a specific identity, instrument or transaction type is linked to. Profiles contain configuration and determine behavioral aspects of the newly created transaction, for example, fees that may apply. You can have one or more profiles linked to your application, and these can be used to drive different behaviors according to your product's needs. Profile Ids can be found in the Multi Portal, in the API Credentials page. |
friendlyName required | string [ 1 .. 50 ] characters The friendly name to be given to the managed account. |
currency required | string (Currency) 3 characters ^[A-Z]*$ The currency expressed in ISO-4217 code. Example: GBP, EUR, USD. |
tag | string (Tag) <= 50 characters ^[a-zA-Z0-9_-]+$ The tag field is a custom field that can be used to search and filter. |
{- "profileId": "string",
- "friendlyName": "string",
- "currency": "str",
- "tag": "string"
}
{- "id": "string",
- "profileId": "string",
- "tag": "string",
- "friendlyName": "string",
- "currency": "str",
- "balances": {
- "availableBalance": 0,
- "actualBalance": 0
}, - "state": {
- "state": "ACTIVE",
- "blockedReason": "USER",
- "destroyedReason": "SYSTEM"
}, - "creationTimestamp": 0
}
Fetch the managed account identified by the id
in path.
id required | string^[0-9]+$ The unique identifier of the Managed Account. |
curl -i -X GET \ https://sandbox.weavr.io/multi/managed_accounts/:id \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "id": "string",
- "profileId": "string",
- "tag": "string",
- "friendlyName": "string",
- "currency": "str",
- "balances": {
- "availableBalance": 0,
- "actualBalance": 0
}, - "state": {
- "state": "ACTIVE",
- "blockedReason": "USER",
- "destroyedReason": "SYSTEM"
}, - "creationTimestamp": 0
}
Update the details for the managed account identified by the id
in the path.
id required | string^[0-9]+$ The unique identifier of the managed account. |
tag | string (Tag) <= 50 characters ^[a-zA-Z0-9_-]+$ The tag field is a custom field that can be used to search and filter. |
friendlyName | string [ 1 .. 50 ] characters Updates the friendly name of the managed account. Leave blank if no change is needed. |
{- "tag": "string",
- "friendlyName": "string"
}
{- "id": "string",
- "profileId": "string",
- "tag": "string",
- "friendlyName": "string",
- "currency": "str",
- "balances": {
- "availableBalance": 0,
- "actualBalance": 0
}, - "state": {
- "state": "ACTIVE",
- "blockedReason": "USER",
- "destroyedReason": "SYSTEM"
}, - "creationTimestamp": 0
}
Assign an IBAN to a Managed Account.
IBANs enable managed accounts to receive and send funds via wire transfers.
Assigning an IBAN to a Managed Account may be done asynchronously, in which case the ManagedAccountIBAN.state
will be set to PENDING_ALLOCATION
until bank details are ready to use.
id required | string^[0-9]+$ The unique identifier of the Managed Account. |
curl -i -X POST \ https://sandbox.weavr.io/multi/managed_accounts/:id/iban \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "state": "UNALLOCATED",
- "bankAccountDetails": [
- {
- "beneficiaryNameAndSurname": "string",
- "beneficiaryBank": "string",
- "beneficiaryBankAddress": "string",
- "paymentReference": "string",
- "details": {
- "iban": "stringstringstr",
- "bankIdentifierCode": "stringst"
}
}
]
}
Fetch the IBAN details associated with the Managed Account identified by the id
in the path.
id required | string^[0-9]+$ |
curl -i -X GET \ https://sandbox.weavr.io/multi/managed_accounts/:id/iban \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "state": "UNALLOCATED",
- "bankAccountDetails": [
- {
- "beneficiaryNameAndSurname": "string",
- "beneficiaryBank": "string",
- "beneficiaryBankAddress": "string",
- "paymentReference": "string",
- "details": {
- "iban": "stringstringstr",
- "bankIdentifierCode": "stringst"
}
}
]
}
Temporarily blocks a managed account.
id required | string^[0-9]+$ The unique identifier of the managed account. |
curl -i -X POST \ https://sandbox.weavr.io/multi/managed_accounts/:id/block \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Unblocks the managed account identified by the id
path parameter.
The managed account must have state.blockedReason
as USER
so that it can be unblocked.
If the managed account was blocked by SYSTEM
, users cannot unblock it.
id required | string^[0-9]+$ The unique identifier of the managed account. |
curl -i -X POST \ https://sandbox.weavr.io/multi/managed_accounts/:id/unblock \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Returns a list of transactions against the managed account identified by the id
path parameter, matching the criteria provided in the request.
id required | string^[0-9]+$ The unique identifier of the managed account. |
offset | integer <int32> >= 0 The offset value for paging, indicating the initial item number to be returned from the data set satisfying the given criteria. Leave out to fetch the first page of results. |
limit | integer <int32> [ 1 .. 100 ] The limit of the results for paging, starting at the offset. Limit is always capped at 100. |
orderByTimestamp | string Orders the result in ascending or descending order.
If not specified, the transactions will be returned in descending order. |
fromTimestamp | integer <int64> Filter for transactions having transaction timestamp after |
toTimestamp | integer <int64> Filter for transactions having transaction timestamp before |
showFundMovementsOnly | boolean Returns only the entries which contain fund movements. |
accept | string A request parameter specifying the type of response the client would like. Must be one of The default response type ( |
curl -i -X GET \ 'https://sandbox.weavr.io/multi/managed_accounts/:id/statement?offset=0&limit=1&orderByTimestamp=ASC&fromTimestamp=0&toTimestamp=0&showFundMovementsOnly=true' \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'accept: string' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "entry": [
- {
- "transactionId": {
- "type": "INSTRUMENT_CREATE",
- "id": "string"
}, - "entryState": "PENDING",
- "originalAmount": {
- "currency": "str",
- "amount": 0
}, - "forexRate": {
- "value": 0,
- "scale": -128
}, - "transactionAmount": {
- "currency": "str",
- "amount": 0
}, - "availableBalanceAdjustment": {
- "currency": "str",
- "amount": 0
}, - "actualBalanceAdjustment": {
- "currency": "str",
- "amount": 0
}, - "balanceAfter": {
- "currency": "str",
- "amount": 0
}, - "availableBalanceAfter": {
- "currency": "str",
- "amount": 0
}, - "actualBalanceAfter": {
- "currency": "str",
- "amount": 0
}, - "transactionFee": {
- "currency": "str",
- "amount": 0
}, - "cardholderFee": {
- "currency": "str",
- "amount": 0
}, - "processedTimestamp": 0,
- "sourceAmount": {
- "currency": "str",
- "amount": 0
}, - "additionalFields": {
- "property1": "string",
- "property2": "string"
}
}
], - "count": 0,
- "responseCount": 0
}
Destroys the managed account identified by the id
path parameter. Unlike block, this action is not reversible.
A managed account must be emptied from any remaining funds before it can be destroyed.
id required | string^[0-9]+$ The unique identifier of the managed account. |
curl -i -X POST \ https://sandbox.weavr.io/multi/managed_accounts/:id/remove \ -H 'Authorization: Bearer <YOUR_JWT_HERE>' \ -H 'api-key: YOUR_API_KEY_HERE'
{- "message": "string",
- "syntaxErrors": {
- "invalidFields": [
- {
- "params": [
- "string"
], - "fieldName": "string",
- "error": "REQUIRED"
}
]
}
}
Managed Cards are a type of financial instrument offered by Weavr.
You can create virtual or physical cards that are issued to the consumer or corporate identity.
A card created in prepaid mode has its own balance, whereas a card created in debit mode does not have its own balance but taps into the balance of its parent managed account.
Creates a managed card for the consumer or corporate identity. The Managed Card Profile (configured in the Multi Portal) specified determines the behaviour and restrictions that the managed card will have.
idempotency-ref | string 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. |
profileId required | string (ProfileId) ^[0-9]+$ The profile Id which a specific identity, instrument or transaction type is linked to. Profiles contain configuration and determine behavioral aspects of the newly created transaction, for example, fees that may apply. You can have one or more profiles linked to your application, and these can be used to drive different behaviors according to your product's needs. Profile Ids can be found in the Multi Portal, in the API Credentials page. |
tag | string (Tag) <= 50 characters ^[a-zA-Z0-9_-]+$ The tag field is a custom field that can be used to search and filter. |
friendlyName required | string [ 1 .. 50 ] characters The friendly name for the card. |
nameOnCard required | string [ 1 .. 27 ] characters ^[a-zA-Z0-9ßÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØŠÙÚÛÜŸÝŽĄĆ... The card holder's name for the card. This may be verified by merchants when the card is used online. For Physical cards, this field will be printed on the card. |
cardholderMobileNumber required | string [ 5 .. 20 ] characters ^\\+[0-9]+$ The mobile number including country code of the card holder. For transactions that require a 3DS challenge, an SMS with a code will be sent on this number, to be entered during an online purchase. |
required | object (Address) |
object (DigitalWallets) | |
mode required | string The card can be created in prepaid mode or debit mode.
PREPAID_MODE PREPAID_MODE DEBIT_MODE |
currency required | string (Currency) 3 characters ^[A-Z]*$ The currency expressed in ISO-4217 code. Example: GBP, EUR, USD. |
{- "profileId": "string",
- "tag": "string",
- "friendlyName": "string",
- "nameOnCard": "string",
- "cardholderMobileNumber": "string",
- "billingAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "digitalWallets": {
- "pushProvisioningEnabled": true,
- "walletsEnabled": true,
- "artworkReference": "string"
}, - "mode": "PREPAID_MODE",
- "currency": "str"
}
{- "id": "string",
- "profileId": "string",
- "externalHandle": "string",
- "tag": "string",
- "friendlyName": "string",
- "currency": "str",
- "state": {
- "state": "ACTIVE",
- "blockedReason": "USER",
- "destroyedReason": "SYSTEM"
}, - "type": "VIRTUAL",
- "cardBrand": "MASTERCARD",
- "cardNumber": {
- "value": "string"
}, - "cvv": {
- "value": "str"
}, - "cardNumberFirstSix": "string",
- "cardNumberLastFour": "stri",
- "nameOnCard": "string",
- "startMmyy": "stri",
- "expiryMmyy": "stri",
- "cardLevelClassification": "CONSUMER",
- "expiryPeriodMonths": 1,
- "renewalType": "AUTO_RENEW",
- "creationTimestamp": 0,
- "cardholderMobileNumber": "string",
- "billingAddress": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"
}, - "physicalCardDetails": {
- "productReference": "string",
- "carrierType": "string",
- "pendingActivation": true,
- "pinBlocked": true,
- "manufacturingState": "REQUESTED",
- "replacement": {
- "replacementReason": "DAMAGED",
- "replacementId": "string"
}, - "deliveryAddress": {
- "name": "string",
- "surname": "string",
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "postCode": "string",
- "state": "string",
- "country": "st"