Skip to main content
POST
/
api
/
v1.0
/
qris-dynamic
/
{account_id}
/
generate-qr
Generate
curl --request POST \
  --url https://sandbox-payment-b2b.singapay.id/api/v1.0/qris-dynamic/{account_id}/generate-qr \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-PARTNER-ID: <api-key>' \
  --data '
{
  "amount": 10000,
  "expired_at": "2024-05-13T00:00:00Z",
  "merchant_reff_no": "INV20240513001"
}
'
{
  "status": 200,
  "success": true,
  "data": {
    "id": 103,
    "reff_no": "INV20240513001",
    "merchant_reff_no": "INV20240513001",
    "status": "open",
    "status_computed": "open",
    "is_expired": false,
    "qr_data": "00020101021226620015ID.SINGAPAY.WWW...",
    "kind": "on-us",
    "type": "mpm-dynamic",
    "amount": 10000,
    "total_amount": 10000,
    "mdr_percentage": 1.5,
    "mdr_cost": 150,
    "our_margin": 50,
    "vendor_fee": 150,
    "settled_to_merchant_amount": 9750,
    "acquirer_name": "SingaPay",
    "acquirer_nns": "1234567890",
    "issuer_name": "SingaPay",
    "issuer_nns": "1234567890",
    "customer_pan": "1234567890",
    "customer_name": "John Doe",
    "customer_account_type": "UNSPECIFIED",
    "customer_data": {
      "pan": "1234567890",
      "name": "John Doe",
      "account_type": "UNSPECIFIED"
    },
    "has_reconcile": false,
    "reconcile_at": "2024-05-13T00:00:00Z",
    "reconcile_by": "SYSTEM",
    "had_settled_to_merchant": false,
    "settled_to_merchant_at": "2024-05-13T00:00:00Z",
    "has_settle": false,
    "settle_at": "2024-05-13T00:00:00Z",
    "created_at": "2024-05-13T00:00:00Z",
    "updated_at": "2024-05-13T00:00:00Z",
    "expired_at": "2024-05-13T00:00:00Z",
    "deleted_at": "2024-05-13T00:00:00Z",
    "events_count": 1
  }
}

Authorizations

Authorization
string
header
required

JWT issued by POST /api/v1.1/access-token/b2b. Send Authorization: Bearer <token>.

X-PARTNER-ID
string
header
required

Merchant API key (Credential.api_key). Required on every request.

Path Parameters

account_id
string
required

Account identifier in ULID format.

Body

application/json
amount
number
required

Payment amount for the dynamic QRIS. Minimum and maximum limits depend on merchant configuration.

Example:

10000

expired_at
string<date-time>

Optional expiration datetime. When provided, must be later than the current time.

Example:

"2024-05-13T00:00:00Z"

merchant_reff_no
string | null

Optional merchant reference number for this QRIS transaction.

Maximum string length: 255
Example:

"INV20240513001"

Response

QRIS created

status
integer
required

HTTP status code.

Example:

200

success
boolean
required

Indicates whether the request was successful.

Example:

true

data
object
required

QRIS transaction resource payload.