UseePay Open API
UseePay PortalMechant Dashboard
Product Docs
Product Docs
  • V2.0
  • V1.0
UseePay PortalMechant Dashboard
Product Docs
Product Docs
  • V2.0
  • V1.0
  1. Supported Payment Methods
  • Integration
    • Welcome to the UseePay Demo Page
    • Payment Product Overview
      • Hosted Checkout Integration Guide
      • Embedded Checkout Integration Guide
      • Express Checkout Integration Guide
      • Server to Server Integration Guide
    • Supported Payment Methods
      • Affirm
      • AfterPay_ClearPay
      • Bank Transfer
      • Bancontact
      • Blik
      • Boost
      • Card
      • Cashapp
      • Dana
      • GCash
      • iDEAL
      • Kakao Pay
      • Klarna
      • Konbini
      • Korean Card
      • Maya
      • MB_WAY
      • Mobilepay
      • Naver pay
      • P24
      • Payco
      • Pay with Link
      • Pix
      • Pse
      • Rabbit LINE Pay
      • Samsung Pay
      • Servipag
      • SPEI
      • Tmoney
      • Toss Pay
      • Trustly
      • TrueMoney
      • Webpay
      • RSA-Encrypted Card Payments
      • ApplePay
        • Apple Pay
        • Apple Pay Web Integration (API Integration)
      • GooglePay
        • Google Pay
        • Google Pay Web Integration (API Integration)
      • common
        • _shared-client-os-type
      • alipay
        • Alipay CN
        • Alipay HK
        • Alipay+
    • Subscription
      • Get started with Subscription
    • Online payment
      • Get started with online payments
    • Payment Capabilities
      • Currency Amount Unit Specification
      • Adaptive Price
    • Checkout session
      • Checkout Session Guide
  • Developer
    • Introduction
    • Authentication
    • Integrate Local Payment Methods
    • Error code
      • last_payment_error documentation
      • Errors
    • Best Integration
      • Quickly create a paymentIntent for a subscription
      • Auto-Charge Subscription Guide
    • Payment Intents
      • Payment Intent Overview
      • Quickly create a paymentIntent
      • Create a PaymentIntent
      • Retrieve a PaymentIntent
      • Update a PaymentIntent
      • Confirm a PaymentIntent
      • Cancel a PaymentIntent
      • Capture a PaymentIntent
      • List all payment intents
    • Customers
      • Create a customer
      • Retrieves a customer
      • Update a customer
      • List all customers
    • Subscriptions
      • Create a subscription
      • Retrieves a subscription
      • Update a subscription
      • List all subscriptions
      • Cancel a subscription
    • Invoices
      • Create a invoice
      • Retrieves a invoice
      • List all invoices
      • Pay a invoice
    • Payment Methods
      • Retieve Payment Method Session
    • Mandates
      • Create a mandate
      • Retrieves a mandate
      • List all mandates
    • Refunds
      • Create a refund
      • Retrieves a refund
      • List all refunds
    • Webhooks
      • Webhook Integration Guide(version 2026-04)
      • Integration details
        • Supported Webhook Events
        • Webhook Activation/Signature Verification Steps
        • Webhook events for example
        • Dispute Webhook Integration Document
        • Difference between version 2026-04 and 2024-10-10
      • archive
        • 2024-10-10
          • Webhook Integration Guide(version 2024-10-10)
      • Create a webhook
      • Retrieves a webhook
      • Update a webhook
      • List all webhooks
    • Embedded Checkout
      • UseePay Elements Appearance
      • Payment Element
      • Payment Element (Deferred Intent)
      • Express Checkout Element
      • Checkout Session Element
    • Payment Method Configuration
      • Retieve Payment Method Configuration
    • Checkout Session
      • Create Checkout Session
      • Retrieve Checkout Session
    • Trackers
      • upload trackers
      • Retrieve a tracker
    • Capture
      • Capture Overview
      • List captures by intent id
    • Payement Attempt
      • ECI Indicator (3-D Secure) Reference
      • Retrieve PaymentAttempt
    • Schemas
      • CheckoutSessionCreateRequest
      • PaymentMethod
      • CreatePaymentIntentRequest
      • LineItem
      • Customer
      • Address
      • ProductData
      • Shipping
      • SubscriptionData
      • Error
      • DiscountPeriodConfig
      • DeviceData
      • CheckoutSessionResponse
      • ErrorResponse
      • Order
      • Product
      • PaymentMethodOptions
      • RiskControlOptions
      • Mandate
      • PaymentIntent
      • Billing
      • Card
      • AliPay
      • Wallet
      • Klarna
      • WechatPay
      • Refund
      • Subscription
      • Recurring
      • PriceData
      • SubscriptionItem
      • Invoice
      • NextAction
      • Webhook
      • CollectableOptions
      • PaymentLink
      • last_payment_error
      • discount_period_config
      • Capture
      • three_ds
      • PaymentAttempt
      • konbini
      • client_pm_options
      • pse
      • trial_period_config
      • Seller
      • RabbitLinePay
  • Message
    • Messaging Element
  • About Testing
    • Test Cards
    • ApplePay&GooglePay
  • Reconciliation
    • SFTP Access for Reconciliation
  • FAQ
    • Unable to receive Webhook notifications
    • FAQ
    • Introduction
  1. Supported Payment Methods

MB_WAY

MB WAY is a digital wallet that allows customers in Portugal to authorize payments using the mobile phone number registered with their MB WAY account.

Overview#

