# Batch Orders

A batch order is a type of [SEPA Credit Transfer
(SCT)](/guides/digital-banking/sepa-transfers/sepa-credit-transfer)
that allows customers to create and authorize a batch of up to 1,000 SCTs.

Check the [overview](/guides/digital-banking/sepa-transfers/) page to
learn more about SEPA and the different types of SEPA payment schemes.

## Prerequisites

You must implement the following features before you can use SCT batch orders in
your solution:

- [Device Binding](/guides/authentication/device-binding/)
- [Strong Customer Authentication](/guides/authentication/strong-customer-authentication/)
- [SEPA Credit Transfers](/guides/digital-banking/sepa-transfers/sepa-credit-transfer)


## How does it work?

A batch works exactly like a standard SEPA Credit Transfer (SCT). However, since
a batch order is a high-volume transaction, Solaris performs additional
checks prior to execution.

1. The customer goes to their account to create a SCT batch order and provide
the details of each individual SCT, such as the reference, recipient IBAN,
name, amount, and transaction description.
2. After the customer creates the batch order, Solaris runs initial
validation checks, such as `available_balance`, account blocks and status,
reachability and the transaction details.
3. The customer authorizes the transaction using [two-factor authentication (2FA)](/guides/authentication/strong-customer-authentication) via
an SMS OTP or a device signing challenge. Only account owner(s) or
authorized person(s) can authorize the transaction.
4. Before executing a SCT, Solaris runs another set of validation checks,
such as `available_balance`, account blocks and status, and ensuring that
each SCT has a unique reference.
5. After successful validation, the batch order status changes to `ACCEPTED` and
the status of each individual SCT changes to `CREATED`.
6. Solaris creates a reservation on the account equal to the full amount of
the batch order until each individual SCT is processed and booked on the
account. Individual SCTs have the booking type `SEPA_CREDIT_TRANSFER`.
7. The beneficiary generally receives the money within one business day from the
transaction's execution.


### Execution rules

- Solaris executes SEPA Credit Transfers on each banking day every hour
between 07:00 - 20:00.
- If an execution date falls on a bank holiday or a weekend, the beneficiary
receives the transfer on the next banking day.


### Acceptance criteria

Solaris runs additional validation checks on batch SCT orders twice:

1. After creating a batch order
2. After the customer authorizes the batch order


**Validation checks after creating the order**

After the customer creates a batch order, Solaris validates the following
criteria before an order can be `ACCEPTED`:

- **Sender's account**: The account `locking_status` should be `NO_BLOCK` and
the account `status` should be `ACTIVE`.
- **Sender's account balance**: The account's available balance should be equal
to the full amount of the batch order.
- **Transactions reference numbers**: All individual SCTs must have a unique
reference number.
- **Batch order size**: The size of the order may not exceed 1,000 SCTs.
- **Recipient's account reachability**: Solaris validates if the recipient's
account is reachable for the SEPA framework.
- **Recipient's account**: Solaris checks the recipient's account, its
balance, status, and block state.


If the batch order fulfills these criteria, the order's status will be set to
`AUTHORIZATION_REQUIRED` until the customer authorizes the transaction using
2FA. Otherwise, the API will return an exception.

**Validation checks after authorizing the order**

After the customer authorizes the batch order using 2FA, Solaris validates
the following criteria before an order can be `ACCEPTED`:

- **Sender's account**: The account `locking_status` should be `NO_BLOCK` and the
account `status` should be `ACTIVE`.
- **Sender's account balance**: The account's available balance should be equal
to the full amount of the batch order.
- **Transactions reference numbers**: All individual SCTs must have a unique
reference number.


If the batch order fulfills this criteria, the order's status will be set to
`ACCEPTED` and the individual SCTs will be `CREATED`. However, if the final
validation checks fail, the batch order status will be set to `FAILED`.