Bulk payments

Further information on how to create bulk payments with Yapily.

The Bulk Payments product is available as a Beta version.


Bulk payment request

To create a bulk payment with the Yapily API, you specify an array of Single Payments and provide them to the payments object in the the BulkPaymentRequest when executing any of the bulk payment endpoints.

Depending on the restrictions of each Institution, you may have to make specific adjustments to the payments array. More information on these types of restrictions are listed below.

Account beneficiaries

For each Institution in the UK that has the limitation where each Payee must be a trusted beneficiary for the execution of the bulk payment to occur successfully, Yapily has introduced the ACCOUNT_BENEFICIARIES feature to allow TPPs to get all the beneficiaries for the Payer account to cross check that each Payee is a trusted beneficiary.

To access the beneficiaries of an account, you must obtain a valid AIS consent using [Create Account Authorisation] (/api/#create-account-authorisation) and then use the resultant consentToken to execute [Get Account Beneficiaries] (/api/#get-account-beneficiaries).

Unfortunately, it is not in scope for Open Banking to allow the dynamic adding of beneficiaries through Open Banking APIs so the payments service user must do this manually through their bank.

Execution

Once the bank is instructed to execute the payment, the bank will decide whether or not they execute the bulk as a whole, meaning that if 1 payment fails, the entire bulk will fail.

Known restrictions

Note

Bank restrictions change frequently, so this information may become out-of-date. If you are aware this is the case, please let us know.

Barclays

  • Only immediate domestic payments are supported
  • Maximum 50 payments per request
  • Minimum 5 payments per request
  • Minimum total payments amount is £1.00
  • Maximum total payments amount is £50,000
  • A reference for every payment is required

HSBC

  • Only scheduled domestic payments are supported
  • Does not support FPS but uses BACS
  • As a result, all payments must have a payment execution date that is 2-45 days in the future

Lloyds

  • Only immediate domestic and scheduled domestic payments are supported
  • Maximum 25 payments per request
  • Minimum total payments amount is £0.01 (1p)
  • Maximum total payments amount would be determined by the account limits on the specific accounts being used.
  • The property requestedExecutionDateTime is not supported for this bank
  • A reference for every payment is required
  • Only one Payer object should be specified in the bulk payment
  • Maximum 18 characters for payee.name
  • Maximum 18 characters for paymentIdempotencyId

Natwest

  • Only immediate domestic and scheduled domestic payments are supported
  • Maximum 25 payments per request
  • Each payment in the bulk must have the same payment type
  • Bulk payments are only accepted where all the creditors are trusted beneficiaries

RBS

  • Only immediate domestic and scheduled domestic payments are supported
  • Maximum 25 payments per request
  • Each payment in the bulk must have the same payment type
  • Bulk payments are only accepted where all the creditors are trusted beneficiaries

Santander

  • Only immediate domestic and scheduled domestic payments are supported
  • Maximum 1750 payments per request
  • For every payment in the bulk payment the same Payer object must be specified
  • Bulk payments are only accepted where all the creditors are trusted beneficiaries

Silicon Valley

  • The maximum payment size per request is 200
  • Payer is required in every payment and each payer must be the same
  • Supports only DOMESTIC_PAYMENT type but can be scheduled using the paymentRequest.executionDateTime
  • If paymentRequest.executionDateTime is the current day and lies on a weekend or outside the cutoff time of 04:30 - 16:30 UTC, will be rejected
  • If paymentRequest.executionDateTime is the current day, SVB does not look at the time of the field, only the time of execution (when request is sent)
  • If paymentRequest.executionDateTime is in the future, it can be on the weekend or outside the cutoff

Revolut

  • Payees must be set up as trusted beneficiaries on the payer account before a bulk payment is attempted
  • For bulk payments, payee.address.country , payee.address.postCode and payee.address.townName are mandatory for each payment in the bulk payment request
  • Revolut Business users can only authorise bulk payments via the web application and not the mobile app
  • There is a limit of 1000 payees per bulk payment
  • If the payee for a payment in a bulk payment file is a business, paymentRequest.payee.merchantCategoryCode should be provided

Virgin Money

  • The API endpoint lets you upload up to 150 file payment requests to Virgin
  • Support only JSON format for file upload
  • All the payments in the file should be of one payment type i.e. FPS, CHAPS or BACS
  • Virgin Money will upload the file payment consent resource for the given unique
  • Before calling the API, you must have an access token issued by Virgin Money using a 'Client Credentials' grant
  • POST /filepayments - This request instructs Virgin Money to begin the payment journey
  • Virgin Money will normally schedule the payment request immediately, but this may not always be possible, for example, during busy periods or if additional approvals are required
  • You must ensure the Initiation section of the payment matches the corresponding sections of the payment consent resource. Any discrepancy will generate an error response and we will not process the request

Solaris

  • The requested execution date should not be passed in the requests as it will be skipped in the request to institution
  • PSU-IP-ADDRESS is required for bulk payments