Pay By Bank
Fabrick Pay by Bank is an A2A (Account-to-Account) payment method based on standard or instant SEPA credit transfers, compliant with PSD2 regulations and integrated into the Fabrick Payment Orchestra gateway.
It allows merchants to receive funds directly into their bank account — whether held at Banca Sella or another institution — through a smooth and secure user experience, without the customer needing to manually access their own internet banking.
Key Features
- A2A Payment Method
Fabrick Pay by Bank enables payment initiation via SEPA credit transfer directly from the payer's bank account, in standard or instant mode, depending on availability at the user's bank.
- PSD2 and Open Banking Compliance
The method leverages Open Banking for payment authentication and authorization, in compliance with PSD2 regulations, via direct connection with the payer's bank.
- Standard or Instant SEPA Credit Transfer
The merchant receives payment via SEPA credit transfer. Whether the transfer is standard or instant depends on the user's selection and their bank's support. The user experience and flow are identical regardless of the mode.
- Irrevocable Payment
Once confirmed, the transfer cannot be reversed by the payer. This drastically reduces the risk of disputes and chargebacks for the merchant.
- Guided and User-Friendly Interface
The payment flow guides the user step-by-step in a clear manner, including on mobile, leveraging the banking authentication the user is already familiar with.
- Lower Costs Compared to Cards and Wallets
The method has lower operational costs compared to traditional payment circuits, making it an advantageous choice for merchants, especially for medium-to-high value payments.
- Automatic Reconciliation (Banca Sella accounts only)
The Fabrick Payment Orchestra platform enables automatic reconciliation between received transfers and generated orders, thanks to payment-level information (e.g. CRO, buyer's IBAN).
- Asynchronous Payment Outcome Notification
The payment outcome (executed or failed) is notified via webhook, including for standard transfers, once confirmation is received from the receiving bank.
Stakeholders Involved
-
Buyer: authorizes the transfer through their own home banking
-
Merchant: receives the payment directly into their bank account
-
Fabrick Payment Orchestra: manages the orchestration of the payment flow and monitors the transaction status
-
Fabrick (Payment Initiation Service Provider – PISP): a regulated entity that initiates the payment request in a secure and PSD2-compliant manner, acting as a bridge between Payment Orchestra and the buyer's bank
-
Buyer's bank: physically executes the transfer following the initiation request transmitted by Fabrick
Prerequisites
-
Signed Ecommerce contract with Fabrick.
-
It is recommended to activate the product with a Banca Sella account.
-
It is possible to use Fabrick Pay by Bank with an account held at a bank other than Banca Sella, but since no updates on the actual credit of the transfer will be received, manual reconciliation will be required.
How It Works
-
The merchant activates the payment method via Payment Orchestra
-
At checkout, the buyer selects "Fabrick Pay by Bank" as the payment method
-
The bank transfer payment flow begins:
-
The user selects their bank
-
If applicable, they select the type of transfer (standard or instant)
-
Authentication via Strong Customer Authentication (SCA) is performed
-
-
At the end of the operation, the buyer sees the payment outcome
-
The payment status is updated in real time on the platform
Transfer Type (Standard or Instant)
Store-level Configuration
The Fabrick Pay by Bank integration on Payment Orchestra includes a per-store configuration that determines the transfer types enabled for that merchant. The available options are:
-
standard transfer only
-
instant transfer only
-
both modes
This configuration determines which payment options will actually be offered to the buyer at checkout:
-
if only standard transfer is configured, instant transfer will never be offered
-
if only instant transfer is configured, standard transfer will never be offered
-
if both are configured, both options will be presented to the buyer, who can choose based on what their bank supports
"Method" Field in the Payment Request
In the payment creation request (Encrypt for SOAP, Create for REST), it is possible to include the optional "Method" field, which defines the payment mode to be used.
-
if the "Method" field is populated, the specified mode is binding: the payment will be executed exclusively with that mode and the buyer will not be able to change it during payment.
-
if the "Method" field is not populated, the available payment mode depends on the store-level configuration.
-
if the store is configured with both modes (standard and instant), the buyer will be presented with the choice during payment.
-
if the store is configured with a single mode, the buyer will proceed directly with that mode without any choice.
Possible values:
-
sepa-credit-transfers for standard transfer
-
instant-sepa-credit-transfers for instant transfer
Possible Behaviors
| Store configuration | "Method" field | Payment flow |
|---|---|---|
| Standard & instant transfer | not set | Both options are presented to the buyer in the UI, with one pre-selected automatically. The buyer can change the selection |
| Standard & instant transfer | sepa-credit-transfers | The buyer proceeds directly with standard transfer, without any choice |
| Standard & instant transfer | instant-sepa-credit-transfers | The buyer proceeds directly with instant transfer, without any choice |
| Standard transfer only | not set | The buyer proceeds directly with standard transfer, without any choice |
| Standard transfer only | sepa-credit-transfers | The buyer proceeds directly with standard transfer, without any choice |
| Standard transfer only | instant-sepa-credit-transfers | Error: "Method" value not compatible with store configuration |
| Instant transfer only | not set | The buyer proceeds directly with instant transfer, without any choice |
| Instant transfer only | instant-sepa-credit-transfers | The buyer proceeds directly with instant transfer, without any choice |
| Instant transfer only | sepa-credit-transfers | Error: Method value not compatible with store configuration |
Transfer Description (Causale)
The bank transfer description is always populated by Fabrick Payment Orchestra in the following format:
YYMMDDn [custom value or shopTransactionId bankId]
Fixed prefix, generated by Fabrick Payment Orchestra with date and unique number (YYMMDDn, e.g. 2504171), where:
-
YY = Last two digits of the year (e.g. 25 for 2025)
-
MM = Month in two-digit numeric format (e.g. 04 for April)
-
DD = Day in two-digit numeric format (e.g. 17 for the 17th)
-
n = Incremental daily counter (e.g. 1, 2, 3...)
Variable part:
-
If the merchant provides a custom value via API in the payment requests, it is concatenated to the fixed prefix. The value must be alphanumeric; the maximum allowed length is 120 characters
-
If the merchant does not provide a custom value, the Shop Transaction ID and Bank ID are concatenated to the prefix instead
Example transfer description:
-
With a custom value provided by the merchant: 2504171 test, where:
-
2504171 — fixed prefix
-
test — custom value provided by the merchant in the payment request
-
-
Without a custom value provided by the merchant: 2504171 123456423 123, where:
-
2504171 — fixed prefix
-
123456423 — Shop Transaction ID
-
123 — Bank ID
-
In the variable part of the transfer description (both for the custom value and the Shop Transaction ID), special characters must not be used: the use of non-alphanumeric characters can cause errors in generating the description or issues in the receiving banking systems.
Payment Statuses
| # | Fabrick Payment Orchestra Status | Fabrick Payment Orchestra Outcome | Fabrick Dashboard Status |
|---|---|---|---|
| 1 | AUT | XX (Pending) | Pending |
| 2 | MOV | OK | Captured |
| 3 | AUT | KO | Failed |
-
The payment has been initiated but not yet confirmed.
-
Standard transfer: the outcome depends on the buyer's bank processing times and the authorization time.
-
Instant transfer: the outcome arrives within seconds or minutes. For Banca Sella accounts, the update is immediate; for other banks it may take longer.
-
-
The payment has been confirmed.
-
Banca Sella accounts: the amount has been credited to the merchant's account.
-
Other banks: the buyer's bank has confirmed the execution of the payment. Note: Fabrick has no visibility on the actual credit.
-
-
The payment was not successful.
For accounts not held at Banca Sella, Captured ≠ credited: manual verification is required for reconciliation.
Some statuses (AUTHORIZATION_EXPIRED or AUTHORIZATION_REFUSED) are not visible on the Fabrick Dashboard to simplify operational management.
Reconciliation and Credit Visibility
| Account type | Reconciliation | "Captured" status = credit |
|---|---|---|
| Banca Sella | Automatic | Yes |
| Other bank | Manual | No |
Merchants with a Banca Sella account
-
Fabrick has direct visibility on the merchant's account.
-
The credit is detected automatically and associated with the transaction.
-
The "Captured" status is assigned only after verification of the actual credit of the transfer to the merchant's account.
Merchants with accounts at other institutions
-
Fabrick does not have access to the merchant's account, so reconciliation must be done manually.
-
The "Captured" status is assigned when the transfer has been successfully executed by the payer's bank, but does not imply verification of the actual credit.
Reporting on Fabrick Dashboard
Each Fabrick Pay by Bank payment is visible on the Dashboard with the following data:
- Authorization date: Date on which the buyer authorized the payment
- Amount: Amount of the executed payment
- Currency: Currency used (EUR)
- Status: Current payment status (Captured, Pending, Failed)
- Method: Always "Alternative Payments" for Fabrick Pay by Bank
- Circuit: Fabrick Pay by Bank
- Channel: Always "Online" for Fabrick Pay by Bank
- Service type: Always "Ecommerce" for Fabrick Pay by Bank
- Shop login: Ecommerce service identifier (merchant account)
- Store ID: Fabrick technical identifier for the Ecommerce service
- Payment ID: Unique transaction identifier on the Fabrick side
- Shop transaction ID: Transaction identifier generated by the merchant
- Bank ID: Identifying code generated by GestPay
- Authorization code: Identifying code generated by GestPay during payment authorization
- Buyer IBAN: IBAN from which the buyer made the payment
- CRO: Bank transaction reference code. Available only for merchants with a Banca Sella account
- Buyer name / email: Buyer's name and email address, if provided at the time of payment
Advantages and Limitations
For the End Customer
-
No external registration required
-
Security via banking authentication (SCA)
-
Zero fraud
-
Payment traceability and irrevocability
For the Merchant
-
Lower costs compared to cards and wallets
-
Zero fraud
-
Irrevocable and PSD2-compliant payments
-
Automatic reconciliation (Banca Sella only)
-
Modern and integrated payment experience
Limitations
-
No automatic reconciliation for non-Banca Sella accounts
-
Captured ≠ actual credit for external accounts
Technical Integration
Test Environment Activation
To test the Fabrick Pay by Bank solution, a test environment is required.
If you do not already have one, you can create it by following the instructions available in the Request a test account | Fabrick section.
Upon completing registration, a Shop Login will be generated in the format:
GESPAYXXXXX.
Payment Method Activation Request
Once the Shop Login for the test environment has been obtained, you need to request activation of the Fabrick Pay by Bank payment method.
The request can be sent:
-
to your Fabrick commercial representative, or
-
via the dedicated Request support area.
It is essential to include the Shop Login of the test environment in the request.
Onboarding and Configuration
Following the request, you will receive an email containing the onboarding link.
By following the link, you will be able to complete the account activation by entering the required information.
Payment Initialization
Once the test environment is activated, you can begin integration.
The domains and endpoints to use are described in the dedicated First Payment section.
Fields to Include in the Call for Fabrick Pay by Bank
It is essential to correctly include the mandatory fields in the request payload.
Below are examples of the calls to be made:
POST CreatePayment
{
"shopLogin":"{{shopLogin}}",
"amount":"0.01",
"currency":"EUR",
"shopTransactionID":"{{ShopTransactionID}}",
"buyerEmail":"mario.rossi@fabrick.com",
"responseURLs": {
"buyerOK": "https://{{ThankYouPage_Url}}",
"buyerKO": "https://{{ThankYouPage_Url}}",
"serverNotificationURL": ""
},
"paymentType":["FABRICKPASS"],
"paymentChannel": {
"channelType":["LINK"]
},
"OrderDetails": {
"BankTransferDescription": "{{BankTransferDescription}}",
"ProviderPaymentDetails": {
"Method": ""
},
"CustomerDetail": {
"FirstName": "Mario",
"Lastname": "Rossi",
"PrimaryEmail": "mario.rossi@fabrick.com"
}
}
}
GET getPaymentDetails
{
"shopLogin" : "{{shopLogin}}",
"bankTransactionID": "",
"shopTransactionID" : "",
"paymentID":"{{paymentID}}",
"terminalID": ""
}
Additional Information Useful for Integration
Shop Transaction ID
The shopTransactionID field is a free string that uniquely identifies the transaction.
It can be populated according to the merchant's needs, subject to the constraints described in the Axerve technical documentation (e.g. disallowed characters).
Transfer Type and "Method" Field
For more details, see the dedicated section.
Populating the Transfer Description
For more details, see the dedicated section.
CustomerDetail and Checkout Simplification
Fully populating the CustomerDetail fields:
-
CustomerDetail.FirstName
-
CustomerDetail.LastName
-
CustomerDetail.PrimaryEmail
allows the buyer to skip the manual data entry step in the Fabrick Pay by Bank payment flow. This optimization simplifies the user experience and reduces friction at checkout.
The buyerEmail field represents the email address of the user making the payment.
The PrimaryEmail field represents the account holder and can be left empty in the API request (it will be requested on the payment page if not provided).
Localization
-
The languageId field allows you to define the language of the email sent by the Fabrick Payment Orchestra gateway to the buyer.
-
The language of the Fabrick Pay by Bank page automatically adapts to the user's browser language.
-
Fabrick Pay by Bank emails are multilingual: the first language corresponds to the merchant's country, the second is English (e.g. Italian/English).
How to Verify the Payment Outcome
The transaction outcome can be verified via:
-
getPaymentDetails API call
-
Test environment dashboard: Dashboard access guide
For merchants with Banca Sella accounts, the "Captured" status corresponds to the actual credit.
For merchants with accounts at other banks, the "Captured" status only indicates confirmed execution by the buyer's bank.
Testing Fabrick Pay by Bank Payments on Fabrick Payment Orchestra
Introduction
This section describes how to perform controlled tests for payments via Fabrick Pay by Bank integrated with Payment Orchestra, simulating various scenarios and observing expected outcomes.
A structured table provides the parameters and configurations needed to simulate various payment scenarios, ensuring accurate analysis of system responses.
Tests are divided into two main categories:
-
Tests for merchants with a Banca Sella account: it is possible to verify the full payment cycle up to the credit (including reconciliation).
-
Tests for merchants with accounts at other banks: the test ends with confirmation of execution by the buyer's bank, without verification of the actual credit.
Parameters to Configure
For each test, the following parameters must be correctly set in the request:
- bankId: Identifier of the bank to use in the test
- bankName: Descriptive name of the selected bank
- product: Transfer type: sepa-credit-transfers or instant-sepa-credit-transfers
- amount: Transfer amount (e.g. 1.00)
- status: Expected status at the end of the test (OK, KO, etc.)
- threshold: Waiting time (in seconds) before the status change
If the transaction does not complete within 5 minutes, the system will return a KO outcome due to timeout.
Test Example
Objective: Verify a successfully executed instant transfer to a Banca Sella credit account.
Procedure:
-
Select the relevant test case from the table (see technical documentation).
-
Use the bank credentials provided for the test.
-
Set the amount field to 1.00.
-
After approximately 45 seconds, the payment will show as successfully executed (OK).
Test Data
| Product | Bank | User | Amount | Threshold (s) | E-com Status |
|---|---|---|---|---|---|
instant-sepa-credit-transfers | Mock | 05 | any value | 0 | ✅ OK |
instant-sepa-credit-transfers | Mock | 04 | 2-20-200 | 60 | ⏳ XX → OK |
instant-sepa-credit-transfers | Mock | 04 | 5-50-500 | 60 | ❌ XX → KO |
instant-sepa-credit-transfers | Mock | 06 | any value | 0 | ❌ KO |
sepa-credit-transfers | Mock | 05 | any value | 0 | ✅ OK |
sepa-credit-transfers | Mock | 04 | 2-20-200 | 120 | ⏳ XX → OK |
sepa-credit-transfers | Mock | 04 | 5-50-500 | 120 | ❌ XX → KO |
sepa-credit-transfers | Mock | 06 | any value | 0 | ❌ KO |
Sandbox accounts credentials
| Bank | User | Password | OTP |
|---|---|---|---|
| Mock | user04 | passwd04 | 11111111 |
| Mock | user05 | passwd05 | 22222222 |
| Mock | user06 | passwd06 | 33333333 |
Fabrick Pay by Bank Technical FAQ
Is it possible to offer only instant transfer (or only standard)?
Yes, the merchant can ask Fabrick to configure only one of the two modes (standard or instant transfer). In that case, the buyer will not see any selection option and the payment will be forced to execute with the configured transfer type.
Can the customer choose the transfer type (standard or instant)?
Yes, but only if both modes (standard and instant transfer) are enabled for the store. In this scenario, by populating the "Method" field in the request (sepa-credit-transfers or instant-sepa-credit-transfers), the merchant can pre-select the suggested transfer type for the buyer. However, the user will still be able to change it manually on the payment screen.
Does the "Captured" status always guarantee the credit?
Only for Banca Sella accounts, because Fabrick is able to directly read the credit on the merchant's account.
For merchants who are not Banca Sella account holders, the "Captured" status indicates that the payment has been executed but manual reconciliation on the merchant's side is required.
Can I use special characters in the custom value of the transfer description?
No, it is important to use only simple alphanumeric characters. The use of special characters can compromise the correct processing of the transfer.