This payment method is exclusively dedicated to transactions in Portugal. An essential part of the Portuguese payment landscape, Multibanco allows customers to pay securely via ATMs or Online Banking using a generated payment reference.
PRESENTATION
| Brand | Multibanco |
|---|---|
| Payment Flow | Reference / Push Payment |
| Integration | Hosted Payments / Hosted Page / Order API |
| Product Code | multibanco |
| Country | Portugal |
| Currency | EUR |
| Minimum amount | 1.00 |
| Maximum amount | Dependent on user bank limits (typically high) |
| 3DS | No |
| Refund / Partial refund | Yes |
Multibanco is an interbank network in Portugal. It allows online shoppers to pay for their purchases by generating a unique reference (Entity, Reference, Amount) which can be paid at any Multibanco ATM or via the customer's home banking application.
ESSENTIAL INFORMATION
POPULARITY AND AVAILABILITY
Multibanco is the leading payment method in Portugal. It is trusted by virtually all Portuguese consumers due to its ubiquity and the fact that no credit card details are shared online.
PAYMENT PROCESS
Unlike card payments, Multibanco is a "push" payment. The merchant provides payment details (Entity, Reference, and Amount). The customer then uses these details to initiate the transfer from their bank account via ATM or App.
SECURITY
Multibanco is highly secure as it eliminates the risk of fraud associated with sharing card details online. The transaction is authenticated directly by the customer through their banking portal or ATM PIN.
COMPATIBILITY
Since the payment is finalized off-site (ATM or Banking App), it is fully compatible with all browsers and mobile devices. The reference is simply displayed on the screen or sent via email.
CONFIGURATION AND COMPLIANCE
Transactions must be in EUR. Ensure your HiPay account is configured to accept Portuguese transactions. The generated references typically have a validity period that can be configured. For more details, please visit the Payment Method Requirements.
USE CASES
Ideal for B2C and B2B transactions in Portugal, especially for customers who do not possess a credit card or prefer not to use one online.
USER EXPERIENCE
The user experience is asynchronous. The customer places the order, receives the payment coordinates, and the order remains in a "Pending" status until the payment is actually performed at the bank/ATM and confirmed to HiPay.
INTEGRATION
INTEGRATION METHODS
| Method | Description |
|---|---|
| Hosted Payments | Managed via HiPay's Hosted Payments solution. |
| Hosted Page | Uses a pre-designed payment page displaying the reference. |
| Order API | Enables direct creation of the reference to display custom UI. |
USER EXPERIENCE
- The customer selects Multibanco on the merchant site.
-
The system generates and displays the payment details:
Entity (Entidade), Reference (Referência), and Amount (Montante). - The customer leaves the site or opens their banking app/goes to an ATM.
- The customer enters the payment details and confirms the transaction.
- HiPay receives the funds and sends a notification to the merchant to validate the order.
ORDER API INTEGRATION
MANDATORY PARAMETERS
| Parameter | Description / Example |
|---|---|
payment_product |
multibanco |
orderid |
Unique identifier (e.g., ORDER_1583157210) |
description |
Brief description (e.g., Summer Sale) |
amount |
Total amount (e.g., 45.50) |
currency |
ISO 4217 code (EUR) |
firstname |
Customer's first name |
lastname |
Customer's last name |
SPECIFIC INPUT PARAMETERS (OPTIONAL BUT RECOMMENDED)
| Parameter | Description |
|---|---|
email |
Customer's email address (useful for sending the reference). |
country |
Customer's country (must be PT). |
soft_descriptor |
Custom dynamic description that will appear on the customer's bank statement (e.g., Test Description SAS). |
expiration_limit |
Defines the validity duration of the generated reference. Accepts values in days (integer) or hours (H + integer). E.g., H3 for 3 hours, 1 for 1 day. |
SPECIFIC OUTPUT PARAMETERS
Unlike standard redirect methods, Multibanco directly returns a reference_to_pay object containing the payment details generated by SIBS to display to your customer.
| Parameter | Description |
|---|---|
reference_to_pay.entity |
The Multibanco Entity code (e.g., 48257). |
reference_to_pay.reference |
The unique 9-digit Multibanco payment reference. |
reference_to_pay.amount |
The exact amount to pay to validate the order. |
reference_to_pay.expiration_date |
The expiration date of the reference (Format: YYYY-MM-DD). |
reference_to_pay.expiration_datetime |
The precise expiration date and time, calculated based on the expiration_limit input (Format: ISO 8601). |
reference_to_pay.status |
The current status of the reference (e.g., UNPAID). |
EXPIRATION LIMIT MANAGEMENT
To actively combat fraud and phishing campaigns—where attackers attempt to trick users into paying fraudulent references—it is strongly recommended to restrict the validity period of your Multibanco references. You can configure the expiration_limit parameter in either days or hours.
| Value | Rule | Example (Transaction Time: 2024-09-12 12:30:00) |
|---|---|---|
| Null | Takes the default configured value (typically D+3). | Depends on account default |
0 |
Expiration on the same day at 23:59:00. | 2024-09-12T23:59:00 |
1 |
Expiration at D+1 23:59:00. | 2024-09-13T23:59:00 |
3 |
Expiration at D+3 23:59:00. | 2024-09-15T23:59:00 |
30 |
Expiration at D+30 23:59:00. | 2024-10-12T23:59:00 |
90 |
Expiration at D+90 23:59:00. | 2024-12-11T23:59:00 |
H1 |
Transaction date/time + 1 hour. | 2024-09-12T13:30:00 |
H3 |
Transaction date/time + 3 hours. | 2024-09-12T15:30:00 |
H6 |
Transaction date/time + 6 hours. | 2024-09-12T18:30:00 |
H12 |
Transaction date/time + 12 hours. | 2024-09-13T00:30:00 |
ENDPOINTS
| Environment | URL |
|---|---|
| Stage | https://stage-secure-gateway.hipay-tpp.com/rest/v1/order |
| Production | https://secure-gateway.hipay-tpp.com/rest/v1/order |
MULTIBANCO SAMPLE REQUEST
curl --location 'https://stage-secure-gateway.hipay-tpp.com/rest/v1/order' \ --header 'Content-Type: application/x-www-form-urlencode' \ --header 'Authorization: ******' \ --form 'payment_product="multibanco"' \ --form 'orderid="1777556633"' \ --form 'description="Sample request Multibanco"' \ --form 'amount="1.16"' \ --form 'currency="EUR"' \ --form 'firstname="John"' \ --form 'lastname="DOE"' \ --form 'email="[email protected]"' \ --form 'expiration_limit="H3"' \ --form 'soft_descriptor="Test Description SAS"'
MULTIBANCO SAMPLE RESPONSE
<?xml version="1.0" encoding="UTF-8"?>
<response>
<state>pending</state>
<reason/>
<forward_url/>
<test>true</test>
<mid>00001342747</mid>
<attempt_id>1</attempt_id>
<authorization_code/>
<transaction_reference>800427823606</transaction_reference>
<reference_to_pay>
<reference><![CDATA[387620154]]></reference>
<amount><![CDATA[1.16]]></amount>
<entity><![CDATA[48257]]></entity>
<expiration_date><![CDATA[2026-05-03]]></expiration_date>
<expiration_datetime><![CDATA[2026-05-03T23:59:59+01:00]]></expiration_datetime>
<status><![CDATA[UNPAID]]></status>
</reference_to_pay>
<date_created>2026-04-30T13:43:53+0000</date_created>
<date_updated>2026-04-30T13:43:56+0000</date_updated>
<status>142</status>
<message>Authorization Requested</message>
<currency>EUR</currency>
<payment_product>multibanco</payment_product>
<order>
<id><![CDATA[1777556633]]></id>
<amount><![CDATA[1.16]]></amount>
<currency><![CDATA[EUR]]></currency>
<email><![CDATA[[email protected]]]></email>
</order>
</response>