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

# Changelog

> Product updates and improvements to the Paybyrd API and documentation.

<Update label="May 2026" description="Added">
  ### Multicaixa Express: QR code and deeplink response fields

  Multicaixa Express payments now return a `multicaixaExpress` object in the payment response, containing QR code and deeplink data to support the full checkout experience across desktop and mobile.

  When `brand` is `MULTICAIXAEXPRESS`, the response includes:

  | Field              | Type              | Description                                           |
  | ------------------ | ----------------- | ----------------------------------------------------- |
  | `deeplink`         | string (uri)      | Direct deeplink to open the Multicaixa Express app.   |
  | `deeplinkRedirect` | string (uri)      | Redirect URL for browser and mobile flows to the app. |
  | `qrCodeUrl`        | string (uri)      | URL of the QR code image.                             |
  | `expiresAt`        | string (ISO 8601) | Payment expiration timestamp.                         |

  ```json theme={null}
  {
    "multicaixaExpress": {
      "deeplink": "mcxwallet://purchase?qrref=...",
      "deeplinkRedirect": "https://api.sandbox.proxypay.co.ao/deeplink/...",
      "qrCodeUrl": "https://api.sandbox.proxypay.co.ao/qrcode/...",
      "expiresAt": "2026-05-22T19:14:04Z"
    }
  }
  ```

  On desktop, Paybyrd Checkout uses `qrCodeUrl` to display a QR code for the buyer to scan. On mobile, tapping **Pay** uses `deeplinkRedirect` to open the Multicaixa Express app directly.

  See the [Multicaixa Express](/accept-payments/bank-transfers/multicaixa-express) guide for full details.
</Update>

<Update label="April 2026" description="Added">
  ### New field: `softDescriptor` for card payments

  Card payments now support a `softDescriptor` field, which controls the text that appears on the cardholder's bank statement for that transaction.

  * Maximum length: **22 characters**
  * Requests exceeding this limit return a `400 Bad Request` error

  ```bash theme={null}
  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 '{
     "softDescriptor": "MYSTORE*ORDER123",
     ...
   }'
  ```

  See the [card payments](/accept-payments/card/card-payments) guide and the [Create Payment](/api-reference/payments/create-payment) API reference for full details.
</Update>
