Execute an MPM QR

Changed on

Initiate a transaction from the scanner to the beneficiary account designated in the QR

post/v3/qr/mpm/execute

Request

  • Base URL
    https://api.paymongo.com
  • URL
    https://api.paymongo.com/v3/qr/mpm/execute
  • Auth
    HTTP basic

Headers

Idempotency-Keystring

Any string used to make requests behave idempotently

Request body

qr_stringstring required

The QR string containing the necessary details to make the transaction.

amountinteger required

The transaction amount in the smallest denominator of the transaction currency designated by the QR being scanned, e.g. transaction currency of scanned QR is PHP then amount is in centavos.

This field is required regardless even for dynamic QRs as the amount will be validated against the amount denoted in the QR.

reference_numberstring

Reference number for the scanner to identify the transaction, a default value of random alphanumeric of 24 characters will be generated on each request if not supplied.

metadataobject

Arbitrary metadata, intended to help the scanner in identifying the transaction.

Response

Example response

{
  "data": {
    "transfer_id": "tr_e412223f0e86a56cc28eca92",
    "reference_number": "qr-api-test-e44de8d9-5dd6-4037-8914-049d7ff68a90",
    "provider_reference_number": "qr_api_test_e44de8d9-5dd6-4037-8914-049d7ff68a90",
    "amount": 1250,
    "currency": "PHP",
    "status": "pending",
    "source_account": {
      "number": "753378978189",
      "name": "hellooo",
      "bic": "PAEYPHM2XXX"
    },
    "destination_account": {
      "number": "428584115805",
      "name": "12D Wallet account",
      "bic": "PAEYPHM2XXX"
    },
    "metadata": {
      "destination_bank_name": "PAYMONGO PAYMENTS, INC.",
      "qr_id": "qr_d6750d7621e3c4df7a247478",
      "reference_label": "R1M",
      "source_bank_name": "PAYMONGO PAYMENTS, INC."
    },
    "created_at": "2026-05-27T00:36:57.949427069Z",
    "updated_at": "2026-05-27T00:36:57.949427069Z"
  }
}

Changes

    • breaking

      the request property became required

    • info

      added the new optional header request parameter Idempotency-Key