MB WAY
EPA Integration option
Payment flow
- The customer selects MB WAY as a payment method on the merchant's website.
- The merchant displays a field requesting a phone number to the customer. Alternatively, a field with a pre-filled phone number can be displayed.
- The customer inserts their phone number in the displayed field or edits the displayed phone number if necessary.
- The merchant sends a payment request to PaySage.io.
- The customer receives a notification in their MB WAY application with a PIN-code.
- The customer confirms the payment in the application either by entering a PIN or using an alternative confirmation method configured in their application.
- If the payment is successful, PaySage.io sends a webhook notification to the merchant.
- The merchant displays the transaction status to the customer.
Payment
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 | mb_way |
| customer * required |
object | A section of information about the customer. |
| 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": false,
"customer":{
"first_name": "John",
"last_name": "Doe",
"email": "john@example.com",
"phone":"123456789"
},
"method":{
"type": "mb_way"
}
}
}
Response
Response example
{
"transaction": {
"uid": "fafd92cd-e48d-48f2-aec2-4671850fe52d",
"type": "payment",
"status": "pending",
"amount": 100,
"currency": "EUR",
"description": "description",
"created_at": "2023-11-15T08:37:10Z",
"updated_at": "2023-11-15T08:37:13Z",
"method_type": "mb_way",
"receipt_url": "https://backoffice.paysage.io/customer/transactions/fafd92cd-e48d-48f2-aec2-4671850fe52d/52d2f47ea5aa481a02970b6a44fad0dca3d074589133c9870f0bb79d920d7689",
"payment": {
"status": "pending",
"gateway_id": 3403,
"ref_id": "116588",
"message": "Pending"
},
"mb_way": {
"type": "mb_way"
},
"customer": {
"phone": "912345678",
"email": null,
"ip": null
},
"manually_corrected_at": null,
"message": "Pending",
"test": true,
"billing_address": {
"phone": "912345678"
},
"additional_data": {
"payment_method": {
"type": "alternative"
}
},
"gateway": {
"iframe": false
}
}
}
TW2 Integration option
Payment flow
- Customer initiates the payment on the merchant's website.
- Merchant sends the payment request to PaySage.io
- PaySage.io returns a response with the
formobject 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.
Info
This integration option supports only EUR currency.
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 | mb_way |
| 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": "mb_way"
}
}
}
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": "52878f4b-a1c6-428d-86cd-162e0111d98b",
"type": "payment",
"status": "pending",
"amount": 101,
"currency": "EUR",
"description": "test",
"created_at": "2025-04-08T12:23:18Z",
"updated_at": "2025-04-08T12:23:18Z",
"method_type": "mb_way",
"receipt_url": "https://backoffice.paysage.io/customer/transactions/52878f4b-a1c6-428d-86cd-162e0111d98b/34aebab9cef3e3332763eb8db16a2439cfe949ccf0bbbfd5a9a127f691dfa8b4",
"payment": {
"status": "pending",
"gateway_id": 5236,
"message": "Transaction was initialized."
},
"mb_way": {
"type": "mb_way"
},
"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-page",
"method": "POST",
"fields": [
{
"name": "memberId",
"value": "14363",
"type": "hidden"
},
{
"name": "terminalid",
"value": "8162",
"type": "hidden"
},
{
"name": "partnerId",
"value": "39",
"type": "hidden"
},
{
"name": "checksum",
"value": "d8d54ea74563444eff6e2db308247737",
"type": "hidden"
},
{
"name": "merchantTransactionId",
"value": "52878f4b-a1c6-428d-86cd-162e0111d98b",
"type": "hidden"
},
{
"name": "amount",
"value": "1.01",
"type": "hidden"
},
{
"name": "currency",
"value": "EUR",
"type": "hidden"
},
{
"name": "paymentBrand",
"value": "MBWAY",
"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/52878f4b-a1c6-428d-86cd-162e0111d98b",
"type": "hidden"
},
{
"name": "notificationUrl",
"value": "https://api.paysage.io/beyag/transactions/notifications/88c70e7191aa823ac0588a279d22ef5722fc26712f6eac23ab76b53a65019c48/52878f4b-a1c6-428d-86cd-162e0111d98b",
"type": "hidden"
},
{
"name": "totype",
"value": "TransactWorld",
"type": "hidden"
}
]
}
}
}
CA Integration option
Payment
Payment Flow
- The customer initiates the payment on the merchant's website.
- The merchant sends a payment request to PaySage.io.
- PaySage.io responds with a link to the payment page.
- The merchant redirects the customer to the payment page.
- The customer completes the payment.
- PaySage.io sends a webhook notification with the payment status to the merchant.
Info
This integration option supports only EUR currency.
Request
Send a payment request with the following additional data:
|
|||||||||||||||||||||||||||||||||||||
Request example
{
"request": {
"amount": 1010,
"currency": "EUR",
"description": "description",
"skip_duplicate_check": true,
"test": false,
"tracking_id": "189",
"notification_url": "https://notification-url",
"return_url": "https://return-url",
"ip": "127.0.0.1",
"language": "en",
"customer": {
"first_name": "John",
"last_name": "Doe",
"country": "PT",
"city": "Lisbon",
"zip": "1100-105",
"email": "john@example.com",
"address": "1st Street",
"phone": "17777777777",
"external_id": "123bh7"
},
"method": {
"type": "mb_way"
}
}
}
Response
Redirect the customer to the URL received as the value of the form.action parameter.
Response example
{
"transaction": {
"uid": "b9265cbb-1a18-4276-ba32-7508a93eec4d",
"type": "payment",
"status": "pending",
"amount": 1010,
"currency": "EUR",
"description": "description",
"created_at": "2026-04-23T13:57:16Z",
"updated_at": "2026-04-23T13:57:16Z",
"method_type": "mb_way",
"receipt_url": "https://backoffice.paysage.io/customer/transactions/b9265cbb-1a18-4276-ba32-7508a93eec4d/3d8e6b0e0d2a8ef787d70cc3d150496681e7a1b388f4602c36e41e77cb37c673?language=en",
"payment": {
"status": "pending",
"gateway_id": 6539,
"ref_id": "ca096dc9-4924-4b67-869f-2ed3ace1c579",
"message": "Transaction was initialized."
},
"mb_way": {
"type": "mb_way",
"use_pending_page": true
},
"customer": {
"zip": "1100-105",
"city": "Lisbon",
"email": "john@example.com",
"phone": "17777777777",
"address": "1st Street",
"country": "PT",
"last_name": "Doe",
"first_name": "John",
"external_id": "123bh7",
"ip": "127.0.0.1"
},
"manually_corrected_at": null,
"version": 2,
"message": "Transaction was initialized.",
"tracking_id": "189",
"test": false,
"language": "en",
"billing_address": {
"zip": "1100-105",
"city": "Lisbon",
"email": "john@example.com",
"phone": "17777777777",
"address": "1st Street",
"country": "PT",
"last_name": "Doe",
"first_name": "John"
},
"additional_data": {
"payment_method": {
"type": "alternative"
}
},
"smart_routing_verification": {
"status": "successful"
},
"gateway": {
"iframe": false
},
"form": {
"action": "link-to-payment-page",
"fields": [],
"method": "GET"
}
}
}