> ## Documentation Index
> Fetch the complete documentation index at: https://epayclub.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MB WAY

> Collect payments from MB WAY wallets.

Accept payments from customers using MB WAY, Portugal's leading mobile payment solution. Customers authorise the charge directly from their MB WAY app — no card details required.

<Info>
  This payment method only supports one-time (non-recurring) payments. It is available for EUR transactions to customers with a Portuguese MB WAY account.
</Info>

## Payment flow

Several steps occur between collecting the customer's MB WAY details and completing the charge.

<Info>
  We'll proceed assuming you've already set up a customer order. If you need to create one, you'll find the steps [here](/orders/create-orders).
</Info>

After creating the order, follow these steps to complete the MB WAY charge.

1. [Collect](#mb-way-customer-information) the customer's MB WAY information.
2. [Encrypt](/api-basics/encryption) sensitive data within your request.
3. Redirect the customer to the MB WAY checkout page to authorise the charge.
4. Confirm the payment and inform the customer of its outcome.

### MB WAY Customer Information

Present the customer with a form to gather their MB WAY-registered phone number and billing details. These are required to initiate the transaction:

| Customer information             | Parameter                          | Example        | Required |
| :------------------------------- | :--------------------------------- | :------------- | :------- |
| Customer Name                    | `card.billingAddress.customerName` | João Silva     | Yes      |
| Phone Number (MB WAY registered) | `card.billingAddress.phoneNumber`  | +351912345678  | Yes      |
| Street                           | `card.billingAddress.street`       | Rua Augusta 10 | Yes      |
| City                             | `card.billingAddress.city`         | Lisbon         | Yes      |
| State                            | `card.billingAddress.state`        | Lisbon         | Yes      |
| Country                          | `card.billingAddress.country`      | PT             | Yes      |
| Zip code                         | `card.billingAddress.zipCode`      | 1100-048       | Yes      |

<Info>
  The phone number must be the customer's MB WAY-registered Portuguese mobile number. Include the country code prefix (`+351`).
</Info>

Combine the billing data, order reference, and `paymentoption`. Encrypt the request before sending it to the pay order [endpoint](/api-reference/orders/pay).

<CodeGroup>
  ```json Example (Unencrypted) theme={null}
  {
      "reference": "12345678",
      "paymentoption": "MBWAY",
      "card": {
          "billingAddress": {
              "customerName": "João Silva",
              "phoneNumber": "+351912345678",
              "street": "Rua Augusta 10",
              "city": "Lisbon",
              "state": "Lisbon",
              "country": "PT",
              "zipCode": "1100-048"
          }
      }
  }
  ```

  ```json Example (Encrypted) theme={null}
  {
    "data": "B9pQJ1HoxybgfjNnEro+26w7lQZ6jriF3AFiUeGH2Ggacn6cF0srUlqiHEXeEncJcMw6ThDobjuS+AsmvhNfvGPGMddjbt5rcK2JrUnUI4cHk0XebJKoNnjEqivcyq0UKEMdYOLd6mYZtvKu5FMlpz0Lo0aMY49pnYvUGLSsCf/wOhlPx9PHgQDXptT+WBJcO3lzeD8O0S4IVSWPCWPLi7GhGlqhZpheEi1FHq39TCHk12hL3sqkkIktZIkkQVAe8AkwZGhy/CMJZrTzU6IXZr2ulT7mJenZljSk66m0pARcUqwMw/+5PEPECDo8SX3IkX2hmym02pGuWZeHE9ONWcaW7h8UIroQ/+kThz/RtP/UMiK3596cij66JcW+RcXKPiqNKysskcnaOlQFIFuhEiAczimLgd320RrQzehaw1C33UGsCzAG1p2EnDthjTF63BZtEhVlu9kN7qtFCz9AvojZeaZFKOxpJJ0usfwl9Hq5oAa56AFt/3IIsvqrAktTOyMgQ/jGQ6uhRYpA6UAH0CcYyv7L99hgVtRTXAxA/rpCtY7aTR9Pjxb5Lt1IV0Q1V8fWxAv0yY+ss07qeiSIsccsdJiN4LaMx3RvmDlu54XF68w51L34hOCDj/NBoPVUZrSaCJK2GPJ6CjOHI8q2/U2TkU+y+a80XCAC/rgqGhw="
  }
  ```
</CodeGroup>

Upon receiving your request, we will return a successful response containing a redirect URL for the MB WAY checkout page.

```json 200 OK [expandable] theme={null}
{
    "data": {
        "paymentDetail": {
            "redirectUrl": "https://core-api-service.epayclub.com/v1/card/mbway/checkout?tx1=NUJHIK51459855174059672277413231740596722774&t2=fd83e64b11ed12225bf69655d40dc3b55b28dfca784bcd8c3d46af0078e8eaa2",
            "recipientAccount": null,
            "paymentReference": "CP1B3F264C-8DB1-47C1-A50E-6494FB927D51"
        },
        "bankTransferDetails": null,
        "orderPayment": {
            "orderId": 628,
            "orderPaymentReference": "PGW-PAYREF-CFE5A0D0D31B4E54AABAAD89F123F422",
            "currency": "EUR",
            "statusId": 2,
            "orderPaymentResponseCode": "02",
            "orderPaymentResponseMessage": "pending-authentication",
            "orderPaymentInstrument": null,
            "remarks": "Order payment initiated",
            "totalAmount": 100.00,
            "fee": 0.00
        }
    },
    "status": "success",
    "statusCode": "02",
    "message": "pending-authentication"
}
```

### Authorising the Payment

Redirect the customer to the `paymentDetail.redirectUrl`. This page sends the charge request to MB WAY, which triggers a push notification on the customer's registered mobile device.

The customer opens their MB WAY app, reviews the payment amount, and taps **Accept** or **Decline**.

Once the customer responds, EPayClub is notified of the outcome. You will receive a webhook containing the final transaction status regardless of whether the payment was approved or declined.

### Verifying the Payment

<Info>
  [Read](/orders/verify-orders) the transaction verification section to learn how to verify your MB WAY transactions.
</Info>

## Testing your integration

<Warning>
  Kindly [contact](mailto:support@epayclub.com) the support team to enable MB WAY testing on your account.
</Warning>

Follow these guidelines to successfully test your MB WAY integration:

1. Use a EUR order currency — MB WAY is only available for EUR transactions.
2. Use a valid Portuguese phone number (starting with `+351`) registered with a test MB WAY account.
3. Set `card.billingAddress.country` to `PT` in your pay order request.
