# Weavr Multi Product API

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.

# Authentication

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](https://portal.weavr.io).

Almost all endpoints require a secondary authentication token `auth_token` that represents the user for whom the request is being executed.


Version: v3

## Servers

Weavr Sandbox Environment
```
https://sandbox.weavr.io/multi
```

## Security

### api-key

An API key defined in your User API Client  (or Delegate API Client - this feature is available only to customers enabled with delegation functionality).  API Clients are as managed in the Embedder Portal

Type: apiKey
In: header
Name: api-key

### auth_token

The authentication token representing the user. This will be included in the login response object.

Type: http
Scheme: bearer
Bearer Format: JWT

### webhooks_key

The Webhooks key can be found in the API Credentials tab in your Portal Page.

Type: apiKey
In: header
Name: webhooks-key

## Download OpenAPI description

[Weavr Multi Product API](https://api.weavr.io/_bundle/products/multi/openapi.yaml)

## Corporates

Corporates are identities representing companies. Once on-boarded, Corporates can create and manage their own instruments via your application.

### Register a corporate

 - [POST /corporates](https://api.weavr.io/products/multi/openapi/corporates/corporatecreate.md): 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.

## Consumers

Consumers are identities representing individuals. Once on-boarded, Consumers can create and manage their own instruments via your application.

### Register a consumer

 - [POST /consumers](https://api.weavr.io/products/multi/openapi/consumers/consumercreate.md): 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.

## Setup

Register and manage the lifecycle of users that can access an identity, including authorised users invited by a Corporate or Consumer root user.


### Register a user

 - [POST /users](https://api.weavr.io/products/multi/openapi/setup/usercreate.md): 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.

In order to Create an Authorised User you would need a stepped-up token. Before calling /multi/users you need to step-up ( issue a challenge multi/stepup/challenges/otp/{channel} )

More details on how to step-up a token can be found here Step-Up

### Get all users

 - [GET /users](https://api.weavr.io/products/multi/openapi/setup/usersget.md): Fetches all users associated with the corporate or consumer identity the logged-in user belongs to.

### Get a user

 - [GET /users/{user_id}](https://api.weavr.io/products/multi/openapi/setup/usergetbyid.md): Retrieves the user identified by the user_id path parameter.

### Update a user

 - [PATCH /users/{user_id}](https://api.weavr.io/products/multi/openapi/setup/userupdate.md): 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 Authentication Factors.

### Get linked identities

 - [GET /identities](https://api.weavr.io/products/multi/openapi/setup/useridentities.md): Retrieves a list of identities available to the holder of the token.

### Invite a user to become an authorised user

 - [POST /users/{user_id}/invite](https://api.weavr.io/products/multi/openapi/setup/userinvitesend.md): 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_.

### Validate a user's invite

 - [POST /users/{user_id}/invite/validate](https://api.weavr.io/products/multi/openapi/setup/userinvitevalidate.md): 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).

### Consume a user's invite

 - [POST /users/{user_id}/invite/consume](https://api.weavr.io/products/multi/openapi/setup/userinviteconsume.md): 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\"._

### Send an email verification code to a user

 - [POST /users/verification/email/send](https://api.weavr.io/products/multi/openapi/setup/authoriseduseremailverificationcodesend.md): The first step in verifying an authorised user's email. The authorised 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 _authorisedUserEmailVerify_ operation to verify the authorised user's email address.

_Note that on the Sandbox Environment, the verificationCode is always set to \"123456\"._

### Verify email of the authorised user

 - [POST /users/verification/email/verify](https://api.weavr.io/products/multi/openapi/setup/authoriseduseremailverify.md): The second step in verifying the authorised user's email. The randomly generated code sent to the authorised user via
email, using the _authorisedUserEmailVerificationCodeSend_ operation, is submitted here to verify the authorised 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\"._

### Deactivate an authorised user

 - [POST /users/{user_id}/deactivate](https://api.weavr.io/products/multi/openapi/setup/userdeactivate.md): 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.

### Reactivate an authorised user

 - [POST /users/{user_id}/activate](https://api.weavr.io/products/multi/openapi/setup/useractivate.md): 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.

### Start KYC to elevate an authorised user to signatory

 - [POST /users/kyc](https://api.weavr.io/products/multi/openapi/setup/userkyc.md): Perform the kyc for a corporate user.

## Sign-in

Sign users in using passwords, biometrics, or third-party auth providers.

### Sign in with password

 - [POST /login_with_password](https://api.weavr.io/products/multi/openapi/sign-in/loginwithpassword.md): 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.

### Sign in via biometrics

 - [POST /login_via_biometrics](https://api.weavr.io/products/multi/openapi/sign-in/loginviabiometrics.md): Trigger a push notification and subsequent biometric authentication of a user, by providing the email that was 
used in the enrolment process of biometrics.

This endpoint can be used in conjunction with your application to authenticate a user and receive a stepped-up 
token in a single action, for use in-session for any endpoints or UI components that require step-up 
authentication.

Given that the user credentials are correct, a push notification is sent to the user requesting them to complete
biometric authentication. On successful completion of authentication, a token will be shared that can be used 
for endpoints or UI components that require a stepped-up token.

### Logout (deprecated)

 - [POST /logout](https://api.weavr.io/products/multi/openapi/sign-in/logout.md): Logs out the user and terminates the session identified by the auth_token in the Authorization Header.

## Step-up Challenges

Issue and verify step-up challenges that elevate an existing user token.

### Issue a one-time password that can be used to step-up a token

 - [POST /stepup/challenges/otp/{channel}](https://api.weavr.io/products/multi/openapi/step-up-challenges/stepupscachallenge.md): 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\"._

### Verify a step-up token using a one-time password

 - [POST /stepup/challenges/otp/{channel}/verify](https://api.weavr.io/products/multi/openapi/step-up-challenges/stepupscaverify.md): Completes the verification process for a step up token.
The challenge expires after 5 minutes and the number of incorrect OTP attempts is limited to reduce the risk of fraud, in that case challenge has to be issued again.

_Note that on the Sandbox Environment, text messages are not sent and the verificationCode is always \"123456\"._

### Issue a push notification that can be used to step-up a token

 - [POST /stepup/challenges/push/{channel}](https://api.weavr.io/products/multi/openapi/step-up-challenges/stepupscachallengepush.md): 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.

## Confirmation Challenges

Issue and verify confirmation challenges used to authorise lists of resources.

### Issue a one-time password that can be used to verify a list of resources

 - [POST /challenges/otp/{channel}](https://api.weavr.io/products/multi/openapi/confirmation-challenges/multiplescachallenge.md): Starts the verification process for a list of resources in which a one-time password is sent to a device belonging to the logged-in user that was previously enrolled through the /authentication_factors/otp/{channel} endpoint. 

This endpoint can be used to challenge _Outgoing Wire Transfers_, _Sends_, and _Linked Account Declarations_.

You should only start this process if the operation state is PENDING_CHALLENGE.

_Note that on the Sandbox Environment, text messages are not sent and the one-time-password is always \"123456\"._

### Verify a list of resources using a one-time password

 - [POST /challenges/{scaChallengeId}/otp/{channel}/verify](https://api.weavr.io/products/multi/openapi/confirmation-challenges/multiplescaverify.md): Completes the verification process for a list of resources.

This endpoint can be used to challenge _Outgoing Wire Transfers_ & _Sends_.

If the outcome of the verification is successful, the resource is executed.

If not verified challenge expires after 5 minutes and the number of incorrect OTP attempts is limited to reduce the risk of fraud.

_Note that on the Sandbox Environment, text messages are not sent and the verificationCode is always \"123456\"._

### Issue a push notification that can be used to verify a list of resources

 - [POST /challenges/push/{channel}](https://api.weavr.io/products/multi/openapi/confirmation-challenges/multiplescachallengepush.md): Starts the verification process for a list of resources in which a push notification is sent to a device belonging to the logged-in user that was previously enrolled through the /authentication_factors/push/{channel} endpoint.

This endpoint can be used to challenge _Outgoing Wire Transfers_ & _Sends_.

You should only start this process if the resource state is PENDING_CHALLENGE.

## Authentication Factors

Manage user authentication factors, including passwords and device-based factors (OTP and push).


### Create a password

 - [POST /passwords/{user_id}/create](https://api.weavr.io/products/multi/openapi/authentication-factors/passwordcreate.md): Create a new password for the user identified by the user_id path parameter.

### Update a password

 - [POST /passwords/update](https://api.weavr.io/products/multi/openapi/authentication-factors/passwordupdate.md): Update the password for the logged-in user.

### Validate a password

 - [POST /passwords/validate](https://api.weavr.io/products/multi/openapi/authentication-factors/passwordvalidate.md): Check that a password adheres to all complexity checks.

### Initiate lost password process

 - [POST /passwords/lost_password/start](https://api.weavr.io/products/multi/openapi/authentication-factors/lostpasswordinitiate.md): 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.

### Resume lost password process

 - [POST /passwords/lost_password/resume](https://api.weavr.io/products/multi/openapi/authentication-factors/lostpasswordresume.md): This is the second and final step in updating the password of a user who forgot their password.

### Get user authentication factors

 - [GET /authentication_factors](https://api.weavr.io/products/multi/openapi/authentication-factors/authfactorsget.md): Retrieves the list of authentication factors that can be used to verify the logged-in user.

### Enrol a user device for authentication using one-time passwords

 - [POST /authentication_factors/otp/{channel}](https://api.weavr.io/products/multi/openapi/authentication-factors/enroldeviceusingotpstepone.md): 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\"._

### Verify enrolment of a user device for authentication using one-time passwords

 - [POST /authentication_factors/otp/{channel}/verify](https://api.weavr.io/products/multi/openapi/authentication-factors/enroldeviceusingotpsteptwo.md): The second step in enrolling the logged-in user (root or authorised user) to use one-time-passwords to enable verification of transactions.
The challenge expires after 5 minutes and the number of incorrect OTP attempts is limited to reduce the risk of fraud, in that case challenge has to be issued again.

_Note that on the Sandbox Environment, text messages are not sent and the verificationCode is always set to \"123456\"._

### Enrol a user device for authentication using push notifications

 - [POST /authentication_factors/push/{channel}](https://api.weavr.io/products/multi/openapi/authentication-factors/enroldeviceusingpush.md): This is the first step in enrolling the logged-in user's mobile device, where a push notification is sent to the device.

### Unlink a user device for authentication using push notifications

 - [DELETE /authentication_factors/push/{channel}](https://api.weavr.io/products/multi/openapi/authentication-factors/unlinkdeviceusingpush.md): Unlink a user device for authentication using push notifications

## Access Tokens

Acquire and revoke access tokens.

### Acquire a new access token

 - [POST /access_token](https://api.weavr.io/products/multi/openapi/access-tokens/requestaccesstoken.md): This API endpoint accepts a POST request with an auth_token parameter and returns an access_token that grants authorized access to additional resources within the API, with a different expiration time and unique signature.

## Customer Data & Due Diligence

Manage customer profile data and KYC/KYB due diligence flows for corporates and consumers.

### Get a corporate

 - [GET /corporates](https://api.weavr.io/products/multi/openapi/customer-data-and-due-diligence/corporateget.md): Retrieve the details of the logged-in corporate.

### Update a corporate

 - [PATCH /corporates](https://api.weavr.io/products/multi/openapi/customer-data-and-due-diligence/corporateupdate.md): 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:
  - Root User Name
  - Root User Surname
  - Root User Email
  - Root User Mobile Country Code
  - Root User Mobile Number
  - Business Address
  - Date of birth

If these details need to be changed after due diligence is completed, please contact Customer Support to restart the Due Diligence process.

### Start KYB for a corporate

 - [POST /corporates/kyb](https://api.weavr.io/products/multi/openapi/customer-data-and-due-diligence/corporatekybstart.md): 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.

### Get KYB for a corporate

 - [GET /corporates/kyb](https://api.weavr.io/products/multi/openapi/customer-data-and-due-diligence/corporatekybget.md): Returns the KYB status for the logged-in corporate.

### Get a consumer

 - [GET /consumers](https://api.weavr.io/products/multi/openapi/customer-data-and-due-diligence/consumerget.md): Retrieve the details of the logged-in Consumer.

### Update a consumer

 - [PATCH /consumers](https://api.weavr.io/products/multi/openapi/customer-data-and-due-diligence/consumerupdate.md): Update the details of the logged-in consumer identity.

If the Consumer root user has already completed KYC, the following details cannot be updated:
  - name
  - surname
  - email
  - mobile Country Code
  - mobile Number
  - date of Birth
  - address

### Start KYC for a consumer

 - [POST /consumers/kyc](https://api.weavr.io/products/multi/openapi/customer-data-and-due-diligence/consumerkycstart.md): 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.  

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.

### Get KYC for a consumer

 - [GET /consumers/kyc](https://api.weavr.io/products/multi/openapi/customer-data-and-due-diligence/consumerkycget.md): Returns the KYC status for the logged-in consumer.

## Authorised Signatories

Verify the email of root users who act as authorised signatories of a Corporate or Consumer identity.

### Send email verification code to Corporate root user

 - [POST /corporates/verification/email/send](https://api.weavr.io/products/multi/openapi/authorised-signatories/corporaterootuseremailverificationcodesend.md): 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\"._

### Verify email of Corporate root user

 - [POST /corporates/verification/email/verify](https://api.weavr.io/products/multi/openapi/authorised-signatories/corporaterootuseremailverify.md): 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\"._

### Send email verification code to Consumer root user

 - [POST /consumers/verification/email/send](https://api.weavr.io/products/multi/openapi/authorised-signatories/consumerrootuseremailverificationcodesend.md): 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\".

### Verify email of Consumer root user

 - [POST /consumers/verification/email/verify](https://api.weavr.io/products/multi/openapi/authorised-signatories/consumerrootuseremailverify.md): 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\".

## Trusted Payees

Manage a list of trusted payees for Outgoing wire transfers and Sends.

Aside from convenience and a reduced chance of making errors when making transactions,
this allows for the introduction an SCA exemption, where the account holder can request
that transactions to `TRUSTED` payees to be exempted from the requirement to pass
an SCA challenge every time.


### Add payees

 - [POST /beneficiaries](https://api.weavr.io/products/multi/openapi/trusted-payees/beneficiarybatchcreate.md): Payees (previously "beneficiaries"). Create one or more payees for the logged-in corporate or consumer identity.

### Get all payees

 - [GET /beneficiaries](https://api.weavr.io/products/multi/openapi/trusted-payees/beneficiariesget.md): Payees (previously "beneficiaries"). Retrieves the payees that match the query parameters.

### Remove payees

 - [POST /beneficiaries/remove](https://api.weavr.io/products/multi/openapi/trusted-payees/beneficiarybatchremove.md): Payees (previously "beneficiaries"). Removes one or more payees from the payees list identified by the id path parameter used in the array.

### Get a payee

 - [GET /beneficiaries/{id}](https://api.weavr.io/products/multi/openapi/trusted-payees/beneficiaryget.md): Payees (previously "beneficiaries"). Retrieves a payee identified by the id path parameter.

### Get all payee batches

 - [GET /beneficiaries/batch](https://api.weavr.io/products/multi/openapi/trusted-payees/beneficiarybatchesget.md): Payees (previously "beneficiaries"). Retrieves all payee batches matching the query parameters and that belong to the logged-in identity.

### Get a batch of payees

 - [GET /beneficiaries/batch/{id}](https://api.weavr.io/products/multi/openapi/trusted-payees/beneficiarybatchget.md): Payees (previously "beneficiaries"). Retrieves the details of a payee batch identified by the batchId path parameter.

### Issue OTP to verify batch

 - [POST /beneficiaries/batch/{id}/challenges/otp/{channel}](https://api.weavr.io/products/multi/openapi/trusted-payees/beneficiarybatchscachallenge.md): Payees (previously "beneficiaries"). Starts the verification process for updating the payees batch in which a one-time password is sent to a device belonging to the logged-in user that was previously enrolled through the /authentication_factors/otp/{channel} endpoint.

You should only start this process if the payee update state is PENDING_CHALLENGE.

_Note that on the Sandbox Environment, text messages are not sent and the one-time-password is always \"123456\"._

### Verify batch using OTP

 - [POST /beneficiaries/batch/{id}/challenges/otp/{channel}/verify](https://api.weavr.io/products/multi/openapi/trusted-payees/beneficiarybatchscaverify.md): Payees (previously "beneficiaries"). Completes the verification process for updating the payee batch.

If the outcome of the verification is successful, the payee update batch is executed.

_Note that on the Sandbox Environment, text messages are not sent and the verificationCode is always \"123456\"._

### Issue push to verify batch

 - [POST /beneficiaries/batch/{id}/challenges/push/{channel}](https://api.weavr.io/products/multi/openapi/trusted-payees/beneficiarybatchscachallengepush.md): Payees (previously "beneficiaries"). Starts the verification process for updating a payee batch in which a push notification is sent 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 payee update operation state is PENDING_CHALLENGE.

## Managed Accounts

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.


### Get all managed accounts

 - [GET /managed_accounts](https://api.weavr.io/products/multi/openapi/managed-accounts/managedaccountsget.md): Retrieves all managed accounts belonging to the logged-in identity.

### Create a managed account

 - [POST /managed_accounts](https://api.weavr.io/products/multi/openapi/managed-accounts/managedaccountcreate.md): 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."

### Get a managed account

 - [GET /managed_accounts/{id}](https://api.weavr.io/products/multi/openapi/managed-accounts/managedaccountget.md): Fetch the managed account identified by the id in path.

### Update a managed account

 - [PATCH /managed_accounts/{id}](https://api.weavr.io/products/multi/openapi/managed-accounts/managedaccountupdate.md): Update the details for the managed account identified by the id in the path.

### Upgrade a managed account with IBAN

 - [POST /managed_accounts/{id}/iban](https://api.weavr.io/products/multi/openapi/managed-accounts/managedaccountsibanupgrade.md): 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.

### Get a managed account IBAN

 - [GET /managed_accounts/{id}/iban](https://api.weavr.io/products/multi/openapi/managed-accounts/managedaccountibanget.md): Fetch the IBAN details associated with the Managed Account identified by the id in the path.

### Block a managed account

 - [POST /managed_accounts/{id}/block](https://api.weavr.io/products/multi/openapi/managed-accounts/managedaccountblock.md): Temporarily blocks a managed account.

### Unblock a managed account

 - [POST /managed_accounts/{id}/unblock](https://api.weavr.io/products/multi/openapi/managed-accounts/managedaccountunblock.md): 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.

### Get a managed account statement

 - [GET /managed_accounts/{id}/statement](https://api.weavr.io/products/multi/openapi/managed-accounts/managedaccountstatement.md): Returns a statement for the managed account identified by the id path parameter.

The statement contains only posted/completed transactions where funds have definitively moved
(the actual balance of the instrument changed). Pending transactions are excluded.

Repeated requests for the same statement period will return the same result.

### Get transaction activity for a managed account

 - [GET /managed_accounts/{id}/transactions](https://api.weavr.io/products/multi/openapi/managed-accounts/managedaccounttransactionsget.md): Returns all transactional activity on the managed account identified by the id path parameter.

Unlike the statement endpoint, this includes pending, completed, failed, and rejected transactions.
All transaction types are returned in a unified schema.

### Get a specific transaction for a managed account

 - [GET /managed_accounts/{id}/transactions/{transactionId}](https://api.weavr.io/products/multi/openapi/managed-accounts/managedaccounttransactionget.md): Returns a specific transaction on the managed account.

### Remove a managed account

 - [POST /managed_accounts/{id}/remove](https://api.weavr.io/products/multi/openapi/managed-accounts/managedaccountremove.md): 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.

### Get a managed account statement (deprecated) (deprecated)

 - [GET /deprecated/managed_accounts/{id}/statement](https://api.weavr.io/products/multi/openapi/managed-accounts/managedaccountstatementdeprecated.md): Deprecated in favour of GET /managed_accounts/{id}/statements. Returns a list of transactions against the managed account identified by the id path parameter, matching the criteria provided in the request.

## Managed Cards

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.


### Create a managed card

 - [POST /managed_cards](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardcreate.md): 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.

### Get all managed cards

 - [GET /managed_cards](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardsget.md): Fetch cards matching the search criteria provided.

### Get a managed card

 - [GET /managed_cards/{id}](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardget.md): Returns all details of the managed card identified by the id path parameter.

### Update a managed card

 - [PATCH /managed_cards/{id}](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardupdate.md): Update the details of the managed card identified by the id path parameter.

### Block a managed card

 - [POST /managed_cards/{id}/block](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardblock.md): Blocks the managed card identified by the id path parameter. This is a reversible action and the card can be unblocked using the _managedCardUnblock_ operation.

### Unblock a managed card

 - [POST /managed_cards/{id}/unblock](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardunblock.md): Unblocks the managed card identified by the id path parameter.
The managed card must have state.blockedReason as USER so that it can be unblocked.
If the managed card was blocked by SYSTEM, users cannot unblock it.

### Remove a managed card

 - [POST /managed_cards/{id}/remove](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardremove.md): Destroys the managed card identified by the id path parameter. Unlike block, this action is not reversible.

A managed card must be empty before it can be destroyed using this operation.

### Get a managed card statement

 - [GET /managed_cards/{id}/statement](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardstatement.md): Returns a statement for the managed card identified by the id path parameter.

The statement contains only posted/completed transactions where funds have definitively moved. Pre-paid mode cards hold their own balance and so the openingBalance, closingBalance and balanceAfter refer only to the requested card. Debit-mode cards are linked to a parent Managed Account, which can have its own independent transactions that effect the balance. Therefore running balances in this response will not map exactly to card transactions.

Pending transactions (authorisations) are excluded from the statement.

### Get transaction activity for a managed card

 - [GET /managed_cards/{id}/transactions](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardtransactionsget.md): Returns all transactional activity on the managed card identified by the id path parameter.

This includes pending authorisations, completed settlements, refunds, and all other card transaction types
in a unified schema.

### Get a specific transaction for a managed card

 - [GET /managed_cards/{id}/transactions/{transactionId}](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardtransactionget.md): Returns a specific transaction on the managed card.

### Upgrade a card to physical

 - [POST /managed_cards/{id}/physical](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardphysicalupgrade.md): Upgrades the virtual card identified by the id path parameter to physical.

Before cards can be upgraded, a physical card programme must be set up and the card profile configuration updated accordingly.

### Activate a physical card

 - [POST /managed_cards/{id}/physical/activate](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardphysicalactivate.md): Activates the physical card identified by the id path paramter.

### Get PIN for a physical card

 - [GET /managed_cards/{id}/physical/pin](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardphysicalpinget.md): Retrieves the PIN of the physical card identified by the id path parameter.

### Unblock PIN for a physical card

 - [PATCH /managed_cards/{id}/physical/pin/unblock](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardphysicalpinunblock.md): Physical cards can be marked as pinBlocked if there are too many failed PIN attempts.

Use this operation to unblock a PIN so that the card can be used again.

### Replace a damaged physical card

 - [POST /managed_cards/{id}/physical/replace_damaged](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardphysicalreplacedamaged.md): Report as damaged, and replace the physical card identified by the id path parameter.

### Report a physical card as lost

 - [POST /managed_cards/{id}/physical/report_lost](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardphysicalreportlost.md): Report the physical card identified by the id path parameter as lost. This will deactivate the instrument and a new card will need to be requested.

### Report a physical card as stolen

 - [POST /managed_cards/{id}/physical/report_stolen](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardphysicalreportstolen.md): Report the physical card identified by the id path parameter as stolen. This will destroy the instrument and a new replacement card will need to be requested.

Once a replacement is requested, any funds remaining on this destroyed card will be transferred to the replacement card."

### Replace a lost or stolen physical card

 - [POST /managed_cards/{id}/physical/replace_lost_stolen](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardphysicalreplacelostorstolen.md): Issue a replacement for the physical card, identified by the id path parameter, that has already been reported as lost or stolen.

Any funds (that are not blocked pending a purchase for a previous authorisation) remaining on the card will be automatically transferred to the new replacement card.

### Reset contactless limit for a physical card

 - [POST /managed_cards/{id}/physical/contactless_limit/reset](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardphysicalcontactlesslimitreset.md): For security purposes, the cardholder needs to provide the PIN after a number of contactless purchases. Use this operation to reset the physical card's contactless limit.
The contactless limit can only be reset for physical cards having the wearable form factor.

### Get a managed card statement (deprecated) (deprecated)

 - [GET /deprecated/managed_cards/{id}/statement](https://api.weavr.io/products/multi/openapi/managed-cards/managedcardstatementdeprecated.md): Deprecated in favour of GET /managed_cards/{id}/statements. Returns a list of transactions against the managed card identified by the id path parameter, matching the criteria provided in the request.

## Transfers

The Transfer transaction is used to transfer funds between managed accounts and managed cards belonging to same identity.


### Create a transfer transaction

 - [POST /transfers](https://api.weavr.io/products/multi/openapi/transfers/transfercreate.md): Transfers funds between managed accounts and managed cards belonging to the same corporate or consumer identity.

The Transfer Profile (configured in the Multi Portal) specified determines the behaviour and restrictions of the transaction (for example, fees).

### Get all transfer transactions

 - [GET /transfers](https://api.weavr.io/products/multi/openapi/transfers/transfersget.md): Retrieves all the transfer transactions performed by the logged-in identity.

### Cancel transfer transactions

 - [POST /transfers/bulk/cancel](https://api.weavr.io/products/multi/openapi/transfers/transfercancel.md): Cancels transfers that are scheduled to be executed in the future.

### Get a transfer transaction

 - [GET /transfers/{id}](https://api.weavr.io/products/multi/openapi/transfers/transferget.md): Retrieve the transfer transaction identified by the id path parameter.

## Transaction Activity

Retrieve the consolidated transaction activity across instruments.

### Get all transaction activity

 - [GET /transactions](https://api.weavr.io/products/multi/openapi/transaction-activity/transactionsget.md): Returns all transactional activity across all managed accounts and managed cards.

This provides a single view of all transfers, sends, wire transfers, card payments, fees, and other
transaction types regardless of which wallet they belong to.

creationTimestamp is when the transaction was created in its owning service (the same value the
nested transaction object reports), and is the field the creation-window filter applies to.
Transactions that are committed but not yet executed (e.g. scheduled wire transfers) appear with
status SUBMITTED; such transactions never appear on statements until they execute.

A transfer between two of the caller's own instruments (e.g. between a managed account and a
managed card belonging to the same identity) returns two entries — a DEBIT on the source
instrument and a CREDIT on the destination instrument — which share the same id and differ by
instrument. Treat (id, instrument) as the key when reconciling, and note that such a transfer
contributes 2 to the count. The per-instrument activity endpoints
(/managed_accounts/{id}/transactions, /managed_cards/{id}/transactions) are scoped to one
instrument and so still show the single relevant side.

## Incoming Wire Transfers

Incoming wire transfers received from external bank accounts to managed accounts with IBANs.


### Get all incoming wire transfers

 - [GET /incoming_wire_transfers](https://api.weavr.io/products/multi/openapi/incoming-wire-transfers/incomingwiretransfersget.md): Returns all incoming wire transfers for the authenticated identity.

### Get an incoming wire transfer

 - [GET /incoming_wire_transfers/{id}](https://api.weavr.io/products/multi/openapi/incoming-wire-transfers/incomingwiretransferget.md): Returns a specific incoming wire transfer.

### Approve or reject incoming wire transfers

 - [POST /bank_transfers_in/authorisation_request](https://api.weavr.io/products/multi/openapi/incoming-wire-transfers/banktransferinforwarding.md)

## Outgoing Wire Transfers

The Outgoing Wire Transfer transaction is used to transfer funds from managed accounts to an external bank account.


### Create an outgoing wire transfer

 - [POST /outgoing_wire_transfers](https://api.weavr.io/products/multi/openapi/outgoing-wire-transfers/outgoingwiretransfercreate.md): Transfers funds from managed accounts to an external bank account.

The Outgoing Wire Transfer Profile (configured in the Multi Portal) specified determines the behaviour and restrictions of the transaction (for example, fees).

Note that even if the transaction is created successfully, you still need to check its state in order to determine if it is pending completion of an authentication challenge by the user.

### Get all outgoing wire transfer transactions

 - [GET /outgoing_wire_transfers](https://api.weavr.io/products/multi/openapi/outgoing-wire-transfers/outgoingwiretransfersget.md): Retrieves all the outgoing wire transfer transactions performed by the logged-in identity.

### Get an outgoing wire transfer transaction

 - [GET /outgoing_wire_transfers/{id}](https://api.weavr.io/products/multi/openapi/outgoing-wire-transfers/outgoingwiretransferget.md): Retrieves the outgoing wire transfer identified by the id path parameter.

### Update the beneficiary name of an outgoing wire transfer

 - [PATCH /outgoing_wire_transfers/{id}](https://api.weavr.io/products/multi/openapi/outgoing-wire-transfers/outgoingwiretransferupdatebeneficiaryname.md): Update the beneficiary name of an OWT in PENDING_CONFIRMATION state. Clears and re-runs CoP/VoP validation with the new name.

### Get an outgoing wire transfer payment confirmation

 - [GET /outgoing_wire_transfers/{id}/payment_confirmation](https://api.weavr.io/products/multi/openapi/outgoing-wire-transfers/outgoingwiretransferpaymentconfirmation.md): Returns a payment-confirmation PDF for the completed outgoing wire transfer identified by the id path parameter. If the transfer was subsequently returned, the document also includes the return details.

### Cancel an outgoing wire transfer transaction

 - [POST /outgoing_wire_transfers/{id}/cancel](https://api.weavr.io/products/multi/openapi/outgoing-wire-transfers/outgoingwiretransfersinglecancel.md): Cancel the outgoing wire transfer identified by the id path parameter.

### Confirm an outgoing wire transfer transaction

 - [POST /outgoing_wire_transfers/{id}/confirm](https://api.weavr.io/products/multi/openapi/outgoing-wire-transfers/outgoingwiretransferconfirm.md): Confirm the outgoing wire transfer identified by the id path parameter.

### Issue a one-time password that can be used to verify an outgoing wire transfer (deprecated)

 - [POST /outgoing_wire_transfers/{id}/challenges/otp/{channel}](https://api.weavr.io/products/multi/openapi/outgoing-wire-transfers/outgoingwiretransferscachallenge.md): Deprecated in favour of Challenges endpoints

Starts the verification process for an outgoing wire transfer in which a one-time password is sent to a device belonging to the logged-in user that was previously enrolled through the /authentication_factors/otp/{channel} endpoint.

You should only start this process if the outgoing wire transfer state is PENDING_CHALLENGE.

_Note that on the Sandbox Environment, text messages are not sent and the one-time-password is always \"123456\"._

### Verify an outgoing wire transfer using a one-time password (deprecated)

 - [POST /outgoing_wire_transfers/{id}/challenges/otp/{channel}/verify](https://api.weavr.io/products/multi/openapi/outgoing-wire-transfers/outgoingwiretransferscaverify.md): Deprecated in favour of Challenges endpoints

Completes the verification process for an outgoing wire transfer.

If the outcome of the verification is successful, the outgoing wire transfer transaction is executed.

If not verified challenge expires after 5 minutes and the number of incorrect OTP attempts is limited to reduce the risk of fraud.

_Note that on the Sandbox Environment, text messages are not sent and the verificationCode is always \"123456\"._

### Issue a push notification that can be used to verify an outgoing wire transfer (deprecated)

 - [POST /outgoing_wire_transfers/{id}/challenges/push/{channel}](https://api.weavr.io/products/multi/openapi/outgoing-wire-transfers/outgoingwiretransferscachallengepush.md): Deprecated in favour of Challenges endpoints

Starts the verification process for an outgoing wire transfer in which a push notification is sent 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 outgoing wire transfer state is PENDING_CHALLENGE.

## Correspondent Bank Transfers

Correspondent bank transfers allow financial institutions to initiate wire transfers on behalf of originators (third parties).
These transfers comply with travel rule requirements by capturing and transmitting originator information.


### Create a correspondent bank transfer

 - [POST /correspondent_bank_transfers](https://api.weavr.io/products/multi/openapi/correspondent-bank-transfers/correspondentbanktransfercreate.md): Creates an outgoing wire transfer on behalf of an originator (correspondent banking).

This endpoint is designed for correspondent banking use cases where a financial institution
initiates a wire transfer on behalf of another party (the originator).

The Outgoing Wire Transfer Profile (configured in the Multi Portal) specified determines the behaviour
and restrictions of the transaction (for example, fees).

### Get all correspondent bank transfer transactions

 - [GET /correspondent_bank_transfers](https://api.weavr.io/products/multi/openapi/correspondent-bank-transfers/correspondentbanktransfersget.md): Retrieves all correspondent bank transfer transactions.

### Get a correspondent bank transfer transaction

 - [GET /correspondent_bank_transfers/{id}](https://api.weavr.io/products/multi/openapi/correspondent-bank-transfers/correspondentbanktransferget.md): Retrieves the correspondent bank transfer identified by the id path parameter.

### Cancel a correspondent bank transfer transaction

 - [POST /correspondent_bank_transfers/{id}/cancel](https://api.weavr.io/products/multi/openapi/correspondent-bank-transfers/correspondentbanktransfercancel.md): Cancel the correspondent bank transfer identified by the id path parameter.

### Confirm a correspondent bank transfer transaction

 - [POST /correspondent_bank_transfers/{id}/confirm](https://api.weavr.io/products/multi/openapi/correspondent-bank-transfers/correspondentbanktransferconfirm.md): Confirm the correspondent bank transfer identified by the id path parameter.

## Card Payments

Retrieve card payment activity, including authorisations, settlements, and related events.

### Get all card payments

 - [GET /card_payments](https://api.weavr.io/products/multi/openapi/card-payments/cardpaymentsget.md): Returns the aggregated card payments for the logged-in identity. A CardPayment represents the full lifecycle of a card payment (authorisation + settlements + optional reversal/expiry/refund/original credit) as a single business-level entity.

### Get a single card payment

 - [GET /card_payments/{id}](https://api.weavr.io/products/multi/openapi/card-payments/cardpaymentget.md): Returns a single card payment by id.

### Get all card payment events

 - [GET /card_payment_events](https://api.weavr.io/products/multi/openapi/card-payments/cardpaymenteventsget.md): Returns a flat, chronological list of card payment events across one or more card payments. Each entry carries the event plus the parent CardPayment context (card, merchant, group).

## Spend Controls

Manage spend rules and authorisation forwarding to approve or reject card payments in real time.

### Get all spend rules for a managed card

 - [GET /managed_cards/{id}/spend_rules](https://api.weavr.io/products/multi/openapi/spend-controls/managedcardspendrulesget.md): Fetch the list of spend rules associated with the managed card identified by the id path parameter.

### Create spend rules for a managed card

 - [POST /managed_cards/{id}/spend_rules](https://api.weavr.io/products/multi/openapi/spend-controls/managedcardspendrulescreate.md): Create the spend rules associated with the managed card identified by the id path parameter.

### Update spend rules for a managed card

 - [PATCH /managed_cards/{id}/spend_rules](https://api.weavr.io/products/multi/openapi/spend-controls/managedcardspendrulesupdate.md): Must be user after a POST, to update individual spend rules associated with the managed card identified by the id path parameter.

### Delete all spend rules for a managed card

 - [DELETE /managed_cards/{id}/spend_rules](https://api.weavr.io/products/multi/openapi/spend-controls/managedcardspendrulesdelete.md): Remove all spend rules associated with the managed card identified by the id path parameter.

### Approve or reject card payments

 - [POST /managed_cards/authorisation_request](https://api.weavr.io/products/multi/openapi/spend-controls/managed_cards_authorisation_forwarding.md): Receive purchase authorisation events and choose if to approve or decline them by replying to the event.

Switch on Authorisation Forwarding in your Sandbox Innovator Portal and configure the Authorisation Forwarding URL to start receiving these events. Weavr will send webhook events on the following URL {Authorisation Forwarding URL}/managed_cards_authorisation_forwarding.

A response is expected in 1.5s, after which the Default Timeout Response configured in the card profile or the card authForwardingDefaultTimeoutDecision parameter will be used.

## Sends

The Send transaction is used to send funds between managed accounts and managed cards belonging to different identities.


### Create a send transaction

 - [POST /sends](https://api.weavr.io/products/multi/openapi/sends/sendcreate.md): Sends funds between managed accounts and managed cards belonging to different corporate or consumer identities.

The Send Profile (configured in the Multi Portal) specified determines the behaviour and restrictions of the transaction (for example, fees).

### Get all send transactions

 - [GET /sends](https://api.weavr.io/products/multi/openapi/sends/sendsget.md): Retrieves all the send transactions performed by the logged-in identity.

### Get a send transaction

 - [GET /sends/{id}](https://api.weavr.io/products/multi/openapi/sends/sendget.md): Retrieve the send transaction identified by the id path parameter.

### Cancel a send transaction

 - [POST /sends/{id}/cancel](https://api.weavr.io/products/multi/openapi/sends/sendsinglecancel.md): Cancel the send transaction identified by the id path parameter.

### Issue a one-time password that can be used to verify a send (deprecated)

 - [POST /sends/{id}/challenges/otp/{channel}](https://api.weavr.io/products/multi/openapi/sends/sendscachallenge.md): Deprecated in favour of Challenges endpoints

Starts the verification process for a send in which a one-time password is sent to a device belonging to the logged-in user that was previously enrolled through the /authentication_factors/otp/{channel} endpoint.

You should only start this process if the send state is PENDING_CHALLENGE.

_Note that on the Sandbox Environment, text messages are not sent and the one-time-password is always \"123456\"._

### Verify a send using a one-time password (deprecated)

 - [POST /sends/{id}/challenges/otp/{channel}/verify](https://api.weavr.io/products/multi/openapi/sends/sendscaverify.md): Deprecated in favour of Challenges endpoints

Completes the verification process for a Send.

If the outcome of the verification is successful, the send is executed.

If not verified challenge expires after 5 minutes and the number of incorrect OTP attempts is limited to reduce the risk of fraud.

_Note that on the Sandbox Environment, text messages are not sent and the verificationCode is always \"123456\"._

### Issue a push notification that can be used to verify Send transaction (deprecated)

 - [POST /sends/{id}/challenges/push/{channel}](https://api.weavr.io/products/multi/openapi/sends/sendscachallengepush.md): Deprecated in favour of Challenges endpoints

Starts the verification process for a Send in which a push notification is sent 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 Send transaction state is PENDING_CHALLENGE.

## Fees

Charge and retrieve in-platform fees.

### Charge fee to a corporate

 - [POST /corporates/fees/charge](https://api.weavr.io/products/multi/openapi/fees/corporatechargefee.md): 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.

### (NEW) Get all fees

 - [GET /fees](https://api.weavr.io/products/multi/openapi/fees/feesget.md): Returns the fee transactions accrued by the logged-in identity — every FeeTransaction posted against any of the identity's instruments, filterable by time window.

For surfaces that need fees inline with their parent activity, the same FeeTransaction records are also exposed via the Transaction Activity API and on Statements V2.

### Charge fee to a consumer

 - [POST /consumers/fees/charge](https://api.weavr.io/products/multi/openapi/fees/consumerchargefee.md): 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.

## Operations

### Create users in bulk

 - [POST /bulks/users](https://api.weavr.io/products/multi/openapi/operations/bulksusercreate.md): Submit the details for the creation of a batch of Authorised Users 

The bulkId returned in the response can subsequently be used to launch the execution of the bulk process through Execute Bulk Process. A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.

The status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.

The submission of data for a bulk process does not expire but it can be cancelled through Cancel Bulk Process.

The system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations

Each individual operation in this bulk will be processed via Create a User.

### Send user invites in bulk

 - [POST /bulks/users/_user_id_/invite](https://api.weavr.io/products/multi/openapi/operations/bulksuserinvitesend.md): Submit the details for the creation of a batch of Authorised User invites

The bulkId returned in the response can subsequently be used to launch the execution of the bulk process through Execute Bulk Process. A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.

The status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.

The submission of data for a bulk process does not expire but it can be cancelled through Cancel Bulk Process.

The system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations

Each individual operation in this bulk will be processed via Send a User Invite.

### Block cards in bulk

 - [POST /bulks/managed_cards/_id_/block](https://api.weavr.io/products/multi/openapi/operations/bulksmanagedcardblock.md): Submit the details to block Managed Cards.

The bulkId returned in the response can subsequently be used to launch the execution of the bulk process through Execute Bulk Process. A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.

The status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.

The submission of data for a bulk process does not expire but it can be cancelled through Cancel Bulk Process.

The system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations.

Each individual operation in this bulk will be processed via Block a Managed Card.

### Unblock cards in bulk

 - [POST /bulks/managed_cards/_id_/unblock](https://api.weavr.io/products/multi/openapi/operations/bulksmanagedcardunblock.md): Submit the details to unblock Managed Cards.

The bulkId returned in the response can subsequently be used to launch the execution of the bulk process through Execute Bulk Process. A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.

The status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.

The submission of data for a bulk process does not expire but it can be cancelled through Cancel Bulk Process.

The system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations.

Each individual operation in this bulk will be processed via Unblock a Managed Card.

### Remove cards in bulk

 - [POST /bulks/managed_cards/_id_/remove](https://api.weavr.io/products/multi/openapi/operations/bulksmanagedcardremove.md): Submit the details to remove Managed Cards.

The bulkId returned in the response can subsequently be used to launch the execution of the bulk process through Execute Bulk Process. A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.

The status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.

The submission of data for a bulk process does not expire but it can be cancelled through Cancel Bulk Process.

The system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations.

Each individual operation in this bulk will be processed via Remove a Managed Card.

### Update spend rules for a managed card in bulk

 - [PATCH /bulks/managed_cards/_id_/spend_rules](https://api.weavr.io/products/multi/openapi/operations/bulksmanagedcardspendrulesupdate.md): Submit the details to update the spend rules of Managed Cards

The bulkId returned in the response can subsequently be used to launch the execution of the bulk process through Execute Bulk Process. A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.

The status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.

The submission of data for a bulk process does not expire but it can be cancelled through Cancel Bulk Process.

The system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations

Each individual operation in this bulk will be processed via Update Spend Rules for a Managed Card.

### Create transfer transactions in bulk

 - [POST /bulks/transfers](https://api.weavr.io/products/multi/openapi/operations/bulkstransfercreate.md): Submit the details for the creation of a batch of Transfers.

The bulkId returned in the response can subsequently be used to launch the execution of the bulk process through Execute Bulk Process. A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.

The status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.

The submission of data for a bulk process does not expire but it can be cancelled through Cancel Bulk Process.

The system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations.

Each individual operation in this bulk will be processed via Create a Transfer Transaction.

### Create send transactions in bulk

 - [POST /bulks/sends](https://api.weavr.io/products/multi/openapi/operations/bulkssendcreate.md): Submit the details for the creation of a batch of Sends.

The bulkId returned in the response can subsequently be used to launch the execution of the bulk process through Execute Bulk Process. A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.

The status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.

The submission of data for a bulk process does not expire but it can be cancelled through Cancel Bulk Process.

The system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations.

Each individual operation in this bulk will be processed via Create a Send Transaction.

### Create an outgoing wire transfer in bulk

 - [POST /bulks/outgoing_wire_transfers](https://api.weavr.io/products/multi/openapi/operations/bulksoutgoingwiretransfercreate.md): Submit the details for the creation of a batch of Outgoing Wire Transfers.

The bulkId returned in the response can subsequently be used to launch the execution of the bulk process through Execute Bulk Process. A submitted bulk process can be managed (executed, accessed, paused, resumed and cancelled) by any Authorised User of the same identity of the user that submits the details.

The status of the bulk process after execution of this operation is set to ‘SUBMITTED’. The execution of the bulk process is launched through the Execute bulk process operation.

The submission of data for a bulk process does not expire but it can be cancelled through Cancel Bulk Process.

The system is configured to accept bulk requests to process up to a maximum of 10,000 bulk operations.

Each individual operation in this bulk will be processed via Create an Outgoing Wire Transaction.

## Manage

Manage bulk processes that group together multiple operations to be executed asynchronously.


### Get all bulk processes

 - [GET /bulks](https://api.weavr.io/products/multi/openapi/manage/bulks.md): Filter bulk processes.

### Get bulk process

 - [GET /bulks/{bulk_id}](https://api.weavr.io/products/multi/openapi/manage/bulkid.md): Retrieves details on the bulk process identified by the bulk_id parameter.

### Get all operations in a bulk

 - [GET /bulks/{bulk_id}/operations](https://api.weavr.io/products/multi/openapi/manage/bulkidoperations.md): Retrieves the bulk process operations that match the query parameters.

### Execute bulk process

 - [POST /bulks/{bulk_id}/execute](https://api.weavr.io/products/multi/openapi/manage/bulkidexecute.md): Launches execution of operations of any bulk process identified by the bulk_id  parameter.

The status of the bulk process has to be in a ‘SUBMITTED’ state and after execution initiates, the bulk process state is set to ‘RUNNING’.

The final state of execution can be any of

COMPLETED: the execution of the bulk process is complete and all bulk operations of the bulk process were executed successfully

FAILED:  none of the operations of the bulk process have executed.

PARTIALLY_COMPLETED: the execution of the bulk process is complete and some of the bulk operations of the bulk process failed.

This operation is asynchronous and will return immediately. You can track the status of the execution of the bulk process through Get bulk process. You can also pause execution through _bulkIdPause_

### Pause bulk process

 - [POST /bulks/{bulk_id}/pause](https://api.weavr.io/products/multi/openapi/manage/bulkidpause.md): Pauses the execution of operations of the bulk process that is in state ‘RUNNING’ as identified by the bulk_id  parameter.

The status of the bulk process after execution of this operation is set to ‘PAUSED’

The execution can be resumed through _bulkIdResume_

### Resume bulk process

 - [POST /bulks/{bulk_id}/resume](https://api.weavr.io/products/multi/openapi/manage/bulkidresume.md): Resumes the execution of operations of the bulk process that is in state ' PAUSED' as identified by the bulk_id parameter.

The status of the bulk process after execution of this operation is set back to ‘RUNNING’

### Cancel bulk process

 - [POST /bulks/{bulk_id}/cancel](https://api.weavr.io/products/multi/openapi/manage/bulkidcancel.md): Cancels the execution of operations of a bulk process that is in state ‘PAUSED’ or ‘RUNNING’ as identified by the bulk_id parameter.

The status of the bulk process after execution of this operation is set  to ‘CANCELLED’. This is a final state and a cancelled bulk process cannot be resumed.

