Multibanco
EPA Integration option
Payment
Payment flow
- The customer selects Multibanco as a payment method on the merchant's website.
- The merchant sends a payment request to PaySage.io.
- PaySage.io sends a response containing the
multibanco
object withaccount_number
andaccount_code
parameters. - The merchant displays
account_number
(Reference) andaccount_code
(Entity) values to the customer as well as the instructions on how to complete the payment. - The customer uses the displayed values to complete the payment in an ATM or an application.
- If the payment is successful, PaySage.io sends a webhook notification to the merchant with
successful
status. - If the payment isn't made within 3 hours after the payment response is sent, PaySage.io sends a webhook notification to the merchant with
expired
status. - If the transaction is made after more than 3 hours after the payment response is sent, PaySage.io sends another webhook notification to the merchant with
successful
status.
Request
Send a payment request with the following additional parameters:
Parameter | Type | Description |
---|---|---|
request | object | |
return_url * required |
string | URL to return the customer to when the transaction is completed. |
method | object | A section of the payment method. |
type * required |
string | multibanco |
customer | object | A section of the customer details. |
first_name * required |
string | The customer's first name. |
last_name * required |
string | The customer's last name. |
email * required |
string | The customer's email address. |
phone * required |
string (9) | The customer's phone number without the country code. |
Request example
{
"request":{
"amount":100,
"currency":"EUR",
"description":"description",
"return_url": "https://your_return_url.com",
"test": true,
"method":{
"type": "multibanco"
},
"customer":{
"first_name": "John",
"last_name": "Doe",
"email": "john@example.com",
"phone":"123456789"
}
}
}
Response
The response will additionally contain the multibanco
object with account_number
and account_code
parameters.
Parameter | Type | Description |
---|---|---|
multibanco | object | |
account_number * required |
string | Identifier of the bank account, to which the payment is made. The value to be inserted into the Reference field in the ATM/application. |
account_code * required |
string | Identifier of the entity to which the payment is made. The value to be inserted into the Entity field in the ATM/application. |
Response example
{
"transaction": {
"uid": "faaec396-641a-489b-941e-00d53e66f995",
"type": "payment",
"status": "pending",
"amount": 100,
"currency": "EUR",
"description": "description",
"created_at": "2023-11-15T06:51:55Z",
"updated_at": "2023-11-15T06:51:57Z",
"method_type": "multibanco",
"receipt_url": "https://backoffice.paysage.io/customer/transactions/faaec396-641a-489b-941e-00d53e66f995/f65401e3dd21b16c5c48d93d0efe81fc1b9e88ca8875e2d50a6f4fbde1c08159",
"payment": {
"status": "pending",
"gateway_id": 3403,
"ref_id": "101323322",
"message": "0 | OK",
"bank_code": 0
},
"multibanco": {
"account_number": "101323322",
"account_code": "82142"
},
"customer": {
"email": null,
"ip": null
},
"manually_corrected_at": null,
"message": "0 | OK",
"test": true,
"additional_data": {
"payment_method": {
"type": "alternative"
}
},
"gateway": {
"iframe": false
}
}
}
TW2 Integration option
Payment flow
- Customer initiates Multibanco payment on the merchant's website.
- Merchant sends the payment request to PaySage.io
- PaySage.io returns a response with the
form
object with parameters to build a form to complete the payment. - The merchant redirects the customer to the form.
- The customer completes the payment.
- PaySage.io sends a webhook notification to the merchant.
Payment
Request
Send a payment request with the following additional parameters:
Parameter | Type | Description |
---|---|---|
request | object | |
amount * required |
bigInteger | Transaction amount in minimal currency units, for example, 5000 (50 euros). |
return_url * required |
string | URL to return the customer to when the transaction is completed. |
method | object | A section of the payment method. |
type * required |
string | multibanco_redirect |
ip | string | The customer's IP address. |
customer | object | A section of additional information about the customer. |
country | string (2) | The customer's country in the ISO 3166-1 Alpha-2 format. For example, PT . |
phone | string | The customer's phone number. |
string | The customer's email address. | |
first_name | string | The customer's first name. |
last_name | string | The customer's last name. |
city | string (120) | The customer's billing city. |
zip | string (40) | The customer's billing ZIP or postal code. |
state | string | The customer's two-letter billing state only if the billing address country is US , CA or IN . |
address | string (510) | The customer's billing address. |
Request example
{
"request": {
"amount": 101,
"currency": "EUR",
"description": "test",
"test": false,
"tracking_id": "your_uniq_number21212",
"return_url": "https://your-success.url",
"method": {
"type": "multibanco_redirect"
}
}
}
Response
Build an HTML form based on the parameters in the form
object. Redirect the customer to the form to finalize the payment.
Response example
{
"transaction": {
"uid": "c0ed1ea7-743b-4b31-8b5d-822bbf8eae46",
"type": "payment",
"status": "pending",
"amount": 100,
"currency": "EUR",
"description": "test",
"created_at": "2025-04-08T10:54:36Z",
"updated_at": "2025-04-08T10:54:36Z",
"method_type": "multibanco_redirect",
"receipt_url": "https://backoffice.paysage.io/customer/transactions/c0ed1ea7-743b-4b31-8b5d-822bbf8eae46/1b02219693e9975c5b03978435cd1ed46d7fc0b0d12de0380d83df6e02381ca3",
"payment": {
"status": "pending",
"gateway_id": 5236,
"message": "Transaction was initialized."
},
"multibanco_redirect": {
"type": "multibanco_redirect"
},
"customer": {
"email": null,
"ip": null
},
"manually_corrected_at": null,
"version": 0,
"message": "Transaction was initialized.",
"tracking_id": "your_uniq_number21212",
"test": false,
"additional_data": {
"payment_method": {
"type": "alternative"
}
},
"gateway": {
"iframe": false
},
"form": {
"action": "link-to-payment-url",
"method": "POST",
"fields": [
{
"name": "memberId",
"value": "14363",
"type": "hidden"
},
{
"name": "terminalid",
"value": "8162",
"type": "hidden"
},
{
"name": "partnerId",
"value": "39",
"type": "hidden"
},
{
"name": "checksum",
"value": "56426a4923e7cd9a816b078cfd0aa2d0",
"type": "hidden"
},
{
"name": "merchantTransactionId",
"value": "c0ed1ea7-743b-4b31-8b5d-822bbf8eae46",
"type": "hidden"
},
{
"name": "amount",
"value": "1.00",
"type": "hidden"
},
{
"name": "currency",
"value": "EUR",
"type": "hidden"
},
{
"name": "paymentBrand",
"value": "MULTIBANCO",
"type": "hidden"
},
{
"name": "paymentMode",
"value": "EW",
"type": "hidden"
},
{
"name": "orderDescription",
"value": "test",
"type": "hidden"
},
{
"name": "country",
"value": "PT",
"type": "hidden"
},
{
"name": "merchantRedirectUrl",
"value": "https://api.paysage.io/beyag/transactions/returns/88c70e7191aa823ac0588a279d22ef5722fc26712f6eac23ab76b53a65019c48/c0ed1ea7-743b-4b31-8b5d-822bbf8eae46",
"type": "hidden"
},
{
"name": "notificationUrl",
"value": "https://api.paysage.io/beyag/transactions/notifications/88c70e7191aa823ac0588a279d22ef5722fc26712f6eac23ab76b53a65019c48/c0ed1ea7-743b-4b31-8b5d-822bbf8eae46",
"type": "hidden"
},
{
"name": "totype",
"value": "TransactWorld",
"type": "hidden"
}
]
}
}
}