Skip to main content
Multicaixa Express is an interbank mobile channel that allows users to add multiple Multicaixa cards to the Multicaixa Express mobile app. The customer only needs their mobile phone to make a payment. The customer authorizes the payment within 90 seconds. Multicaixa Express is well suited for mobile applications and websites.
Multicaixa Express is only available in Angola.

How it works

Flowchart depicting Multicaixa Express payment flow Multicaixa Express is an asynchronous payment method. When you create a payment, the system confirms its creation and the transaction enters a “processing” status. The status remains “processing” until the customer completes the payment. Once a reference is generated, the order is locked — the customer cannot switch to a different payment method. If the customer needs to pay with a different method, a new order must be created. Once the customer pays, Multicaixa Express sends a notification and the payment status updates to either “successful” or “failed”.

Create order

The following example creates an order:
curl --request POST \
 --url https://gateway.paybyrd.com/api/v2/orders \
 --header 'Accept: application/json' \
 --header 'Content-Type: application/json' \
 --header 'x-api-key: {your_api_key}' \
 --data '
{
 "orderRef": "MULTICAIXAEXPRESS",
 "isoAmount": 30010,
 "currency": "EUR",
 "marketId": "PT",
 "orderOptions": {
   "culture": "pt-PT"
 },
 "paymentOptions": {
   "allowedPaymentMethods": [
     "MULTICAIXAEXPRESS"
   ]
 },
 "shopper": {
   "firstName": "Peter",
   "lastName": "Parker",
   "email": "peter@parker.com"
 }
}'

Create payment

The following example creates a Multicaixa Express payment:
curl --request POST \
 --url https://gateway.paybyrd.com/api/v2/payment \
 --header 'Accept: application/json' \
 --header 'Content-Type: application/json' \
 --header 'x-api-key: {your_api_key}' \
 --data '
{ 
 "type":"OnlineTransfer",
 "amount": "100.00",
 "currency": "EUR",
 "brand":"MULTICAIXAEXPRESS",
 "phoneNumber": "351#900000000"
}'

Payment Flow

The Multicaixa Express integration now supports a new payment experience built around QR Code payments and deeplink redirection, in addition to the existing phone-initiated flow.

Desktop and Web

Once the order is created, Paybyrd Checkout displays a QR Code for the buyer to scan. Scanning it redirects them into the MultiCaixa Express app to complete the payment.

Mobile

If the buyer is already on a mobile device, tapping the Pay button in Paybyrd Checkout automatically redirects them to the MultiCaixa Express app, where the payment is completed directly.

Response Fields

When the transaction brand is MULTICAIXAEXPRESS, the API response includes a multicaixaExpress object with the following fields:
FieldTypeDescription
deeplinkstring (uri)Direct deeplink for the MultiCaixa Express app.
deeplinkRedirectstring (uri)Redirect URL for mobile and browser flows to the MultiCaixa Express app.
qrCodeUrlstring (uri)QR Code image URL.
expiresAtstring (ISO 8601)Payment expiration timestamp.
{
  "multicaixaExpress": {
    "deeplink": "mcxwallet://purchase?qrref=...",
    "deeplinkRedirect": "https://api.sandbox.proxypay.co.ao/deeplink/...",
    "qrCodeUrl": "https://api.sandbox.proxypay.co.ao/qrcode/...",
    "expiresAt": "2026-05-21T18:00:37"
  }
}
Visit the API reference for more details.

Testing

The mobile number you use in the Create payment request determines the final status of the transaction. Use these phone numbers to test different scenarios:
MobileStatusReasonDetails
900000000acceptedN/ASimulates an accepted transaction by the customer. Occurs 5 to 20 seconds after request.
900002004rejected2004Simulates the timeout incurred when the customer receives the payment request but fails to accept it within the time limit. Occurs 90 seconds after request.
900003000rejected3000Simulates a customer refusal. Occurs in 5 to 20 seconds after request.
9XXXXXXXXrejected2010Simulates a refusal from the processor. Occurs immediately after request.