MB Multibanco

Multibanco Payment Method – HiPay

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

  1. The customer selects Multibanco on the merchant site.
  2. The system generates and displays the payment details:
    Entity (Entidade), Reference (Referência), and Amount (Montante).
  3. The customer leaves the site or opens their banking app/goes to an ATM.
  4. The customer enters the payment details and confirms the transaction.
  5. 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>