PropertyDetails
Markets (consumer)PT
Consumer currenciesEUR
Authentication methodsAPP_AUTHORIZATION
Authentication timeoutSubject to channel rules
Minimum payment amountSubject to channel rules
Maximum payment amountSubject to channel rules
Payment instrumentDIGITAL_WALLET
One-time paymentYes
Recurring paymentsNo
Separate capturesNo
RefundFull · Partial
Refund validitySubject to channel rules
DisputesSubject to channel rules
Supported productsCheckout Session · Hosted Checkout · Embedded Checkout · API

Payment Flow#

1.
Customer selects MB WAY at checkout.
2.
The merchant provides the customer's MB WAY phone number in payment_method_data.billing.phone.
3.
UseePay validates that the phone number is in E.164 format and initiates the MB WAY payment.
4.
The customer receives a payment authorization notification in the MB WAY app.
5.
UseePay returns mb_way_await_authorization while waiting for the customer to approve the payment.
6.
The customer reviews and authorizes the payment in the MB WAY app.
7.
UseePay updates the PaymentIntent and sends a webhook notification containing the final payment status.

Notes#

MB WAY is primarily available to customers in Portugal.
The payment currency is EUR.
payment_method_data.billing.phone is required.
The phone number must use the international E.164 format:
+351912345678
Do not include spaces, parentheses or hyphens:
351 912 345 678
MB WAY only supports automatic capture. Set auto_capture to true or omit it to use the default value.
MB WAY authorization is completed asynchronously in the customer's mobile app. The initial API response does not mean that the payment has succeeded.
Always retrieve the PaymentIntent or process the webhook notification before fulfilling the order.
The payment_method_data.mb_way object currently does not require any MB WAY-specific business parameters. The optional extra_params object is reserved for extended channel parameters and should only be provided when instructed by UseePay.

Integration Guide#

Create and Confirm a PaymentIntent#

UseePay recommends creating and confirming the PaymentIntent in a single request by setting confirm to true.
Set:
currency to EUR
payment_method_data.type to mb_way
payment_method_data.billing.phone to a valid E.164 phone number
billing.address.country to PT
confirm to true
auto_capture to true
A return_url should still be provided to maintain a consistent payment integration, although customer authorization is completed in the MB WAY app.

Request Example#

{
  "merchant_order_id": "order_mb_way_001",
  "amount": 1000,
  "currency": "EUR",
  "confirm": true,
  "auto_capture": true,
  "return_url": "https://merchant.example.com/payment/return",
  "payment_method_data": {
    "type": "mb_way",
    "billing": {
      "first_name": "Maria",
      "last_name": "Silva",
      "email": "maria.silva@example.com",
      "phone": "+351912345678",
      "address": {
        "country": "PT"
      }
    },
    "mb_way": {}
  }
}

Request Example (Java SDK)#


Phone Number Requirement#

The MB WAY phone number is passed through:
payment_method_data.billing.phone
FieldRequiredFormatExample
payment_method_data.billing.phoneYesE.164+351912345678
If the phone number is missing, UseePay rejects the request:
billing.phone is required for mb_way
If the phone number is not in E.164 format, UseePay rejects the request:
billing.phone must be a valid E.164 phone number for mb_way

Response Example#

When the payment has been initiated and UseePay is waiting for customer authorization, the PaymentIntent returns:
{
  "id": "1012611020000000002",
  "code": "0000",
  "message": "Approved or completed successfully",
  "amount": 1000,
  "currency": "EUR",
  "status": "requires_customer_action",
  "confirm": true,
  "orderType": "sale",
  "mode": "payment",
  "sale": true,
  "merchant_no": "500000000000000",
  "app_id": "merchant.example.com",
  "merchant_order_id": "order_mb_way_001",
  "refunded_amount": 0,
  "next_action": {
    "type": "mb_way_await_authorization",
    "mb_way_await_authorization": {}
  },
  "return_url": "https://merchant.example.com/payment/return",
  "auto_capture": true,
  "payment_attempt": {
    "billing": {
      "phone": "+351912345678",
      "address": {
        "country": "PT"
      }
    },
    "payment_method_details": {
      "type": "mb_way"
    }
  }
}

Handling mb_way_await_authorization#

When the response contains:
{
  "next_action": {
    "type": "mb_way_await_authorization",
    "mb_way_await_authorization": {}
  }
}
the merchant should:
1.
Inform the customer that an authorization request has been sent to the MB WAY app.
2.
Ask the customer to open the MB WAY app.
3.
Ask the customer to review and approve the payment.
4.
Keep the payment result page in a waiting state.
5.
Wait for the PaymentIntent status update or webhook notification.
Suggested customer message:
A payment authorization request has been sent to your MB WAY app.
Open the app and approve the payment to continue.
Do not redirect the customer to a URL because mb_way_await_authorization does not contain next_action.redirect.
Do not treat requires_customer_action as a successful payment.

Handling the Payment Result#

Possible statuses include:
StatusDescriptionMerchant Action
requires_customer_actionWaiting for authorization in the MB WAY appDisplay authorization instructions
pendingThe payment is pending the final result from the payment providerWait for the webhook notification
succeededPayment completed successfullyFulfill the order
failedPayment failed or authorization was rejectedDisplay the failure and allow retry
canceledPayment was canceled or expiredClose or recreate the payment
Always use the PaymentIntent status or webhook event as the source of truth. Do not fulfill the order based only on the initial API response.
Previous
Maya
Next
Mobilepay
Built with