{
  "info": {
    "name": "DompetX Public Merchant API",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "DOMPETX_BASE_URL",
      "value": "https://api.dompetx.com/v1"
    },
    {
      "key": "DOMPETX_API_KEY",
      "value": ""
    }
  ],
  "item": [
    {
      "name": "Create Transaction",
      "request": {
        "method": "POST",
        "header": [],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"method\": \"QRIS\",\n  \"amount\": 50000,\n  \"currency\": \"IDR\",\n  \"settlementSpeed\": \"standard\",\n  \"reference\": \"ORDER123456\",\n  \"redirectUrl\": \"https://merchant.example.com/payment/result\",\n  \"chargeFeeToCustomer\": true,\n  \"metadata\": {\n    \"customer_id\": \"CUST-001\",\n    \"order_id\": \"ORDER123456\"\n  }\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{DOMPETX_BASE_URL}}/payments",
          "host": [
            "{{DOMPETX_BASE_URL}}"
          ],
          "path": [
            "payments"
          ],
          "query": [],
          "variable": []
        }
      },
      "response": [
        {
          "name": "Example Response",
          "originalRequest": {},
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"id\": \"a21ed184-c16e-421a-b3e1-cb75d2d1491e\",\n  \"reference\": \"ORDER123456\",\n  \"providerPaymentId\": \"QRA177815672198611900136582\",\n  \"status\": \"pending\",\n  \"amount\": 50000,\n  \"fee\": 450,\n  \"additionalFee\": 200,\n  \"getBalance\": 50000,\n  \"totalAmount\": 50650,\n  \"isFeeIncluded\": false,\n  \"currency\": \"IDR\",\n  \"type\": \"qr_dynamic\",\n  \"paymentUrl\": \"https://checkout.dompetx.com/checkout?refId=a21ed184-c16e-421a-b3e1-cb75d2d1491e\",\n  \"qrData\": {\n    \"qrString\": \"000201010212...\",\n    \"qrImage\": \"https://api.dompetx.com/v1/qr/a21ed184-c16e-421a-b3e1-cb75d2d1491e\",\n    \"refId\": \"dompay-2-1778156721899067601\"\n  }\n}"
        }
      ],
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "exec": [
              "const apiKey = pm.environment.get(\"DOMPETX_API_KEY\");",
              "const body = pm.request.body && pm.request.body.raw ? pm.request.body.raw : \"{}\";",
              "const timestamp = Math.floor(Date.now() / 1000).toString();",
              "const signatureInput = timestamp + \".\" + body;",
              "const signature = CryptoJS.HmacSHA256(signatureInput, apiKey).toString(CryptoJS.enc.Hex);",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-API-Key\", value: apiKey });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Timestamp\", value: timestamp });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Signature\", value: signature });",
              "pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" });"
            ]
          }
        }
      ]
    },
    {
      "name": "Get Payment List",
      "request": {
        "method": "GET",
        "header": [],
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{DOMPETX_BASE_URL}}/payments?page=1&limit=10",
          "host": [
            "{{DOMPETX_BASE_URL}}"
          ],
          "path": [
            "payments"
          ],
          "query": [
            {
              "key": "page",
              "value": "1",
              "description": ""
            },
            {
              "key": "limit",
              "value": "10",
              "description": ""
            }
          ],
          "variable": []
        }
      },
      "response": [
        {
          "name": "Example Response",
          "originalRequest": {},
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"dbd245ac-421d-4e79-ba1a-4a0f90d75dae\",\n      \"status\": \"paid\",\n      \"amount\": 50000,\n      \"currency\": \"IDR\",\n      \"type\": \"qr_dynamic\",\n      \"provider\": \"dompetx\",\n      \"createdAt\": \"2025-11-05T04:54:05Z\",\n      \"expiresAt\": \"2025-11-05T05:09:05Z\"\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"limit\": 10,\n    \"total\": 100\n  }\n}"
        }
      ],
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "exec": [
              "const apiKey = pm.environment.get(\"DOMPETX_API_KEY\");",
              "const body = pm.request.body && pm.request.body.raw ? pm.request.body.raw : \"{}\";",
              "const timestamp = Math.floor(Date.now() / 1000).toString();",
              "const signatureInput = timestamp + \".\" + body;",
              "const signature = CryptoJS.HmacSHA256(signatureInput, apiKey).toString(CryptoJS.enc.Hex);",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-API-Key\", value: apiKey });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Timestamp\", value: timestamp });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Signature\", value: signature });",
              "pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" });"
            ]
          }
        }
      ]
    },
    {
      "name": "Get Transaction Detail",
      "request": {
        "method": "GET",
        "header": [],
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{DOMPETX_BASE_URL}}/payments/detail/:id",
          "host": [
            "{{DOMPETX_BASE_URL}}"
          ],
          "path": [
            "payments",
            "detail",
            ":id"
          ],
          "query": [],
          "variable": [
            {
              "key": "id",
              "value": "payment_public_id"
            }
          ]
        }
      },
      "response": [
        {
          "name": "Example Response",
          "originalRequest": {},
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"id\": \"dbd245ac-421d-4e79-ba1a-4a0f90d75dae\",\n  \"status\": \"paid\",\n  \"amount\": 50000,\n  \"currency\": \"IDR\",\n  \"type\": \"qr_dynamic\",\n  \"provider\": \"dompetx\",\n  \"createdAt\": \"2025-11-05T04:54:05Z\",\n  \"expiresAt\": \"2025-11-05T05:09:05Z\",\n  \"qrData\": {\n    \"qrString\": \"00020101021226610016ID.CO.SHOPEE.WWW...\",\n    \"qrImage\": \"https://api.dompetx.com/qr/ZNdFsRZIboD9OCVyJ0YF\",\n    \"refId\": \"dompay-2-1762006527164913509\"\n  }\n}"
        }
      ],
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "exec": [
              "const apiKey = pm.environment.get(\"DOMPETX_API_KEY\");",
              "const body = pm.request.body && pm.request.body.raw ? pm.request.body.raw : \"{}\";",
              "const timestamp = Math.floor(Date.now() / 1000).toString();",
              "const signatureInput = timestamp + \".\" + body;",
              "const signature = CryptoJS.HmacSHA256(signatureInput, apiKey).toString(CryptoJS.enc.Hex);",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-API-Key\", value: apiKey });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Timestamp\", value: timestamp });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Signature\", value: signature });",
              "pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" });"
            ]
          }
        }
      ]
    },
    {
      "name": "Check Transaction Status",
      "request": {
        "method": "GET",
        "header": [],
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{DOMPETX_BASE_URL}}/payments/check-status/:transactionId",
          "host": [
            "{{DOMPETX_BASE_URL}}"
          ],
          "path": [
            "payments",
            "check-status",
            ":transactionId"
          ],
          "query": [],
          "variable": [
            {
              "key": "transactionId",
              "value": "payment_public_id"
            }
          ]
        }
      },
      "response": [
        {
          "name": "Example Response",
          "originalRequest": {},
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"id\": \"dbd245ac-421d-4e79-ba1a-4a0f90d75dae\",\n  \"reference\": \"ORDER123456\",\n  \"status\": \"paid\",\n  \"amount\": 50000,\n  \"currency\": \"IDR\",\n  \"type\": \"qr_dynamic\",\n  \"history\": null\n}"
        }
      ],
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "exec": [
              "const apiKey = pm.environment.get(\"DOMPETX_API_KEY\");",
              "const body = pm.request.body && pm.request.body.raw ? pm.request.body.raw : \"{}\";",
              "const timestamp = Math.floor(Date.now() / 1000).toString();",
              "const signatureInput = timestamp + \".\" + body;",
              "const signature = CryptoJS.HmacSHA256(signatureInput, apiKey).toString(CryptoJS.enc.Hex);",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-API-Key\", value: apiKey });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Timestamp\", value: timestamp });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Signature\", value: signature });",
              "pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" });"
            ]
          }
        }
      ]
    },
    {
      "name": "Cancel Transaction",
      "request": {
        "method": "POST",
        "header": [],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"reason\": \"Customer requested cancellation\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{DOMPETX_BASE_URL}}/payments/cancel/:id",
          "host": [
            "{{DOMPETX_BASE_URL}}"
          ],
          "path": [
            "payments",
            "cancel",
            ":id"
          ],
          "query": [],
          "variable": [
            {
              "key": "id",
              "value": "payment_public_id"
            }
          ]
        }
      },
      "response": [
        {
          "name": "Example Response",
          "originalRequest": {},
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"id\": \"dbd245ac-421d-4e79-ba1a-4a0f90d75dae\",\n  \"status\": \"failed\",\n  \"amount\": 50000,\n  \"currency\": \"IDR\",\n  \"type\": \"qr_dynamic\"\n}"
        }
      ],
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "exec": [
              "const apiKey = pm.environment.get(\"DOMPETX_API_KEY\");",
              "const body = pm.request.body && pm.request.body.raw ? pm.request.body.raw : \"{}\";",
              "const timestamp = Math.floor(Date.now() / 1000).toString();",
              "const signatureInput = timestamp + \".\" + body;",
              "const signature = CryptoJS.HmacSHA256(signatureInput, apiKey).toString(CryptoJS.enc.Hex);",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-API-Key\", value: apiKey });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Timestamp\", value: timestamp });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Signature\", value: signature });",
              "pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" });"
            ]
          }
        }
      ]
    },
    {
      "name": "Get Payment Channels",
      "request": {
        "method": "GET",
        "header": [],
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{DOMPETX_BASE_URL}}/payments/channel",
          "host": [
            "{{DOMPETX_BASE_URL}}"
          ],
          "path": [
            "payments",
            "channel"
          ],
          "query": [],
          "variable": []
        }
      },
      "response": [
        {
          "name": "Example Response",
          "originalRequest": {},
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"status\": 200,\n  \"data\": [\n    {\n      \"id\": \"7072d1e9-d82e-452d-800a-3455c444a989\",\n      \"name\": \"QRIS\",\n      \"code\": \"qris\",\n      \"image_url\": \"PAYMENT_METHOD/55ccc0dd-03e3-4414-8280-8026cfbae921.png\",\n      \"status\": \"active\",\n      \"is_fee_charged_to_customer\": false,\n      \"fee_info\": {\n        \"fee_percentage\": 0.7,\n        \"fee_value\": 400,\n        \"min_transactions\": 1000,\n        \"max_transactions\": 1000000\n      }\n    }\n  ]\n}"
        }
      ],
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "exec": [
              "const apiKey = pm.environment.get(\"DOMPETX_API_KEY\");",
              "const body = pm.request.body && pm.request.body.raw ? pm.request.body.raw : \"{}\";",
              "const timestamp = Math.floor(Date.now() / 1000).toString();",
              "const signatureInput = timestamp + \".\" + body;",
              "const signature = CryptoJS.HmacSHA256(signatureInput, apiKey).toString(CryptoJS.enc.Hex);",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-API-Key\", value: apiKey });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Timestamp\", value: timestamp });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Signature\", value: signature });",
              "pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" });"
            ]
          }
        }
      ]
    },
    {
      "name": "Create Payment Checkout",
      "request": {
        "method": "POST",
        "header": [],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"amount\": 5000,\n  \"currency\": \"IDR\",\n  \"reference\": \"ORDER16JAN2026\",\n  \"redirectUrl\": \"https://merchant.example.com/payment/result\",\n  \"metadata\": {\n    \"customer_id\": \"CUST-456\",\n    \"order_type\": \"retail\"\n  }\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{DOMPETX_BASE_URL}}/payments/checkout",
          "host": [
            "{{DOMPETX_BASE_URL}}"
          ],
          "path": [
            "payments",
            "checkout"
          ],
          "query": [],
          "variable": []
        }
      },
      "response": [
        {
          "name": "Example Response",
          "originalRequest": {},
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"amount\": 5000,\n  \"createdAt\": \"2026-01-16T10:33:15+07:00\",\n  \"currency\": \"IDR\",\n  \"expiresAt\": \"2026-01-17T10:33:15+07:00\",\n  \"id\": \"7f3e4175-9f9c-49f5-947e-5b65b0c509e3\",\n  \"redirectUrl\": \"https://merchant.example.com/payment/result\",\n  \"status\": \"pending\",\n  \"payment_link\": \"https://checkout.dompetx.com/checkout/7f3e4175-9f9c-49f5-947e-5b65b0c509e3\"\n}"
        }
      ],
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "exec": [
              "const apiKey = pm.environment.get(\"DOMPETX_API_KEY\");",
              "const body = pm.request.body && pm.request.body.raw ? pm.request.body.raw : \"{}\";",
              "const timestamp = Math.floor(Date.now() / 1000).toString();",
              "const signatureInput = timestamp + \".\" + body;",
              "const signature = CryptoJS.HmacSHA256(signatureInput, apiKey).toString(CryptoJS.enc.Hex);",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-API-Key\", value: apiKey });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Timestamp\", value: timestamp });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Signature\", value: signature });",
              "pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" });"
            ]
          }
        }
      ]
    },
    {
      "name": "Checkout List",
      "request": {
        "method": "GET",
        "header": [],
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{DOMPETX_BASE_URL}}/payments/checkout?page=1&limit=10&status=paid",
          "host": [
            "{{DOMPETX_BASE_URL}}"
          ],
          "path": [
            "payments",
            "checkout"
          ],
          "query": [
            {
              "key": "page",
              "value": "1",
              "description": ""
            },
            {
              "key": "limit",
              "value": "10",
              "description": ""
            },
            {
              "key": "status",
              "value": "paid",
              "description": ""
            }
          ],
          "variable": []
        }
      },
      "response": [
        {
          "name": "Example Response",
          "originalRequest": {},
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"data\": [\n    {\n      \"id\": \"7f3e4175-9f9c-49f5-947e-5b65b0c509e3\",\n      \"reference\": \"ORDER16JAN2026\",\n      \"status\": \"pending\",\n      \"amount\": 5000,\n      \"currency\": \"IDR\",\n      \"payment_link\": \"https://checkout.dompetx.com/checkout/7f3e4175-9f9c-49f5-947e-5b65b0c509e3\"\n    }\n  ],\n  \"pagination\": {\n    \"page\": 1,\n    \"limit\": 10,\n    \"total\": 1\n  }\n}"
        }
      ],
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "exec": [
              "const apiKey = pm.environment.get(\"DOMPETX_API_KEY\");",
              "const body = pm.request.body && pm.request.body.raw ? pm.request.body.raw : \"{}\";",
              "const timestamp = Math.floor(Date.now() / 1000).toString();",
              "const signatureInput = timestamp + \".\" + body;",
              "const signature = CryptoJS.HmacSHA256(signatureInput, apiKey).toString(CryptoJS.enc.Hex);",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-API-Key\", value: apiKey });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Timestamp\", value: timestamp });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Signature\", value: signature });",
              "pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" });"
            ]
          }
        }
      ]
    },
    {
      "name": "Get Checkout Detail",
      "request": {
        "method": "GET",
        "header": [],
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{DOMPETX_BASE_URL}}/payments/checkout/detail/:id",
          "host": [
            "{{DOMPETX_BASE_URL}}"
          ],
          "path": [
            "payments",
            "checkout",
            "detail",
            ":id"
          ],
          "query": [],
          "variable": [
            {
              "key": "id",
              "value": "payment_public_id"
            }
          ]
        }
      },
      "response": [
        {
          "name": "Example Response",
          "originalRequest": {},
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"id\": \"7f3e4175-9f9c-49f5-947e-5b65b0c509e3\",\n  \"reference\": \"ORDER16JAN2026\",\n  \"providerPaymentId\": null,\n  \"status\": \"pending\",\n  \"amount\": 5000,\n  \"fee\": 0,\n  \"additionalFee\": 0,\n  \"getBalance\": 0,\n  \"totalAmount\": 0,\n  \"isFeeIncluded\": false,\n  \"currency\": \"IDR\",\n  \"type\": \"\",\n  \"createdAt\": \"2026-01-16T10:33:15+07:00\",\n  \"expiresAt\": \"2026-01-16T11:33:15+07:00\",\n  \"history\": null\n}"
        }
      ],
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "exec": [
              "const apiKey = pm.environment.get(\"DOMPETX_API_KEY\");",
              "const body = pm.request.body && pm.request.body.raw ? pm.request.body.raw : \"{}\";",
              "const timestamp = Math.floor(Date.now() / 1000).toString();",
              "const signatureInput = timestamp + \".\" + body;",
              "const signature = CryptoJS.HmacSHA256(signatureInput, apiKey).toString(CryptoJS.enc.Hex);",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-API-Key\", value: apiKey });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Timestamp\", value: timestamp });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Signature\", value: signature });",
              "pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" });"
            ]
          }
        }
      ]
    },
    {
      "name": "Check Checkout Status",
      "request": {
        "method": "GET",
        "header": [],
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{DOMPETX_BASE_URL}}/payments/checkout/check-status/:id",
          "host": [
            "{{DOMPETX_BASE_URL}}"
          ],
          "path": [
            "payments",
            "checkout",
            "check-status",
            ":id"
          ],
          "query": [],
          "variable": [
            {
              "key": "id",
              "value": "payment_public_id"
            }
          ]
        }
      },
      "response": [
        {
          "name": "Example Response",
          "originalRequest": {},
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"id\": \"e0ce4eda-e701-4cd5-b027-a6a891971049\",\n  \"reference\": \"MERCHANTBASICNEW5-1768488757-70471\",\n  \"providerPaymentId\": \"t96ajeZwKKmz7GC9oHQL\",\n  \"status\": \"paid\",\n  \"amount\": 2000,\n  \"fee\": 18,\n  \"additionalFee\": 200,\n  \"getBalance\": 2000,\n  \"totalAmount\": 2218,\n  \"isFeeIncluded\": false,\n  \"currency\": \"IDR\",\n  \"type\": \"qr_dynamic\",\n  \"createdAt\": \"2026-01-15T21:52:38+07:00\",\n  \"expiresAt\": \"2026-01-15T22:52:38+07:00\",\n  \"qrData\": {\n    \"qrString\": \"00020101021226610016ID.CO.SHOPEE.WWW...\",\n    \"qrImage\": \"/v1/qr/058cbef4-59dd-4f17-ba22-c0c15e8d3c2f\",\n    \"refId\": \"dompay-71-1768488757572576936\"\n  },\n  \"history\": null\n}"
        }
      ],
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "exec": [
              "const apiKey = pm.environment.get(\"DOMPETX_API_KEY\");",
              "const body = pm.request.body && pm.request.body.raw ? pm.request.body.raw : \"{}\";",
              "const timestamp = Math.floor(Date.now() / 1000).toString();",
              "const signatureInput = timestamp + \".\" + body;",
              "const signature = CryptoJS.HmacSHA256(signatureInput, apiKey).toString(CryptoJS.enc.Hex);",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-API-Key\", value: apiKey });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Timestamp\", value: timestamp });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Signature\", value: signature });",
              "pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" });"
            ]
          }
        }
      ]
    },
    {
      "name": "Cancel Checkout",
      "request": {
        "method": "POST",
        "header": [],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"reason\": \"Customer requested cancellation\"\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{DOMPETX_BASE_URL}}/payments/checkout/cancel/:id",
          "host": [
            "{{DOMPETX_BASE_URL}}"
          ],
          "path": [
            "payments",
            "checkout",
            "cancel",
            ":id"
          ],
          "query": [],
          "variable": [
            {
              "key": "id",
              "value": "payment_public_id"
            }
          ]
        }
      },
      "response": [
        {
          "name": "Example Response",
          "originalRequest": {},
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"id\": \"dbd245ac-421d-4e79-ba1a-4a0f90d75dae\",\n  \"status\": \"failed\",\n  \"amount\": 50000,\n  \"currency\": \"IDR\",\n  \"type\": \"qr_dynamic\"\n}"
        }
      ],
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "exec": [
              "const apiKey = pm.environment.get(\"DOMPETX_API_KEY\");",
              "const body = pm.request.body && pm.request.body.raw ? pm.request.body.raw : \"{}\";",
              "const timestamp = Math.floor(Date.now() / 1000).toString();",
              "const signatureInput = timestamp + \".\" + body;",
              "const signature = CryptoJS.HmacSHA256(signatureInput, apiKey).toString(CryptoJS.enc.Hex);",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-API-Key\", value: apiKey });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Timestamp\", value: timestamp });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Signature\", value: signature });",
              "pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" });"
            ]
          }
        }
      ]
    },
    {
      "name": "Calculate Payment Fee",
      "request": {
        "method": "POST",
        "header": [],
        "body": {
          "mode": "raw",
          "raw": "{\n  \"merchantId\": \"76bc60c6-f6c0-9782-53c0-fc31a41c7065\",\n  \"amount\": 50000,\n  \"currency\": \"IDR\",\n  \"method\": \"QRIS\",\n  \"chargeFeeToCustomer\": true\n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{DOMPETX_BASE_URL}}/payments/calculate",
          "host": [
            "{{DOMPETX_BASE_URL}}"
          ],
          "path": [
            "payments",
            "calculate"
          ],
          "query": [],
          "variable": []
        }
      },
      "response": [
        {
          "name": "Example Response",
          "originalRequest": {},
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"amount\": 50000,\n  \"fee\": 450,\n  \"additionalFee\": 200,\n  \"totalAmount\": 50650,\n  \"getBalance\": 50000,\n  \"currency\": \"IDR\"\n}"
        }
      ],
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "exec": [
              "const apiKey = pm.environment.get(\"DOMPETX_API_KEY\");",
              "const body = pm.request.body && pm.request.body.raw ? pm.request.body.raw : \"{}\";",
              "const timestamp = Math.floor(Date.now() / 1000).toString();",
              "const signatureInput = timestamp + \".\" + body;",
              "const signature = CryptoJS.HmacSHA256(signatureInput, apiKey).toString(CryptoJS.enc.Hex);",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-API-Key\", value: apiKey });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Timestamp\", value: timestamp });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Signature\", value: signature });",
              "pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" });"
            ]
          }
        }
      ]
    },
    {
      "name": "Get QRIS Image",
      "request": {
        "method": "GET",
        "header": [],
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{DOMPETX_BASE_URL}}/qr/:paymentId",
          "host": [
            "{{DOMPETX_BASE_URL}}"
          ],
          "path": [
            "qr",
            ":paymentId"
          ],
          "query": [],
          "variable": [
            {
              "key": "paymentId",
              "value": "payment_public_id"
            }
          ]
        }
      },
      "response": [
        {
          "name": "Example Response",
          "originalRequest": {},
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "image/png"
            }
          ],
          "body": "PNG image binary"
        }
      ],
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "exec": [
              "const apiKey = pm.environment.get(\"DOMPETX_API_KEY\");",
              "const body = pm.request.body && pm.request.body.raw ? pm.request.body.raw : \"{}\";",
              "const timestamp = Math.floor(Date.now() / 1000).toString();",
              "const signatureInput = timestamp + \".\" + body;",
              "const signature = CryptoJS.HmacSHA256(signatureInput, apiKey).toString(CryptoJS.enc.Hex);",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-API-Key\", value: apiKey });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Timestamp\", value: timestamp });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Signature\", value: signature });",
              "pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" });"
            ]
          }
        }
      ]
    },
    {
      "name": "Balance Inquiry",
      "request": {
        "method": "GET",
        "header": [],
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{DOMPETX_BASE_URL}}/saldo",
          "host": [
            "{{DOMPETX_BASE_URL}}"
          ],
          "path": [
            "saldo"
          ],
          "query": [],
          "variable": []
        }
      },
      "response": [
        {
          "name": "Example Response",
          "originalRequest": {},
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"total\": 158000,\n  \"components\": [\n    {\n      \"provider\": \"dompetx\",\n      \"balance\": 158000,\n      \"accountType\": \"merchant\"\n    }\n  ]\n}"
        }
      ],
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "exec": [
              "const apiKey = pm.environment.get(\"DOMPETX_API_KEY\");",
              "const body = pm.request.body && pm.request.body.raw ? pm.request.body.raw : \"{}\";",
              "const timestamp = Math.floor(Date.now() / 1000).toString();",
              "const signatureInput = timestamp + \".\" + body;",
              "const signature = CryptoJS.HmacSHA256(signatureInput, apiKey).toString(CryptoJS.enc.Hex);",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-API-Key\", value: apiKey });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Timestamp\", value: timestamp });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Signature\", value: signature });",
              "pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" });"
            ]
          }
        }
      ]
    },
    {
      "name": "Merchant Reporting",
      "request": {
        "method": "GET",
        "header": [],
        "body": {
          "mode": "raw",
          "raw": "{}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        },
        "url": {
          "raw": "{{DOMPETX_BASE_URL}}/merchant/reporting?startDate=2026-06-01&endDate=2026-06-30&paymentMethod=QRIS&status=paid",
          "host": [
            "{{DOMPETX_BASE_URL}}"
          ],
          "path": [
            "merchant",
            "reporting"
          ],
          "query": [
            {
              "key": "startDate",
              "value": "2026-06-01",
              "description": ""
            },
            {
              "key": "endDate",
              "value": "2026-06-30",
              "description": ""
            },
            {
              "key": "paymentMethod",
              "value": "QRIS",
              "description": ""
            },
            {
              "key": "status",
              "value": "paid",
              "description": ""
            }
          ],
          "variable": []
        }
      },
      "response": [
        {
          "name": "Example Response",
          "originalRequest": {},
          "status": "OK",
          "code": 200,
          "header": [
            {
              "key": "Content-Type",
              "value": "application/json"
            }
          ],
          "body": "{\n  \"totalAmount\": 1500000,\n  \"totalFee\": 13500,\n  \"totalGetBalance\": 1486500,\n  \"totalTransactions\": 30,\n  \"currency\": \"IDR\"\n}"
        }
      ],
      "event": [
        {
          "listen": "prerequest",
          "script": {
            "type": "text/javascript",
            "exec": [
              "const apiKey = pm.environment.get(\"DOMPETX_API_KEY\");",
              "const body = pm.request.body && pm.request.body.raw ? pm.request.body.raw : \"{}\";",
              "const timestamp = Math.floor(Date.now() / 1000).toString();",
              "const signatureInput = timestamp + \".\" + body;",
              "const signature = CryptoJS.HmacSHA256(signatureInput, apiKey).toString(CryptoJS.enc.Hex);",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-API-Key\", value: apiKey });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Timestamp\", value: timestamp });",
              "pm.request.headers.upsert({ key: \"X-DOMPAY-Signature\", value: signature });",
              "pm.request.headers.upsert({ key: \"Content-Type\", value: \"application/json\" });"
            ]
          }
        }
      ]
    }
  ]
}
