Skip to content

MB WAY

EPA Integration option

Payment flow

  1. The customer selects MB WAY as a payment method on the merchant's website.
  2. The merchant displays a field requesting a phone number to the customer. Alternatively, a field with a pre-filled phone number can be displayed.
  3. The customer inserts their phone number in the displayed field or edits the displayed phone number if necessary.
  4. The merchant sends a payment request to PaySage.io.
  5. The customer receives a notification in their MB WAY application with a PIN-code.
  6. The customer confirms the payment in the application either by entering a PIN or using an alternative confirmation method configured in their application.
  7. If the payment is successful, PaySage.io sends a webhook notification to the merchant.
  8. 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

  1. Customer initiates the payment on the merchant's website.
  2. Merchant sends the payment request to PaySage.io
  3. PaySage.io returns a response with the form object with parameters to build a form to complete the payment.
  4. The merchant redirects the customer to the form.
  5. The customer completes the payment.
  6. 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.
email 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

  1. The customer initiates the payment on the merchant's website.
  2. The merchant sends a payment request to PaySage.io.
  3. PaySage.io responds with a link to the payment page.
  4. The merchant redirects the customer to the payment page.
  5. The customer completes the payment.
  6. 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:

object
return_url
required

string
A URL to return the customer to when a transaction is completed.
ip
required
string
The customer's IP address.
object
A section of the payment method.
type
required
string
mb_way
object
A section of information about the customer.
external_id
string (64)
The customer's identifier in the merchant's system.
first_name
string (50)
The customer's first name.
last_name
string (50)
The customer's last name.
email
required
string
The customer's email address.
phone
required
string
The customer's phone number.
country
required
string (2)
The customer's country in the ISO 3166-1 Alpha-2 format. For example, PT.
city
string (50)
The customer's city.
address
string (255)
The customer's address.
zip
string (10)
The customer's postal code.
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"
    }
  }
}