{
  "info": {
    "_postman_id": "beanzpay-saas-partner-merchant-2026-10-06",
    "name": "BeanzPay SaaS Integration v3",
    "description": "Partner1.9.0, Native1.5.0, Native financial webhook3.0.0. Secret-free contract with separately gated environments. Operational Partner requests are local/manual-review workflows and do not call the provider or send mail. Native subscription enrollment is first-3DS and unknown writes require the same persisted Idempotency-Key; no automatic retry or provider ID input is included.\nDocumentation reviewed 2026-10-21 against caf52828c8aeb1c915512e168f8b3395436c843c; existing API behavior only, no financial acceptance claim.\nCandidate contract journey and original-key secret operation recovery. Discovery1.4.0, NativeAPI1.5.0. No automatic POST retry or saved secret in exported templates; current production availability requires separate release evidence.\nOwner-image revision 2026-10-21: every required owner_id needs one actual front image plus identity fields. This changes the former fields-only owner requirement. No separate back image is collected by the Partner contract. Deployment and financial acceptance are separately verified.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "Partner Test 1.9.0",
      "description": "Run deliberately after owner authorization and capability checks; no collection scripts submit writes automatically.",
      "item": [
        {
          "name": "GET /health — Check the authenticated Partner API",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/health",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /info — Get partner identity and Test environment information",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/info",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /integration — Discover the provider-neutral SaaS integration contract",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/integration",
              "variable": []
            },
            "description": "API 1.9.0\nReturns the current Partner API contract and the separate\nnative merchant API boundary. It describes authentication ownership,\nenvironment binding, limits, and capability states without returning\nPartner secrets, merchant bearer tokens, provider credentials,\nprovider URLs, or absolute destination URLs. The response distinguishes\nTest Partner financial operations from production administrative\nonboarding. It does not assert that a payment/refund capability is\navailable until the merchant environment and capability checks pass.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /webhook — Read the current Partner webhook configuration",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/webhook",
              "variable": []
            },
            "description": "API 1.9.0\nReturns the configured destination, contract, event projection,\nsigning metadata, and retry policy. Secret material, raw payloads,\nsignatures, response bodies, and provider credentials are never\nreturned.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "PUT /webhook — Configure the current Partner webhook destination",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/webhook",
              "variable": []
            },
            "description": "API 1.9.0\nAccepts one public HTTPS destination. BeanzPay validates DNS and\npins the public address for delivery; redirects and private or\nreserved destinations are rejected. This keeps the existing legacy or\nlifecycle contract and signing secret unchanged.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"{{partner_webhook_url}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "DELETE /webhook — Disable the current Partner webhook destination",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/webhook",
              "variable": []
            },
            "description": "API 1.9.0\nRemoves the configured destination while preserving the existing\nsigning secret and legacy or lifecycle contract.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /webhook/events — List the Partner webhook event projection",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/webhook/events",
              "variable": []
            },
            "description": "API 1.9.0\nLists event type metadata for the current legacy or lifecycle\ncontract. Event subscription filtering is not part of the current\ncontract.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /webhook/deliveries — List Partner webhook delivery metadata",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/webhook/deliveries",
              "variable": [],
              "query": [
                {
                  "key": "event",
                  "value": "{{partner_event}}",
                  "disabled": true,
                  "description": "OpenAPI query field `event`."
                },
                {
                  "key": "status",
                  "value": "{{partner_status}}",
                  "disabled": true,
                  "description": "OpenAPI query field `status`."
                },
                {
                  "key": "per_page",
                  "value": "{{partner_per_page}}",
                  "disabled": true,
                  "description": "OpenAPI query field `per_page`."
                }
              ]
            },
            "description": "API 1.9.0\nReturns only partner-owned delivery metadata and pagination. The\nmetadata.application_id and metadata.merchant_id are included when\npresent so the partner can reconcile the exact resource. Payloads, signatures,\ndestination snapshots, response bodies, and provider response data are\nintentionally excluded. Replaying a delivery is an operator procedure;\nthis API does not expose a replay action.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /environments — List publicly available Partner API environments",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/environments",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /packages — List merchant onboarding packages",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/packages",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /documents/required — List local merchant-application document requirements",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/documents/required?merchant_type={{partner_merchant_type}}&owners_count={{partner_owners_count}}&signatory={{partner_signatory}}&signatory_count={{partner_signatory_count}}",
              "variable": [],
              "query": [
                {
                  "key": "merchant_type",
                  "value": "{{partner_merchant_type}}",
                  "disabled": false
                },
                {
                  "key": "owners_count",
                  "value": "{{partner_owners_count}}",
                  "disabled": false
                },
                {
                  "key": "signatory",
                  "value": "{{partner_signatory}}",
                  "disabled": false
                },
                {
                  "key": "signatory_count",
                  "value": "{{partner_signatory_count}}",
                  "disabled": false
                }
              ]
            },
            "description": "API 1.9.0\nSelect requirements with merchant_type, not account_type. account_type is\nthe response field name; an account_type query is ignored. Omitting\nmerchant_type selects freelancer. For an existing application, use its\nGET /applications/{application}/documents response as the request-bound\nrequirements/readiness source. No upload or approval occurs here.\n\nPreserve the existing application/store identifiers. Templates have no secrets and do not prove Live acceptance.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /connect/url — Get the partner merchant self-onboarding URL",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/connect/url",
              "variable": [],
              "query": [
                {
                  "key": "lang",
                  "value": "{{partner_lang}}",
                  "disabled": true,
                  "description": "OpenAPI query field `lang`."
                }
              ]
            },
            "description": "API 1.9.0\nReturns the public onboarding URL and the embeddable widget snippet.\nCall this endpoint only from the partner backend with both Partner API\ncredentials. The generated browser snippet contains a high-entropy\npublic identifier, never `X-Partner-Secret` or merchant PII. Clicking\nthe widget performs a top-level navigation, so no CORS exception or\nbrowser-side Partner API request is required. Pass `lang=ar` or `lang=en`\nto select the generated widget button language; this does not force the\nmerchant portal language after navigation. The response includes `flow`\nin Arabic and `flow_en` in English.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /connect/session — Create a personalized merchant onboarding session",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/connect/session",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /connect/packages — List self-onboarding packages with partner discounts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/connect/packages",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /connect/discounts — Get partner discount configuration",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/connect/discounts",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /merchants — List merchants belonging to the authenticated partner",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /merchants — Create a local merchant application",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants",
              "variable": []
            },
            "description": "API 1.9.0\nReturns owner_continuation_url and bound owner_continuation metadata (48-hour TTL). Owner authenticates by portal OTP, signs contract and grants explicit per-environment/scopes consent; Partner keeps application_id, merchant_id and external_reference unchanged. Hosted is fallback only.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.\nThis is a non-freelancer creation template: commercial_registration is required. For freelancer use freelancer_doc_number instead. Optional document_fields contains metadata keyed by discovered slot; persist it with the original immutable payload. Generic address is not company_address.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"external_reference\": \"{{partner_external_reference}}\",\n  \"package_slug\": \"{{partner_package_slug}}\",\n  \"merchant_type\": \"{{partner_merchant_type}}\",\n  \"business_name\": \"{{partner_merchant_business_name}}\",\n  \"email\": \"{{partner_merchant_email}}\",\n  \"mobile\": \"{{partner_merchant_mobile}}\",\n  \"website\": \"{{partner_merchant_website}}\",\n  \"iban\": \"{{partner_merchant_iban}}\",\n  \"owner_name\": \"{{partner_merchant_owner_name}}\",\n  \"owner_national_id\": \"{{partner_merchant_owner_national_id}}\",\n  \"retail_price_minor\": \"{{partner_retail_price_minor}}\",\n  \"commercial_registration\": \"{{partner_commercial_registration}}\",\n  \"owners_count\": 1,\n  \"signatory\": \"owner\",\n  \"signatory_count\": 1\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "POST /merchants/claim — Claim an existing merchant with an owner-issued claim token",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/claim",
              "variable": []
            },
            "description": "API 1.9.0\nLinks an existing BeanzPay merchant/application to this Partner after a verified merchant owner has issued a one-time claim token. The caller supplies a stable external reference; BeanzPay enforces the Partner and environment boundary and rejects a merchant already bound to another Partner. This operation does not create a merchant, issue a Native bearer, call the payment provider, or create a retroactive fee or commission entry.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"claim_token\": \"{{partner_claim_token}}\",\n  \"external_reference\": \"{{partner_merchant_external_reference}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /merchants/{merchant} — Get a partner-owned merchant",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/application — Get the merchant application status and progress",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/application",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/dashboard — Get the merchant dashboard summary",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/dashboard",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/capabilities — Get enabled and unavailable merchant capabilities",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/capabilities",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/environment — Get the merchant Test environment",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/environment",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/environment/capabilities — Get environment-specific payment capabilities",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/environment/capabilities",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/payments — List verified merchant payments",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/payments",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /merchants/{merchant}/payments — Create a merchant payment session and checkout URL",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/payments",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": {{partner_amount_halalas}},\n  \"idempotency_key\": \"{{partner_merchant_payment_idempotency_key}}\",\n  \"billing_data\": {\n    \"first_name\": \"{{partner_customer_first_name}}\",\n    \"last_name\": \"{{partner_customer_last_name}}\",\n    \"email\": \"{{partner_customer_email}}\",\n    \"phone_number\": \"{{partner_customer_phone_number}}\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/payments/{paymentId} — Get a locally HMAC-verified payment",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/payments/{{partner_payment_id}}",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                },
                {
                  "key": "partner_payment_id",
                  "value": "{{partner_payment_id}}",
                  "description": "OpenAPI path parameter `paymentId`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /merchants/{merchant}/payment-links — Create a hosted payment link",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/payment-links",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": {{partner_amount_halalas}},\n  \"idempotency_key\": \"{{partner_payment_link_idempotency_key}}\",\n  \"billing_data\": {\n    \"first_name\": \"{{partner_customer_first_name}}\",\n    \"last_name\": \"{{partner_customer_last_name}}\",\n    \"email\": \"{{partner_customer_email}}\",\n    \"phone_number\": \"{{partner_customer_phone_number}}\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "POST /payments/verify-signature — Verify a signed BeanzPay outbound webhook payload",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/payments/verify-signature",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"payload\": \"{{partner_webhook_payload}}\",\n  \"timestamp\": {{partner_webhook_timestamp}},\n  \"signature\": \"{{partner_webhook_signature}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/reports/summary — Get merchant payment totals",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/reports/summary",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/reports/daily — Get the merchant daily payment breakdown",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/reports/daily",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/reports/payment-methods — Get the merchant payment-method breakdown",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/reports/payment-methods",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/transactions — List merchant ledger transactions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/transactions",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/transactions/export — Export partner-owned merchant transactions",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/transactions/export",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /reports/statistics — Get partner-wide merchant statistics",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/reports/statistics",
              "variable": [],
              "query": [
                {
                  "key": "period",
                  "value": "{{partner_period}}",
                  "disabled": true,
                  "description": "Reporting window. Defaults to `month`."
                }
              ]
            },
            "description": "API 1.9.0\nRead-only aggregate statistics for merchants owned by the authenticated partner. The optional period defaults to `month` and accepts `today`, `week`, `month`, `quarter`, or `year`.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /reports/commission — Get partner commission totals",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/reports/commission",
              "variable": []
            },
            "description": "API 1.9.0\nRead-only commission and commercial-ledger summary. This operation does not move funds, issue a payout, or expose provider credentials.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /reports/merchants — Get the partner merchant report",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/reports/merchants",
              "variable": [],
              "query": [
                {
                  "key": "period",
                  "value": "{{partner_period}}",
                  "disabled": true,
                  "description": "Reporting window. Defaults to `month`."
                }
              ]
            },
            "description": "API 1.9.0\nRead-only merchant status and summary report. The optional period defaults to `month` and accepts `today`, `week`, `month`, `quarter`, or `year`.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /reports/commercial/export — Export the partner commercial statement",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "text/csv",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/reports/commercial/export",
              "variable": [],
              "query": [
                {
                  "key": "from",
                  "value": "{{partner_from}}",
                  "disabled": true,
                  "description": "Inclusive statement date in `YYYY-MM-DD` format."
                },
                {
                  "key": "to",
                  "value": "{{partner_to}}",
                  "disabled": true,
                  "description": "Inclusive statement date in `YYYY-MM-DD` format."
                },
                {
                  "key": "source",
                  "value": "{{partner_source}}",
                  "disabled": true,
                  "description": "Select all statement rows or one supported ledger source."
                }
              ]
            },
            "description": "API 1.9.0\nDownload the signed, read-only package-share statement as CSV. The statement is a pre-VAT commercial ledger and is not a settlement, bank-balance, payout, or provider transaction export. Date filters use `YYYY-MM-DD`; `source` defaults to `all`.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /applications — List partner merchant applications",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/applications",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /applications/{application} — Get a partner merchant application",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/applications/{{partner_application_id}}",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /applications/{application}/documents — List locally stored application documents",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/applications/{{partner_application_id}}/documents",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\nRead-only local completeness diagnostic. Existing uploaded and receipt\nsummary flags retain their presence meaning. Entries additionally expose\nmetadata_complete, missing_fields (names only), metadata_source and\nmetadata_receipt_mismatch. Summary additionally exposes\nall_required_metadata_complete, owner_identity_files_available,\nmissing_required_metadata by slot,\nstale_required_document_receipts, readiness_scope and review_ready.\nEvery required owner_id slot requires a real front identity image plus\ncomplete identity fields. The owner image requirement was introduced in\nPartner API 1.9.0; older fields-only owner records are incomplete until\ntheir image is received. signatory_id remains fields-only when returned\nwith requires_upload=false. Optional slots do not block readiness.\nBefore submission, readiness_scope is application_receipt_snapshot.\nAfter submitted_at exists, it is application_receipts_with_matched_current_metadata:\nonly current non-superseded metadata matching the same semantic slot\nand file path or receipt/revision can be used. A changed file path\ninvalidates the old receipt. Missing, replaced or ambiguous current\nslots are incomplete, even when old receipt counters are complete.\nmetadata_source is application_receipt_snapshot,\nmatched_current_merchant_document, unmatched_current_merchant_document\nor missing_current_merchant_document. An unmatched receipt can have\nno missing_fields because the receipt, rather than a field, is stale.\nowner_identity_files_available is null before submission or without a\nlinked merchant, otherwise it checks that every required owner slot has\na current non-superseded eligible document row with a file present on\nprivate storage. false prevents review_ready even if receipt uploaded\nremains true. It is not document approval. No synchronization, repair,\nsubmission, approval or activation occurs.\nreview_status=received remains a receipt; review_ready is not approval.\n\nPreserve current application IDs. This read never repairs, approves or submits documents.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /applications/{application}/documents — Upload one local application document",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/applications/{{partner_application_id}}/documents",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\nSend type and file plus optional nested fields as Multipart bracket parts\n(for example fields[holder] and fields[iban]). Do not send a JSON string\nin a text part named fields, and let the HTTP client generate the boundary.\nUpload is permitted only in an application state that accepts documents;\nit does not require prior owner-continuation consent. received is not approval.\nEach required owner_id slot accepts one real front image in this file\npart, plus id/mobile/date_of_birth metadata as fields[name] parts. The\nexisting JSON identity PATCH can save or update those scalar fields\nseparately; it cannot replace the image. Read application requirements\nfirst.\nThere is a narrow paid-completion exception for required owner_id slots\nwith no file: the application must be in paid processing, the owned\nmerchant must be paid and provider-linked in the supported repair state,\nand the original recorded setup payment and all ownership links must be\npresent. Single/batch upload and identity PATCH accept only the missing\nrequired owner slots in this window, not arbitrary document replacement.\nOwner identity metadata must be complete before storing the image. Omit\nfields only if the current canonical fields are complete and unchanged.\nWhen all required files and metadata are complete, the same application\nreturns to local document review automatically. No new submit call,\nregistration, setup charge or provider POST is triggered. The response\nincludes provider-neutral application_status; under_review is local\nreview, not external approval. Existing approved documents are retained.\n\nPreserve the existing application/store identifiers. Templates have no secrets and do not prove Live acceptance.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "type",
                  "value": "{{partner_document_type}}",
                  "type": "text",
                  "disabled": false
                },
                {
                  "key": "file",
                  "type": "file",
                  "src": "{{partner_document_file}}",
                  "disabled": false,
                  "description": "Select a local synthetic PDF/JPEG/PNG (<=2048 KiB)."
                },
                {
                  "key": "fields[holder]",
                  "value": "{{partner_document_holder}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[iban]",
                  "value": "{{partner_document_iban}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[name]",
                  "value": "{{partner_document_name}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[street]",
                  "value": "{{partner_document_street}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[district]",
                  "value": "{{partner_document_district}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[building_number]",
                  "value": "{{partner_document_building_number}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[secondary_number]",
                  "value": "{{partner_document_secondary_number}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[postal_code]",
                  "value": "{{partner_document_postal_code}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[city]",
                  "value": "{{partner_document_city}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[country]",
                  "value": "{{partner_document_country}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[id]",
                  "value": "{{partner_fields_id}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable for the exact owner_id slot; use a synthetic input or protected local value, never save a real identity in this export."
                },
                {
                  "key": "fields[mobile]",
                  "value": "{{partner_fields_mobile}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable for the exact owner_id slot; use a synthetic input or protected local value, never save a real identity in this export."
                },
                {
                  "key": "fields[date_of_birth]",
                  "value": "{{partner_fields_date_of_birth}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable for the exact owner_id slot; use a synthetic input or protected local value, never save a real identity in this export."
                }
              ]
            }
          }
        },
        {
          "name": "POST /applications/{application}/documents/batch — Upload a batch of local application documents",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/applications/{{partner_application_id}}/documents/batch",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\nEncode each file as documents[0][file], its exact slot as\ndocuments[0][document_type], and metadata as documents[0][fields][id],\ndocuments[0][fields][mobile] and documents[0][fields][date_of_birth]\nfor owner identity. Do not send a JSON text part for fields. In paid\ncompletion each entry must be a required owner slot still missing its\nimage, with complete metadata supplied or retained from the current\ncanonical slot; other paid document edits remain closed.\n\nAfter complete eligible paid repair, application_status=under_review is local review only. Keep original identifiers; do not repeat submit or registration.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "documents[0][document_type]",
                  "value": "{{partner_documents_document_type}}",
                  "type": "text",
                  "disabled": false
                },
                {
                  "key": "documents[0][file]",
                  "type": "file",
                  "src": "{{partner_batch_document_file}}",
                  "disabled": false,
                  "description": "OpenAPI binary upload field."
                },
                {
                  "key": "documents[0][fields][id]",
                  "value": "{{partner_fields_id}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable for an exact required owner slot. No real identity data is saved in this template."
                },
                {
                  "key": "documents[0][fields][mobile]",
                  "value": "{{partner_fields_mobile}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable for an exact required owner slot. No real identity data is saved in this template."
                },
                {
                  "key": "documents[0][fields][date_of_birth]",
                  "value": "{{partner_fields_date_of_birth}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable for an exact required owner slot. No real identity data is saved in this template."
                }
              ]
            }
          }
        },
        {
          "name": "PATCH /applications/{application}/documents/{documentType}/fields — Save owner or signatory identity fields for one application slot",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/applications/{{partner_application_id}}/documents/{{partner_document_type}}/fields",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                },
                {
                  "key": "partner_document_type",
                  "value": "{{partner_document_type}}",
                  "description": "OpenAPI path parameter `documentType`."
                }
              ]
            },
            "description": "API 1.9.0\nSaves the identity data for one required owner or signatory slot. The\n`documentType` may be `owner_id`, `owner_id_N`, `signatory_id`, or\n`signatory_id_N`, where `N` is a positive slot number available for\nthe application. The unnumbered key and `_1` are aliases for the first\nslot. This operation saves metadata only and is JSON-only; do not send\na file or multipart form data to this PATCH. A required owner_id also\nrequires one real front identity image through the separate document\nupload route. Saving its metadata does not satisfy that upload. A\nsignatory_id with requires_upload=false remains fields-only.\n\nAll three fields are required. `id` must be a 10-digit Saudi national\nID/Iqama value beginning with 1 or 2, `mobile` must be a Saudi mobile\nnumber in the `05XXXXXXXX` format, and `date_of_birth` must be an ISO\n`YYYY-MM-DD` date for an adult aged 18 or older.\n\nPreserve the existing application/store identifiers. Templates have no secrets and do not prove Live acceptance.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"fields\": {\n    \"id\": \"{{partner_fields_id}}\",\n    \"mobile\": \"{{partner_fields_mobile}}\",\n    \"date_of_birth\": \"{{partner_fields_date_of_birth}}\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "DELETE /applications/{application}/documents/{documentType} — Delete a local application document",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/applications/{{partner_application_id}}/documents/{{partner_document_type}}",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                },
                {
                  "key": "partner_document_type",
                  "value": "{{partner_document_type}}",
                  "description": "OpenAPI path parameter `documentType`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /applications/{application}/submit — Submit the complete local application for BeanzPay review",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/applications/{{partner_application_id}}/submit",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\nRuns the application preflight before changing its status. All\nrequired uploaded-document slots, including owner_id, must contain a\nfile. Each required owner_id needs one real front identity image; no\nseparate back image is collected by this contract. For an initial\nsubmission that enters email confirmation, each required identity\nslot must also contain a complete, valid `id`,\n`mobile`, and `date_of_birth` set from the identity-fields endpoint.\nThe first identity slot may be stored under the base key or `_1`, but\nan incomplete slot prevents initial submission. Resubmitting\nmodifications to an existing application returns it to internal review\nwithout this early identity-field check.\n\nWhen identity data is incomplete, the endpoint returns `422` with\n`errors.missing_identity_fields`, an array of canonical slot keys.\nThe first slot is reported as `owner_id` or `signatory_id`; later\nslots use numbered keys such as `owner_id_2` or `signatory_id_3`.\nNo status transition occurs until the listed slots are completed.\n\nPersist the original application and store identifiers; never create a replacement registration to repair a document.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /applications/{application}/resend-confirmation — Resend merchant email confirmation",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/applications/{{partner_application_id}}/resend-confirmation",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /applications/{application}/modifications — Get requested application modifications",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/applications/{{partner_application_id}}/modifications",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /applications/{application}/modifications — Submit application modifications",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/applications/{{partner_application_id}}/modifications",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /applications/{application}/payment — Get setup-fee payment information",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/applications/{{partner_application_id}}/payment",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /applications/{application}/nafath — Get the authorized Nafath signing state",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/applications/{{partner_application_id}}/nafath",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\nReturns only the Nafath request already prepared and verified by\nBeanzPay operations. This endpoint does not create a signing request,\naccept a partner-provided result, or activate the merchant.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /applications/{application}/nafath/initiate — Retrieve the prepared Nafath signing request",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/applications/{{partner_application_id}}/nafath/initiate",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\nPreserves the source partner journey endpoint. It returns the request\nprepared by authorized BeanzPay operations and never creates or\nsimulates a Nafath request.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /applications/{application}/nafath/verify — Poll the authorized Nafath verification state",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/applications/{{partner_application_id}}/nafath/verify",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\nThis is a read-only status check. A partner cannot assert successful\nsigning or activate a merchant through this endpoint.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /applications/{application}/timeline — Get the application status timeline",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/applications/{{partner_application_id}}/timeline",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /applications/{application}/cancel — Cancel an eligible local application",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/applications/{{partner_application_id}}/cancel",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /discounts — List partner package discounts",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/discounts",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /discounts — Create a partner package discount",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/discounts",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /discounts/preview/{packageId} — Preview a discounted package",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/discounts/preview/{{partner_package_id}}",
              "variable": [
                {
                  "key": "partner_package_id",
                  "value": "{{partner_package_id}}",
                  "description": "OpenAPI path parameter `packageId`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /discounts/{id} — Get a partner package discount",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/discounts/{{partner_resource_id}}",
              "variable": [
                {
                  "key": "partner_resource_id",
                  "value": "{{partner_resource_id}}",
                  "description": "OpenAPI path parameter `id`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "PUT /discounts/{id} — Update a partner package discount",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/discounts/{{partner_resource_id}}",
              "variable": [
                {
                  "key": "partner_resource_id",
                  "value": "{{partner_resource_id}}",
                  "description": "OpenAPI path parameter `id`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "DELETE /discounts/{id} — Delete a partner package discount",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/discounts/{{partner_resource_id}}",
              "variable": [
                {
                  "key": "partner_resource_id",
                  "value": "{{partner_resource_id}}",
                  "description": "OpenAPI path parameter `id`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /billing/summary — Get partner billing totals",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/billing/summary",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /billing/invoices — List local BeanzPay partner invoices",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/billing/invoices",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /billing/invoices/{id} — Get a local BeanzPay partner invoice",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/billing/invoices/{{partner_resource_id}}",
              "variable": [
                {
                  "key": "partner_resource_id",
                  "value": "{{partner_resource_id}}",
                  "description": "OpenAPI path parameter `id`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /self/account — Get the partner's own merchant account",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/self/account",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /self/account — Create the partner's own merchant account",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/self/account",
              "variable": []
            },
            "description": "API 1.9.0\naccount_type accepts freelancer, establishment, company, or foreign_company. A foreign company must provide its required investment license in the documents stage. An existing account cannot be recreated.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /self/packages — List packages available to the partner's own merchant account",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/self/packages",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /self/documents/required — List required self-account documents",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/self/documents/required",
              "variable": []
            },
            "description": "API 1.9.0\nEach document includes required_count, allows_multiple, and the accepted slot names. For repeated owner/signatory documents, the base name is slot one and type_2 is slot two. Upload each required slot separately.\nPreserve the existing application/store identifiers. Templates have no secrets and do not prove Live acceptance.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /self/documents — Upload a local self-account document",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/self/documents",
              "variable": []
            },
            "description": "API 1.9.0\nSend type and file plus optional nested fields as Multipart bracket parts\n(for example fields[holder] and fields[iban]). Do not send a JSON string\nin a text part named fields, and let the HTTP client generate the boundary.\nUpload is permitted only in an application state that accepts documents;\nit does not require prior owner-continuation consent. received is not approval.\nEach required owner_id slot accepts one real front image in this file\npart, plus id/mobile/date_of_birth metadata as fields[name] parts. The\nexisting JSON identity PATCH can save or update those scalar fields\nseparately; it cannot replace the image. Read application requirements\nfirst. A paid application closed to Partner document edits still returns\na state rejection here. Its verified owner uses the BeanzPay merchant\ndocument portal for the specifically permitted missing-image completion\nflow. Once complete, that flow returns to local document review without\na new merchant, provider registration, setup charge or provider submission.\n\nPreserve the existing application/store identifiers. Templates have no secrets and do not prove Live acceptance.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"type\": \"{{partner_self_document_type}}\",\n  \"file\": \"{{partner_document_base64}}\",\n  \"file_name\": \"{{partner_self_document_file_name}}\",\n  \"file_extension\": \"pdf\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "DELETE /self/documents/{type} — Delete a local self-account document",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/self/documents/{{partner_self_document_type}}",
              "variable": [
                {
                  "key": "partner_self_document_type",
                  "value": "{{partner_self_document_type}}",
                  "description": "OpenAPI path parameter `type`."
                }
              ]
            },
            "description": "API 1.9.0\nSupersedes only the current unreviewed slot without deleting its audit file. A submitted account or reviewed document cannot be deleted.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /self/submit — Submit the partner's own merchant account for review",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/self/submit",
              "variable": []
            },
            "description": "API 1.9.0\nRequires every current mandatory document slot. Resubmission is only available when the account has been returned for missing documents.\nPersist the original application and store identifiers; never create a replacement registration to repair a document.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /self/payments — List locally verified self-account payments",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/self/payments",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /self/payments — Create a self-account payment session",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/self/payments",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": {{partner_amount_halalas}},\n  \"idempotency_key\": \"{{partner_self_payment_idempotency_key}}\",\n  \"billing_data\": {\n    \"first_name\": \"{{partner_customer_first_name}}\",\n    \"last_name\": \"{{partner_customer_last_name}}\",\n    \"email\": \"{{partner_customer_email}}\",\n    \"phone_number\": \"{{partner_customer_phone_number}}\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/controls/payment-creation",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\nScoped partner/merchant/environment local control with reason and immutable audit. Preserves reads and authorized refunds; does not remotely suspend provider account, void money or revoke keys. Lifecycle events merchant.payment_creation_paused/resumed are administrative only.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /merchants/{merchant}/controls/payment-creation — Read merchant local payment-creation control"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/controls/payment-creation/suspend",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\nScoped partner/merchant/environment local control with reason and immutable audit. Preserves reads and authorized refunds; does not remotely suspend provider account, void money or revoke keys. Lifecycle events merchant.payment_creation_paused/resumed are administrative only.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"{{partner_payment_control_reason}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /merchants/{merchant}/controls/payment-creation/suspend — Pause new BeanzPay checkout creation for one linked merchant"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/controls/payment-creation/resume",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\nScoped partner/merchant/environment local control with reason and immutable audit. Preserves reads and authorized refunds; does not remotely suspend provider account, void money or revoke keys. Lifecycle events merchant.payment_creation_paused/resumed are administrative only.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"{{partner_payment_control_reason}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /merchants/{merchant}/controls/payment-creation/resume — Resume new BeanzPay checkout creation for one linked merchant"
        },
        {
          "name": "GET /merchants/{merchant}/operational-requests — List scoped operational requests",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/operational-requests",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ],
              "query": [
                {
                  "key": "status",
                  "value": "{{partner_status}}",
                  "disabled": true,
                  "description": "OpenAPI query field `status`."
                },
                {
                  "key": "request_type",
                  "value": "{{partner_request_type}}",
                  "disabled": true,
                  "description": "OpenAPI query field `request_type`."
                },
                {
                  "key": "service_key",
                  "value": "{{partner_service_key}}",
                  "disabled": true,
                  "description": "OpenAPI query field `service_key`."
                },
                {
                  "key": "overdue",
                  "value": "{{partner_overdue}}",
                  "disabled": true,
                  "description": "OpenAPI query field `overdue`."
                },
                {
                  "key": "per_page",
                  "value": "{{partner_per_page}}",
                  "disabled": true,
                  "description": "OpenAPI query field `per_page`."
                }
              ]
            },
            "description": "API 1.9.0\nReturns provider-neutral operational request projections for this Partner-owned merchant and environment. Encrypted provider evidence, credentials and internal notes are excluded.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /merchants/{merchant}/operational-requests — Create one operational request for manual review",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{partner_operational_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/operational-requests",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\nCreates a durable local request and metadata-only outbox entry. It never calls Paymob or sends email. Reuse the same Idempotency-Key after response loss; a different body with the same key returns 409.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"request_type\": \"support_ticket\",\n  \"action\": \"open\",\n  \"reason\": \"{{partner_operational_reason}}\",\n  \"details\": {\n    \"subject\": \"{{partner_operational_support_subject}}\",\n    \"description\": \"{{partner_operational_support_description}}\",\n    \"category\": \"integration\",\n    \"priority\": \"normal\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/operational-requests/{operationalRequest} — Read one scoped operational request",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/operational-requests/{{partner_operational_request_id}}",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                },
                {
                  "key": "partner_operational_request_id",
                  "value": "{{partner_operational_request_id}}",
                  "description": "OpenAPI path parameter `operationalRequest`."
                }
              ]
            },
            "description": "API 1.9.0\nReads only a request belonging to the authenticated Partner, linked merchant and pinned environment.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/operational-requests/{operationalRequest}/apple-pay/artifact — Read public Apple Pay association artifact metadata",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/operational-requests/{{partner_operational_request_id}}/apple-pay/artifact",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                },
                {
                  "key": "partner_operational_request_id",
                  "value": "{{partner_operational_request_id}}",
                  "description": "OpenAPI path parameter `operationalRequest`."
                }
              ]
            },
            "description": "API 1.9.0\nReturns only the request-scoped public association file metadata and a short-lived download URL. No certificate, private key, provider credential or secret is returned.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/operational-requests/{operationalRequest}/apple-pay/artifact/download — Download the public Apple Pay association artifact",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/operational-requests/{{partner_operational_request_id}}/apple-pay/artifact/download",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                },
                {
                  "key": "partner_operational_request_id",
                  "value": "{{partner_operational_request_id}}",
                  "description": "OpenAPI path parameter `operationalRequest`."
                }
              ]
            },
            "description": "API 1.9.0\nDownloads the request-scoped public association file after its stored SHA-256 is verified. It is not a provider registration or private credential.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /merchants/{merchant}/operational-requests/{operationalRequest}/apple-pay/installation — Verify a Partner-installed Apple Pay association file",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{partner_apple_pay_ack_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/operational-requests/{{partner_operational_request_id}}/apple-pay/installation",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                },
                {
                  "key": "partner_operational_request_id",
                  "value": "{{partner_operational_request_id}}",
                  "description": "OpenAPI path parameter `operationalRequest`."
                }
              ]
            },
            "description": "API 1.9.0\nVerifies the pinned public association artifact against the merchant domain without registering anything with Paymob. Reuse the same key and hash for a safe replay; provider registration remains manual.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/operational-requests/{operationalRequest}/ticket — Read the scoped public support ticket projection",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/operational-requests/{{partner_operational_request_id}}/ticket",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                },
                {
                  "key": "partner_operational_request_id",
                  "value": "{{partner_operational_request_id}}",
                  "description": "OpenAPI path parameter `operationalRequest`."
                }
              ]
            },
            "description": "API 1.9.0\nReturns the linked ticket and non-internal replies only. Staff assignment identity and internal replies are not exposed.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /merchants/{merchant}/operational-requests/{operationalRequest}/ticket/replies — Add one non-internal support ticket reply",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{partner_support_reply_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_base_url}}/merchants/{{partner_merchant_id}}/operational-requests/{{partner_operational_request_id}}/ticket/replies",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                },
                {
                  "key": "partner_operational_request_id",
                  "value": "{{partner_operational_request_id}}",
                  "description": "OpenAPI path parameter `operationalRequest`."
                }
              ]
            },
            "description": "API 1.9.0\nAdds a Partner-visible reply through the local ticket service. Credentials and authentication material are rejected; the same key/body safely replays without a second reply.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"message\": \"{{partner_operational_reply_message}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Partner Production administration 1.8.0",
      "description": "Run deliberately after owner authorization and capability checks; no collection scripts submit writes automatically.",
      "item": [
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/health",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /health — Check the authenticated Partner API"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/integration",
              "variable": []
            },
            "description": "API 1.9.0\nReturns the current Partner API contract and the separate\nnative merchant API boundary. It describes authentication ownership,\nenvironment binding, limits, and capability states without returning\nPartner secrets, merchant bearer tokens, provider credentials,\nprovider URLs, or absolute destination URLs. The response distinguishes\nTest Partner financial operations from production administrative\nonboarding. It does not assert that a payment/refund capability is\navailable until the merchant environment and capability checks pass.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /integration — Discover the provider-neutral SaaS integration contract"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/webhook",
              "variable": []
            },
            "description": "API 1.9.0\nReturns the configured destination, contract, event projection,\nsigning metadata, and retry policy. Secret material, raw payloads,\nsignatures, response bodies, and provider credentials are never\nreturned.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /webhook — Read the current Partner webhook configuration"
        },
        {
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/webhook",
              "variable": []
            },
            "description": "API 1.9.0\nAccepts one public HTTPS destination. BeanzPay validates DNS and\npins the public address for delivery; redirects and private or\nreserved destinations are rejected. This keeps the existing legacy or\nlifecycle contract and signing secret unchanged.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"{{partner_webhook_url}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "noauth"
            }
          },
          "name": "PUT /webhook — Configure the current Partner webhook destination"
        },
        {
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/webhook",
              "variable": []
            },
            "description": "API 1.9.0\nRemoves the configured destination while preserving the existing\nsigning secret and legacy or lifecycle contract.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "DELETE /webhook — Disable the current Partner webhook destination"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/webhook/events",
              "variable": []
            },
            "description": "API 1.9.0\nLists event type metadata for the current legacy or lifecycle\ncontract. Event subscription filtering is not part of the current\ncontract.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /webhook/events — List the Partner webhook event projection"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/webhook/deliveries",
              "variable": [],
              "query": [
                {
                  "key": "event",
                  "value": "{{partner_event}}",
                  "disabled": true,
                  "description": "OpenAPI query field `event`."
                },
                {
                  "key": "status",
                  "value": "{{partner_status}}",
                  "disabled": true,
                  "description": "OpenAPI query field `status`."
                },
                {
                  "key": "per_page",
                  "value": "{{partner_per_page}}",
                  "disabled": true,
                  "description": "OpenAPI query field `per_page`."
                }
              ]
            },
            "description": "API 1.9.0\nReturns only partner-owned delivery metadata and pagination. The\nmetadata.application_id and metadata.merchant_id are included when\npresent so the partner can reconcile the exact resource. Payloads, signatures,\ndestination snapshots, response bodies, and provider response data are\nintentionally excluded. Replaying a delivery is an operator procedure;\nthis API does not expose a replay action.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /webhook/deliveries — List Partner webhook delivery metadata"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/packages",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /packages — List merchant onboarding packages"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/documents/required?merchant_type={{partner_merchant_type}}&owners_count={{partner_owners_count}}&signatory={{partner_signatory}}&signatory_count={{partner_signatory_count}}",
              "variable": [],
              "query": [
                {
                  "key": "merchant_type",
                  "value": "{{partner_merchant_type}}",
                  "disabled": false
                },
                {
                  "key": "owners_count",
                  "value": "{{partner_owners_count}}",
                  "disabled": false
                },
                {
                  "key": "signatory",
                  "value": "{{partner_signatory}}",
                  "disabled": false
                },
                {
                  "key": "signatory_count",
                  "value": "{{partner_signatory_count}}",
                  "disabled": false
                }
              ]
            },
            "description": "API 1.9.0\nSelect requirements with merchant_type, not account_type. account_type is\nthe response field name; an account_type query is ignored. Omitting\nmerchant_type selects freelancer. For an existing application, use its\nGET /applications/{application}/documents response as the request-bound\nrequirements/readiness source. No upload or approval occurs here.\n\nPreserve the existing application/store identifiers. Templates have no secrets and do not prove Live acceptance.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /documents/required — List local merchant-application document requirements"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /merchants — List merchants belonging to the authenticated partner"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants",
              "variable": []
            },
            "description": "API 1.9.0\nReturns owner_continuation_url and bound owner_continuation metadata (48-hour TTL). Owner authenticates by portal OTP, signs contract and grants explicit per-environment/scopes consent; Partner keeps application_id, merchant_id and external_reference unchanged. Hosted is fallback only.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.\nThis is a non-freelancer creation template: commercial_registration is required. For freelancer use freelancer_doc_number instead. Optional document_fields contains metadata keyed by discovered slot; persist it with the original immutable payload. Generic address is not company_address.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"external_reference\": \"{{partner_external_reference}}\",\n  \"package_slug\": \"{{partner_package_slug}}\",\n  \"merchant_type\": \"{{partner_merchant_type}}\",\n  \"business_name\": \"{{partner_merchant_business_name}}\",\n  \"email\": \"{{partner_merchant_email}}\",\n  \"mobile\": \"{{partner_merchant_mobile}}\",\n  \"website\": \"{{partner_merchant_website}}\",\n  \"iban\": \"{{partner_merchant_iban}}\",\n  \"owner_name\": \"{{partner_merchant_owner_name}}\",\n  \"owner_national_id\": \"{{partner_merchant_owner_national_id}}\",\n  \"retail_price_minor\": \"{{partner_retail_price_minor}}\",\n  \"commercial_registration\": \"{{partner_commercial_registration}}\",\n  \"owners_count\": 1,\n  \"signatory\": \"owner\",\n  \"signatory_count\": 1\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /merchants — Create a local merchant application"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/claim",
              "variable": []
            },
            "description": "API 1.9.0\nLinks an existing BeanzPay merchant/application to this Partner after a verified merchant owner has issued a one-time claim token. The caller supplies a stable external reference; BeanzPay enforces the Partner and environment boundary and rejects a merchant already bound to another Partner. This operation does not create a merchant, issue a Native bearer, call the payment provider, or create a retroactive fee or commission entry.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"claim_token\": \"{{partner_claim_token}}\",\n  \"external_reference\": \"{{partner_merchant_external_reference}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /merchants/claim — Claim an existing merchant with an owner-issued claim token"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /merchants/{merchant} — Get a partner-owned merchant"
        },
        {
          "name": "GET /merchants/{merchant}/native-authorizations — List owner-approved Native authorization metadata",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/native-authorizations",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\nProduction administrative route. Returns only owner-consent metadata scoped to this Partner and merchant, including the authorized environment and scopes. It never returns a bearer, token hash, provider credential, or webhook secret. A separate verified merchant owner flow creates or revokes these authorizations.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/native-credentials — List Native Merchant credentials issued for a Partner merchant",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/native-credentials",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\nProduction administrative route. The list returns credential metadata and scopes only; the bearer is never returned. Issuance requires a prior verified owner authorization and provider readiness.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /merchants/{merchant}/native-credentials — Issue one Native Merchant bearer once owner authorization exists",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{partner_native_secret_operation_key}}",
                "type": "text",
                "description": "Persist before first dispatch. Completed replay409 returns metadata only; secret is never re-revealed. Lookup original key before controlled recovery."
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/native-credentials",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\nProduction administrative route. The request references an owner authorization; it cannot submit caller-selected scopes. The bearer is returned exactly once in a confidential channel. This route does not expose provider credentials or enable Partner Live payment routes.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"authorization_id\": \"{{partner_native_authorization_id}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "POST /merchants/{merchant}/native-credentials/{credential}/rotate — Rotate one owner-authorized Native Merchant bearer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{partner_native_secret_operation_key}}",
                "type": "text",
                "description": "Persist before first dispatch. Completed replay409 returns metadata only; secret is never re-revealed. Lookup original key before controlled recovery."
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/native-credentials/{{partner_native_credential_id}}/rotate",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                },
                {
                  "key": "partner_native_credential_id",
                  "value": "{{partner_native_credential_id}}",
                  "description": "OpenAPI path parameter `credential`."
                }
              ]
            },
            "description": "API 1.9.0\nProduction administrative route. The authorization remains the source of scopes and merchant/environment binding. The replacement bearer is returned exactly once; the previous credential is revoked by the service. Do not retry with a new authorization when the result is unknown; query metadata and use the approved operator procedure.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"authorization_id\": \"{{partner_native_authorization_id}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "DELETE /merchants/{merchant}/native-credentials/{credential} — Revoke one Partner-issued Native Merchant credential",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/native-credentials/{{partner_native_credential_id}}",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                },
                {
                  "key": "partner_native_credential_id",
                  "value": "{{partner_native_credential_id}}",
                  "description": "OpenAPI path parameter `credential`."
                }
              ]
            },
            "description": "API 1.9.0\nProduction administrative route; returns metadata only.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/application",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /merchants/{merchant}/application — Get the merchant application status and progress"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/reports/statistics",
              "variable": [],
              "query": [
                {
                  "key": "period",
                  "value": "{{partner_period}}",
                  "disabled": true,
                  "description": "Reporting window. Defaults to `month`."
                }
              ]
            },
            "description": "API 1.9.0\nRead-only aggregate statistics for merchants owned by the authenticated partner. The optional period defaults to `month` and accepts `today`, `week`, `month`, `quarter`, or `year`.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /reports/statistics — Get partner-wide merchant statistics"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/reports/commission",
              "variable": []
            },
            "description": "API 1.9.0\nRead-only commission and commercial-ledger summary. This operation does not move funds, issue a payout, or expose provider credentials.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /reports/commission — Get partner commission totals"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/reports/merchants",
              "variable": [],
              "query": [
                {
                  "key": "period",
                  "value": "{{partner_period}}",
                  "disabled": true,
                  "description": "Reporting window. Defaults to `month`."
                }
              ]
            },
            "description": "API 1.9.0\nRead-only merchant status and summary report. The optional period defaults to `month` and accepts `today`, `week`, `month`, `quarter`, or `year`.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /reports/merchants — Get the partner merchant report"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/reports/commercial/export",
              "variable": [],
              "query": [
                {
                  "key": "from",
                  "value": "{{partner_from}}",
                  "disabled": true,
                  "description": "Inclusive statement date in `YYYY-MM-DD` format."
                },
                {
                  "key": "to",
                  "value": "{{partner_to}}",
                  "disabled": true,
                  "description": "Inclusive statement date in `YYYY-MM-DD` format."
                },
                {
                  "key": "source",
                  "value": "{{partner_source}}",
                  "disabled": true,
                  "description": "Select all statement rows or one supported ledger source."
                }
              ]
            },
            "description": "API 1.9.0\nDownload the signed, read-only package-share statement as CSV. The statement is a pre-VAT commercial ledger and is not a settlement, bank-balance, payout, or provider transaction export. Date filters use `YYYY-MM-DD`; `source` defaults to `all`.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /reports/commercial/export — Export the partner commercial statement"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/applications",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /applications — List partner merchant applications"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/applications/{{partner_application_id}}",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /applications/{application} — Get a partner merchant application"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/applications/{{partner_application_id}}/documents",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\nRead-only local completeness diagnostic. Existing uploaded and receipt\nsummary flags retain their presence meaning. Entries additionally expose\nmetadata_complete, missing_fields (names only), metadata_source and\nmetadata_receipt_mismatch. Summary additionally exposes\nall_required_metadata_complete, owner_identity_files_available,\nmissing_required_metadata by slot,\nstale_required_document_receipts, readiness_scope and review_ready.\nEvery required owner_id slot requires a real front identity image plus\ncomplete identity fields. The owner image requirement was introduced in\nPartner API 1.9.0; older fields-only owner records are incomplete until\ntheir image is received. signatory_id remains fields-only when returned\nwith requires_upload=false. Optional slots do not block readiness.\nBefore submission, readiness_scope is application_receipt_snapshot.\nAfter submitted_at exists, it is application_receipts_with_matched_current_metadata:\nonly current non-superseded metadata matching the same semantic slot\nand file path or receipt/revision can be used. A changed file path\ninvalidates the old receipt. Missing, replaced or ambiguous current\nslots are incomplete, even when old receipt counters are complete.\nmetadata_source is application_receipt_snapshot,\nmatched_current_merchant_document, unmatched_current_merchant_document\nor missing_current_merchant_document. An unmatched receipt can have\nno missing_fields because the receipt, rather than a field, is stale.\nowner_identity_files_available is null before submission or without a\nlinked merchant, otherwise it checks that every required owner slot has\na current non-superseded eligible document row with a file present on\nprivate storage. false prevents review_ready even if receipt uploaded\nremains true. It is not document approval. No synchronization, repair,\nsubmission, approval or activation occurs.\nreview_status=received remains a receipt; review_ready is not approval.\n\nPreserve current application IDs. This read never repairs, approves or submits documents.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /applications/{application}/documents — List locally stored application documents"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/applications/{{partner_application_id}}/documents",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\nSend type and file plus optional nested fields as Multipart bracket parts\n(for example fields[holder] and fields[iban]). Do not send a JSON string\nin a text part named fields, and let the HTTP client generate the boundary.\nUpload is permitted only in an application state that accepts documents;\nit does not require prior owner-continuation consent. received is not approval.\nEach required owner_id slot accepts one real front image in this file\npart, plus id/mobile/date_of_birth metadata as fields[name] parts. The\nexisting JSON identity PATCH can save or update those scalar fields\nseparately; it cannot replace the image. Read application requirements\nfirst.\nThere is a narrow paid-completion exception for required owner_id slots\nwith no file: the application must be in paid processing, the owned\nmerchant must be paid and provider-linked in the supported repair state,\nand the original recorded setup payment and all ownership links must be\npresent. Single/batch upload and identity PATCH accept only the missing\nrequired owner slots in this window, not arbitrary document replacement.\nOwner identity metadata must be complete before storing the image. Omit\nfields only if the current canonical fields are complete and unchanged.\nWhen all required files and metadata are complete, the same application\nreturns to local document review automatically. No new submit call,\nregistration, setup charge or provider POST is triggered. The response\nincludes provider-neutral application_status; under_review is local\nreview, not external approval. Existing approved documents are retained.\n\nPreserve the existing application/store identifiers. Templates have no secrets and do not prove Live acceptance.",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "type",
                  "value": "{{partner_document_type}}",
                  "type": "text",
                  "disabled": false
                },
                {
                  "key": "file",
                  "type": "file",
                  "src": "{{partner_document_file}}",
                  "disabled": false,
                  "description": "Select a local synthetic PDF/JPEG/PNG (<=2048 KiB)."
                },
                {
                  "key": "fields[holder]",
                  "value": "{{partner_document_holder}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[iban]",
                  "value": "{{partner_document_iban}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[name]",
                  "value": "{{partner_document_name}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[street]",
                  "value": "{{partner_document_street}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[district]",
                  "value": "{{partner_document_district}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[building_number]",
                  "value": "{{partner_document_building_number}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[secondary_number]",
                  "value": "{{partner_document_secondary_number}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[postal_code]",
                  "value": "{{partner_document_postal_code}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[city]",
                  "value": "{{partner_document_city}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[country]",
                  "value": "{{partner_document_country}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable only when this field belongs to the selected discovered document slot."
                },
                {
                  "key": "fields[id]",
                  "value": "{{partner_fields_id}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable for the exact owner_id slot; use a synthetic input or protected local value, never save a real identity in this export."
                },
                {
                  "key": "fields[mobile]",
                  "value": "{{partner_fields_mobile}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable for the exact owner_id slot; use a synthetic input or protected local value, never save a real identity in this export."
                },
                {
                  "key": "fields[date_of_birth]",
                  "value": "{{partner_fields_date_of_birth}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable for the exact owner_id slot; use a synthetic input or protected local value, never save a real identity in this export."
                }
              ]
            },
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /applications/{application}/documents — Upload one local application document"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/applications/{{partner_application_id}}/documents/batch",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\nEncode each file as documents[0][file], its exact slot as\ndocuments[0][document_type], and metadata as documents[0][fields][id],\ndocuments[0][fields][mobile] and documents[0][fields][date_of_birth]\nfor owner identity. Do not send a JSON text part for fields. In paid\ncompletion each entry must be a required owner slot still missing its\nimage, with complete metadata supplied or retained from the current\ncanonical slot; other paid document edits remain closed.\n\nAfter complete eligible paid repair, application_status=under_review is local review only. Keep original identifiers; do not repeat submit or registration.",
            "body": {
              "mode": "formdata",
              "formdata": [
                {
                  "key": "documents[0][document_type]",
                  "value": "{{partner_documents_document_type}}",
                  "type": "text",
                  "disabled": false
                },
                {
                  "key": "documents[0][file]",
                  "type": "file",
                  "src": "{{partner_batch_document_file}}",
                  "disabled": false,
                  "description": "OpenAPI binary upload field."
                },
                {
                  "key": "documents[0][fields][id]",
                  "value": "{{partner_fields_id}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable for an exact required owner slot. No real identity data is saved in this template."
                },
                {
                  "key": "documents[0][fields][mobile]",
                  "value": "{{partner_fields_mobile}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable for an exact required owner slot. No real identity data is saved in this template."
                },
                {
                  "key": "documents[0][fields][date_of_birth]",
                  "value": "{{partner_fields_date_of_birth}}",
                  "type": "text",
                  "disabled": true,
                  "description": "Enable for an exact required owner slot. No real identity data is saved in this template."
                }
              ]
            },
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /applications/{application}/documents/batch — Upload a batch of local application documents"
        },
        {
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/applications/{{partner_application_id}}/documents/{{partner_document_type}}/fields",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                },
                {
                  "key": "partner_document_type",
                  "value": "{{partner_document_type}}",
                  "description": "OpenAPI path parameter `documentType`."
                }
              ]
            },
            "description": "API 1.9.0\nSaves the identity data for one required owner or signatory slot. The\n`documentType` may be `owner_id`, `owner_id_N`, `signatory_id`, or\n`signatory_id_N`, where `N` is a positive slot number available for\nthe application. The unnumbered key and `_1` are aliases for the first\nslot. This operation saves metadata only and is JSON-only; do not send\na file or multipart form data to this PATCH. A required owner_id also\nrequires one real front identity image through the separate document\nupload route. Saving its metadata does not satisfy that upload. A\nsignatory_id with requires_upload=false remains fields-only.\n\nAll three fields are required. `id` must be a 10-digit Saudi national\nID/Iqama value beginning with 1 or 2, `mobile` must be a Saudi mobile\nnumber in the `05XXXXXXXX` format, and `date_of_birth` must be an ISO\n`YYYY-MM-DD` date for an adult aged 18 or older.\n\nPreserve the existing application/store identifiers. Templates have no secrets and do not prove Live acceptance.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"fields\": {\n    \"id\": \"{{partner_fields_id}}\",\n    \"mobile\": \"{{partner_fields_mobile}}\",\n    \"date_of_birth\": \"{{partner_fields_date_of_birth}}\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "noauth"
            }
          },
          "name": "PATCH /applications/{application}/documents/{documentType}/fields — Save owner or signatory identity fields for one application slot"
        },
        {
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/applications/{{partner_application_id}}/documents/{{partner_document_type}}",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                },
                {
                  "key": "partner_document_type",
                  "value": "{{partner_document_type}}",
                  "description": "OpenAPI path parameter `documentType`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "DELETE /applications/{application}/documents/{documentType} — Delete a local application document"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/applications/{{partner_application_id}}/submit",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\nRuns the application preflight before changing its status. All\nrequired uploaded-document slots, including owner_id, must contain a\nfile. Each required owner_id needs one real front identity image; no\nseparate back image is collected by this contract. For an initial\nsubmission that enters email confirmation, each required identity\nslot must also contain a complete, valid `id`,\n`mobile`, and `date_of_birth` set from the identity-fields endpoint.\nThe first identity slot may be stored under the base key or `_1`, but\nan incomplete slot prevents initial submission. Resubmitting\nmodifications to an existing application returns it to internal review\nwithout this early identity-field check.\n\nWhen identity data is incomplete, the endpoint returns `422` with\n`errors.missing_identity_fields`, an array of canonical slot keys.\nThe first slot is reported as `owner_id` or `signatory_id`; later\nslots use numbered keys such as `owner_id_2` or `signatory_id_3`.\nNo status transition occurs until the listed slots are completed.\n\nPersist the original application and store identifiers; never create a replacement registration to repair a document.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /applications/{application}/submit — Submit the complete local application for BeanzPay review"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/applications/{{partner_application_id}}/resend-confirmation",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /applications/{application}/resend-confirmation — Resend merchant email confirmation"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/applications/{{partner_application_id}}/modifications",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /applications/{application}/modifications — Get requested application modifications"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/applications/{{partner_application_id}}/modifications",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /applications/{application}/modifications — Submit application modifications"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/applications/{{partner_application_id}}/payment",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /applications/{application}/payment — Get setup-fee payment information"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/applications/{{partner_application_id}}/nafath",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\nReturns only the Nafath request already prepared and verified by\nBeanzPay operations. This endpoint does not create a signing request,\naccept a partner-provided result, or activate the merchant.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /applications/{application}/nafath — Get the authorized Nafath signing state"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/applications/{{partner_application_id}}/nafath/initiate",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\nPreserves the source partner journey endpoint. It returns the request\nprepared by authorized BeanzPay operations and never creates or\nsimulates a Nafath request.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /applications/{application}/nafath/initiate — Retrieve the prepared Nafath signing request"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/applications/{{partner_application_id}}/nafath/verify",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\nThis is a read-only status check. A partner cannot assert successful\nsigning or activate a merchant through this endpoint.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /applications/{application}/nafath/verify — Poll the authorized Nafath verification state"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/applications/{{partner_application_id}}/timeline",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /applications/{application}/timeline — Get the application status timeline"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/applications/{{partner_application_id}}/cancel",
              "variable": [
                {
                  "key": "partner_application_id",
                  "value": "{{partner_application_id}}",
                  "description": "OpenAPI path parameter `application`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /applications/{application}/cancel — Cancel an eligible local application"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/discounts",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /discounts — List partner package discounts"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/discounts",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /discounts — Create a partner package discount"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/discounts/preview/{{partner_package_id}}",
              "variable": [
                {
                  "key": "partner_package_id",
                  "value": "{{partner_package_id}}",
                  "description": "OpenAPI path parameter `packageId`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /discounts/preview/{packageId} — Preview a discounted package"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/discounts/{{partner_resource_id}}",
              "variable": [
                {
                  "key": "partner_resource_id",
                  "value": "{{partner_resource_id}}",
                  "description": "OpenAPI path parameter `id`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /discounts/{id} — Get a partner package discount"
        },
        {
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/discounts/{{partner_resource_id}}",
              "variable": [
                {
                  "key": "partner_resource_id",
                  "value": "{{partner_resource_id}}",
                  "description": "OpenAPI path parameter `id`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "noauth"
            }
          },
          "name": "PUT /discounts/{id} — Update a partner package discount"
        },
        {
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/discounts/{{partner_resource_id}}",
              "variable": [
                {
                  "key": "partner_resource_id",
                  "value": "{{partner_resource_id}}",
                  "description": "OpenAPI path parameter `id`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "DELETE /discounts/{id} — Delete a partner package discount"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/billing/summary",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /billing/summary — Get partner billing totals"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/billing/invoices",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /billing/invoices — List local BeanzPay partner invoices"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/billing/invoices/{{partner_resource_id}}",
              "variable": [
                {
                  "key": "partner_resource_id",
                  "value": "{{partner_resource_id}}",
                  "description": "OpenAPI path parameter `id`."
                }
              ]
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /billing/invoices/{id} — Get a local BeanzPay partner invoice"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/self/account",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /self/account — Get the partner's own merchant account"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/self/account",
              "variable": []
            },
            "description": "API 1.9.0\naccount_type accepts freelancer, establishment, company, or foreign_company. A foreign company must provide its required investment license in the documents stage. An existing account cannot be recreated.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /self/account — Create the partner's own merchant account"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/self/packages",
              "variable": []
            },
            "description": "API 1.9.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /self/packages — List packages available to the partner's own merchant account"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/self/documents/required",
              "variable": []
            },
            "description": "API 1.9.0\nEach document includes required_count, allows_multiple, and the accepted slot names. For repeated owner/signatory documents, the base name is slot one and type_2 is slot two. Upload each required slot separately.\nPreserve the existing application/store identifiers. Templates have no secrets and do not prove Live acceptance.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /self/documents/required — List required self-account documents"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/self/documents",
              "variable": []
            },
            "description": "API 1.9.0\nSend type and file plus optional nested fields as Multipart bracket parts\n(for example fields[holder] and fields[iban]). Do not send a JSON string\nin a text part named fields, and let the HTTP client generate the boundary.\nUpload is permitted only in an application state that accepts documents;\nit does not require prior owner-continuation consent. received is not approval.\nEach required owner_id slot accepts one real front image in this file\npart, plus id/mobile/date_of_birth metadata as fields[name] parts. The\nexisting JSON identity PATCH can save or update those scalar fields\nseparately; it cannot replace the image. Read application requirements\nfirst. A paid application closed to Partner document edits still returns\na state rejection here. Its verified owner uses the BeanzPay merchant\ndocument portal for the specifically permitted missing-image completion\nflow. Once complete, that flow returns to local document review without\na new merchant, provider registration, setup charge or provider submission.\n\nPreserve the existing application/store identifiers. Templates have no secrets and do not prove Live acceptance.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"type\": \"{{partner_self_document_type}}\",\n  \"file\": \"{{partner_document_base64}}\",\n  \"file_name\": \"{{partner_self_document_file_name}}\",\n  \"file_extension\": \"pdf\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /self/documents — Upload a local self-account document"
        },
        {
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/self/documents/{{partner_self_document_type}}",
              "variable": [
                {
                  "key": "partner_self_document_type",
                  "value": "{{partner_self_document_type}}",
                  "description": "OpenAPI path parameter `type`."
                }
              ]
            },
            "description": "API 1.9.0\nSupersedes only the current unreviewed slot without deleting its audit file. A submitted account or reviewed document cannot be deleted.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "DELETE /self/documents/{type} — Delete a local self-account document"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/self/submit",
              "variable": []
            },
            "description": "API 1.9.0\nRequires every current mandatory document slot. Resubmission is only available when the account has been returned for missing documents.\nPersist the original application and store identifiers; never create a replacement registration to repair a document.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /self/submit — Submit the partner's own merchant account for review"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/controls/payment-creation",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\nScoped partner/merchant/environment local control with reason and immutable audit. Preserves reads and authorized refunds; does not remotely suspend provider account, void money or revoke keys. Lifecycle events merchant.payment_creation_paused/resumed are administrative only.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          },
          "name": "GET /merchants/{merchant}/controls/payment-creation — Read merchant local payment-creation control"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/controls/payment-creation/suspend",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\nScoped partner/merchant/environment local control with reason and immutable audit. Preserves reads and authorized refunds; does not remotely suspend provider account, void money or revoke keys. Lifecycle events merchant.payment_creation_paused/resumed are administrative only.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"{{partner_payment_control_reason}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /merchants/{merchant}/controls/payment-creation/suspend — Pause new BeanzPay checkout creation for one linked merchant"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/controls/payment-creation/resume",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\nScoped partner/merchant/environment local control with reason and immutable audit. Preserves reads and authorized refunds; does not remotely suspend provider account, void money or revoke keys. Lifecycle events merchant.payment_creation_paused/resumed are administrative only.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"{{partner_payment_control_reason}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "noauth"
            }
          },
          "name": "POST /merchants/{merchant}/controls/payment-creation/resume — Resume new BeanzPay checkout creation for one linked merchant"
        },
        {
          "name": "GET /merchants/{merchant}/operational-requests — List scoped operational requests",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/operational-requests",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ],
              "query": [
                {
                  "key": "status",
                  "value": "{{partner_status}}",
                  "disabled": true,
                  "description": "OpenAPI query field `status`."
                },
                {
                  "key": "request_type",
                  "value": "{{partner_request_type}}",
                  "disabled": true,
                  "description": "OpenAPI query field `request_type`."
                },
                {
                  "key": "service_key",
                  "value": "{{partner_service_key}}",
                  "disabled": true,
                  "description": "OpenAPI query field `service_key`."
                },
                {
                  "key": "overdue",
                  "value": "{{partner_overdue}}",
                  "disabled": true,
                  "description": "OpenAPI query field `overdue`."
                },
                {
                  "key": "per_page",
                  "value": "{{partner_per_page}}",
                  "disabled": true,
                  "description": "OpenAPI query field `per_page`."
                }
              ]
            },
            "description": "API 1.9.0\nReturns provider-neutral operational request projections for this Partner-owned merchant and environment. Encrypted provider evidence, credentials and internal notes are excluded.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /merchants/{merchant}/operational-requests — Create one operational request for manual review",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{partner_operational_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/operational-requests",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                }
              ]
            },
            "description": "API 1.9.0\nCreates a durable local request and metadata-only outbox entry. It never calls Paymob or sends email. Reuse the same Idempotency-Key after response loss; a different body with the same key returns 409.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"request_type\": \"support_ticket\",\n  \"action\": \"open\",\n  \"reason\": \"{{partner_operational_reason}}\",\n  \"details\": {\n    \"subject\": \"{{partner_operational_support_subject}}\",\n    \"description\": \"{{partner_operational_support_description}}\",\n    \"category\": \"integration\",\n    \"priority\": \"normal\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/operational-requests/{operationalRequest} — Read one scoped operational request",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/operational-requests/{{partner_operational_request_id}}",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                },
                {
                  "key": "partner_operational_request_id",
                  "value": "{{partner_operational_request_id}}",
                  "description": "OpenAPI path parameter `operationalRequest`."
                }
              ]
            },
            "description": "API 1.9.0\nReads only a request belonging to the authenticated Partner, linked merchant and pinned environment.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/operational-requests/{operationalRequest}/apple-pay/artifact — Read public Apple Pay association artifact metadata",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/operational-requests/{{partner_operational_request_id}}/apple-pay/artifact",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                },
                {
                  "key": "partner_operational_request_id",
                  "value": "{{partner_operational_request_id}}",
                  "description": "OpenAPI path parameter `operationalRequest`."
                }
              ]
            },
            "description": "API 1.9.0\nReturns only the request-scoped public association file metadata and a short-lived download URL. No certificate, private key, provider credential or secret is returned.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/operational-requests/{operationalRequest}/apple-pay/artifact/download — Download the public Apple Pay association artifact",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/operational-requests/{{partner_operational_request_id}}/apple-pay/artifact/download",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                },
                {
                  "key": "partner_operational_request_id",
                  "value": "{{partner_operational_request_id}}",
                  "description": "OpenAPI path parameter `operationalRequest`."
                }
              ]
            },
            "description": "API 1.9.0\nDownloads the request-scoped public association file after its stored SHA-256 is verified. It is not a provider registration or private credential.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /merchants/{merchant}/operational-requests/{operationalRequest}/apple-pay/installation — Verify a Partner-installed Apple Pay association file",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{partner_apple_pay_ack_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/operational-requests/{{partner_operational_request_id}}/apple-pay/installation",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                },
                {
                  "key": "partner_operational_request_id",
                  "value": "{{partner_operational_request_id}}",
                  "description": "OpenAPI path parameter `operationalRequest`."
                }
              ]
            },
            "description": "API 1.9.0\nVerifies the pinned public association artifact against the merchant domain without registering anything with Paymob. Reuse the same key and hash for a safe replay; provider registration remains manual.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /merchants/{merchant}/operational-requests/{operationalRequest}/ticket — Read the scoped public support ticket projection",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/operational-requests/{{partner_operational_request_id}}/ticket",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                },
                {
                  "key": "partner_operational_request_id",
                  "value": "{{partner_operational_request_id}}",
                  "description": "OpenAPI path parameter `operationalRequest`."
                }
              ]
            },
            "description": "API 1.9.0\nReturns the linked ticket and non-internal replies only. Staff assignment identity and internal replies are not exposed.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "POST /merchants/{merchant}/operational-requests/{operationalRequest}/ticket/replies — Add one non-internal support ticket reply",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{partner_support_reply_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/operational-requests/{{partner_operational_request_id}}/ticket/replies",
              "variable": [
                {
                  "key": "partner_merchant_id",
                  "value": "{{partner_merchant_id}}",
                  "description": "OpenAPI path parameter `merchant`."
                },
                {
                  "key": "partner_operational_request_id",
                  "value": "{{partner_operational_request_id}}",
                  "description": "OpenAPI path parameter `operationalRequest`."
                }
              ]
            },
            "description": "API 1.9.0\nAdds a Partner-visible reply through the local ticket service. Credentials and authentication material are rejected; the same key/body safely replays without a second reply.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "noauth"
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"message\": \"{{partner_operational_reply_message}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Native Merchant 1.5.0",
      "description": "Run deliberately after owner authorization and capability checks; no collection scripts submit writes automatically.",
      "item": [
        {
          "name": "GET /account — Read the authenticated merchant API account",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/account",
              "variable": []
            },
            "description": "API 1.4.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "name": "GET /features — Read Native feature readiness and effective scopes",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/features",
              "variable": []
            },
            "description": "API 1.4.0\nReturns the merchant- and environment-bound readiness projection for each Native feature and the credential scopes that are actually issuable. The projection never returns provider integration identifiers, API keys, bearer tokens, payment secrets, or card tokens. Readiness is metadata only; it does not provision credentials, call a provider, or enable a capability.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "name": "GET /payments — List payments created with the authenticated environment",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/payments",
              "variable": [],
              "query": [
                {
                  "key": "page",
                  "value": "{{merchant_page}}",
                  "disabled": true,
                  "description": "OpenAPI query field `page`."
                },
                {
                  "key": "per_page",
                  "value": "{{merchant_per_page}}",
                  "disabled": true,
                  "description": "OpenAPI query field `per_page`."
                },
                {
                  "key": "reference",
                  "value": "{{merchant_payment_reference}}",
                  "disabled": true,
                  "description": "OpenAPI query field `reference`."
                },
                {
                  "key": "status",
                  "value": "{{merchant_status}}",
                  "disabled": true,
                  "description": "OpenAPI query field `status`."
                },
                {
                  "key": "date_from",
                  "value": "{{merchant_date_from}}",
                  "disabled": true,
                  "description": "OpenAPI query field `date_from`."
                },
                {
                  "key": "date_to",
                  "value": "{{merchant_date_to}}",
                  "disabled": true,
                  "description": "OpenAPI query field `date_to`."
                }
              ]
            },
            "description": "API 1.4.0\nReturns the latest confirmed state stored by BeanzPay. This endpoint does not trigger an immediate upstream inquiry. Final confirmation comes from a signed BeanzPay notification or automatic reconciliation.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "name": "POST /payments — Create a hosted or origin-bound embedded checkout payment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_payment_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/payments",
              "variable": []
            },
            "description": "API 1.4.0\nA `503` response can mean that payment creation is unavailable or that the provider outcome is unknown. Inspect `error.code`; for `payment_outcome_unknown`, do not create a replacement payment. Query by reference or replay the exact request with the same `Idempotency-Key` and content. While the creation is unconfirmed, a reference lookup may itself return `409 payment_outcome_unknown`; that reserves the reference but does not prove that a payment was created. Never use a new key or reference for the same order. A definitive `422 payment_rejected` means no payment was created; fix the rejected request before retrying. No provider validation details or credentials are included in the public error response. The JSON request body must not exceed 64 KiB (65,536 bytes); a larger body receives `413`.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": {{merchant_amount_halalas}},\n  \"currency\": \"SAR\",\n  \"reference\": \"{{merchant_reference}}\",\n  \"customer\": {\n    \"first_name\": \"{{merchant_customer_first_name}}\",\n    \"last_name\": \"{{merchant_customer_last_name}}\",\n    \"email\": \"{{merchant_customer_email}}\",\n    \"phone_number\": \"{{merchant_customer_phone_number}}\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /payments/{payment} — Read one payment created by the authenticated merchant and environment",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/payments/{{merchant_payment_id}}",
              "variable": [
                {
                  "key": "merchant_payment_id",
                  "value": "{{merchant_payment_id}}",
                  "description": "OpenAPI path parameter `payment`."
                }
              ]
            },
            "description": "API 1.4.0\nReturns the latest confirmed state stored by BeanzPay. This endpoint does not trigger an immediate upstream inquiry. Final confirmation comes from a signed BeanzPay notification or automatic reconciliation.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "name": "POST /payments/{payment}/refund — Request a full or partial refund for a paid payment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_refund_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/payments/{{merchant_payment_id}}/refund",
              "variable": [
                {
                  "key": "merchant_payment_id",
                  "value": "{{merchant_payment_id}}",
                  "description": "OpenAPI path parameter `payment`."
                }
              ]
            },
            "description": "API 1.4.0\nCreates one refund operation after BeanzPay verifies the payment with the live account and reserves the request locally. `amount` is in halalas; omit it to request the full remaining refundable amount. The response is normally `pending_callback` until a signed BeanzPay notification or an authenticated server-side inquiry confirms the result. BeanzPay reconciles the operation automatically through these channels. A `503` may be `refunds_unavailable`, `refund_inquiry_unavailable`, `refund_outcome_unknown`, or `service_unavailable`; inspect `error.code`. The JSON request body must not exceed 16 KiB (16,384 bytes); a larger body receives `413`. For `refund_inquiry_unavailable`, wait with backoff and retry the exact request with the same `Idempotency-Key`. For `refund_outcome_unknown`, query the payment or safely replay the exact request with the same `Idempotency-Key` to retrieve the existing refund record; do not use a different key or create a replacement refund. For `refunds_unavailable`, stop and check account capability before attempting a new refund. A definitive `422 refund_rejected` means no refund was accepted. The original key replays the failed record; after correcting the request or account issue, use a new key for a new attempt. Never treat a browser return as proof of the refund. A separate refund_reference is accepted and returned as child reference. GET /refunds?idempotency_key=ORIGINAL_KEY recovers the same child after response loss; payment_reference filters the parent. Payment reconcile alone is not a child-refund verdict. Setup-fee refunds are BeanzPay administration only and cannot be initiated here.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "POST /payments/{payment}/reconcile — Reconcile one payment without provider identifiers",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/payments/{{merchant_payment_id}}/reconcile",
              "variable": [
                {
                  "key": "merchant_payment_id",
                  "value": "{{merchant_payment_id}}",
                  "description": "OpenAPI path parameter `payment`."
                }
              ]
            },
            "description": "API 1.4.0\nSends an empty JSON object to request a bounded server-side Live provider inquiry for this merchant and credential environment. The route is registered for both credential environments but currently returns an unavailable response for Test. Do not include a provider order ID, provider transaction ID, key, or secret. A pending or unknown result remains pending; reconciliation is not proof of a successful payment unless the returned local state is confirmed.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /refunds — List refund child operations for this merchant environment",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/refunds",
              "variable": [],
              "query": [
                {
                  "key": "page",
                  "value": "{{merchant_page}}",
                  "disabled": true,
                  "description": "OpenAPI query field `page`."
                },
                {
                  "key": "per_page",
                  "value": "{{merchant_per_page}}",
                  "disabled": true,
                  "description": "OpenAPI query field `per_page`."
                },
                {
                  "key": "payment_id",
                  "value": "{{merchant_payment_id}}",
                  "disabled": true,
                  "description": "OpenAPI query field `payment_id`."
                },
                {
                  "key": "reference",
                  "value": "{{merchant_payment_reference}}",
                  "disabled": true,
                  "description": "Legacy alias for payment_reference (parent), never the child reference."
                },
                {
                  "key": "idempotency_key",
                  "value": "{{merchant_payment_idempotency_key}}",
                  "disabled": true,
                  "description": "OpenAPI query field `idempotency_key`."
                },
                {
                  "key": "status",
                  "value": "{{merchant_status}}",
                  "disabled": true,
                  "description": "OpenAPI query field `status`."
                },
                {
                  "key": "payment_reference",
                  "value": "{{merchant_payment_reference}}",
                  "disabled": true,
                  "description": "OpenAPI query field `payment_reference`."
                },
                {
                  "key": "refund_reference",
                  "value": "{{merchant_refund_reference}}",
                  "disabled": true,
                  "description": "OpenAPI query field `refund_reference`."
                }
              ]
            },
            "description": "API 1.4.0\nReturns local refund operations only. A row with `pending_callback`, `requires_reconciliation`, or `submitting` is not a successful refund. The query never crosses the bearer credential's merchant or environment boundary.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "name": "GET /refunds/{refund} — Read one refund child operation",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/refunds/{{merchant_refund_id}}",
              "variable": [
                {
                  "key": "merchant_refund_id",
                  "value": "{{merchant_refund_id}}",
                  "description": "OpenAPI path parameter `refund`."
                }
              ]
            },
            "description": "API 1.4.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "name": "GET /transactions — List financial transactions for the authenticated live account",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/transactions",
              "variable": [],
              "query": [
                {
                  "key": "page",
                  "value": "{{merchant_page}}",
                  "disabled": true,
                  "description": "OpenAPI query field `page`."
                },
                {
                  "key": "date_from",
                  "value": "{{merchant_date_from}}",
                  "disabled": true,
                  "description": "OpenAPI query field `date_from`."
                },
                {
                  "key": "date_to",
                  "value": "{{merchant_date_to}}",
                  "disabled": true,
                  "description": "OpenAPI query field `date_to`."
                }
              ]
            },
            "description": "API 1.4.0\nRead-only transaction inquiry. The response contains BeanzPay-normalized fields only; it never returns card data, credentials, upstream URLs, or account identifiers.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "name": "GET /transfers — List normalized transfers for the authenticated live account",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/transfers",
              "variable": [],
              "query": [
                {
                  "key": "page",
                  "value": "{{merchant_page}}",
                  "disabled": true,
                  "description": "OpenAPI query field `page`."
                }
              ]
            },
            "description": "API 1.4.0\nRead-only transfer inquiry. This endpoint does not expose an available balance and does not create, modify, or initiate a transfer.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "name": "GET /webhooks — List native webhook endpoint metadata",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/webhooks",
              "variable": []
            },
            "description": "API 1.4.0\nReturns endpoint metadata scoped to the bearer merchant and the environment fixed by the credential. This Native route has no `environment` query or body field and returns the direct `{webhooks: [...]}` metadata object. Secrets, signatures, delivery bodies, and response bodies are never returned. The verified-owner counterpart is `/api/merchant-integrations/webhooks`, which uses a Sanctum owner session and may filter by environment.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "name": "POST /webhooks — Configure one native webhook endpoint",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_webhook_secret_operation_key}}",
                "type": "text",
                "description": "Persist original operation key/body. Lookup metadata after response loss; never auto-repeat a rotation with a new key."
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/webhooks",
              "variable": []
            },
            "description": "API 1.4.0\nAccepts only `endpoint_url` and `events`; the Native credential supplies the merchant and environment. BeanzPay validates that the URL is public HTTPS and rejects redirects and private or reserved destinations. The secret is returned only in this response; persist it in a confidential secret store because it cannot be read again.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"endpoint_url\": \"{{merchant_webhook_url}}\",\n  \"events\": [\n    \"payment.paid\"\n  ]\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "POST /webhooks/{endpoint}/rotate — Rotate one native webhook secret",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_webhook_secret_operation_key}}",
                "type": "text",
                "description": "Persist original operation key/body. Lookup metadata after response loss; never auto-repeat a rotation with a new key."
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/webhooks/{{merchant_webhook_endpoint_id}}/rotate",
              "variable": [
                {
                  "key": "merchant_webhook_endpoint_id",
                  "value": "{{merchant_webhook_endpoint_id}}",
                  "description": "OpenAPI path parameter `endpoint`."
                }
              ]
            },
            "description": "API 1.4.0\nOptionally changes the public HTTPS URL or subscribed event list. The new secret is returned only once. Omitted fields retain their current values; the old secret must be replaced in the receiver atomically.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "DELETE /webhooks/{endpoint} — Revoke one native webhook endpoint",
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/webhooks/{{merchant_webhook_endpoint_id}}",
              "variable": [
                {
                  "key": "merchant_webhook_endpoint_id",
                  "value": "{{merchant_webhook_endpoint_id}}",
                  "description": "OpenAPI path parameter `endpoint`."
                }
              ]
            },
            "description": "API 1.4.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/refunds/{{merchant_refund_id}}/reconcile",
              "variable": [
                {
                  "key": "merchant_refund_id",
                  "value": "{{merchant_refund_id}}",
                  "description": "OpenAPI path parameter `refund`."
                }
              ]
            },
            "description": "API 1.4.0\nEmpty JSON only, no provider IDs. A known child is verified independently; an unbound unknown submission remains requires_operator_review until BeanzPay matches provider evidence. No second refund POST is submitted. Confirmed child state remains readable when inquiry is later disabled.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "name": "POST /refunds/{refund}/reconcile — Reconcile one refund child through a bound authenticated Live inquiry"
        },
        {
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/payments/{{merchant_payment_id}}/metadata",
              "variable": [
                {
                  "key": "merchant_payment_id",
                  "value": "{{merchant_payment_id}}",
                  "description": "OpenAPI path parameter `payment`."
                }
              ]
            },
            "description": "API 1.4.0\nOnly listed labels are mutable. Amount, currency, reference, account, environment and provider identity remain immutable.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"metadata\": {\n    \"order_id\": \"{{merchant_order_id}}\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "name": "PATCH /payments/{payment}/metadata — Replace encrypted merchant business metadata"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/payments/export",
              "variable": [],
              "query": [
                {
                  "key": "reference",
                  "value": "{{merchant_payment_reference}}",
                  "disabled": true,
                  "description": "OpenAPI query field `reference`."
                },
                {
                  "key": "status",
                  "value": "{{merchant_status}}",
                  "disabled": true,
                  "description": "OpenAPI query field `status`."
                },
                {
                  "key": "date_from",
                  "value": "{{merchant_date_from}}",
                  "disabled": true,
                  "description": "OpenAPI query field `date_from`."
                },
                {
                  "key": "date_to",
                  "value": "{{merchant_date_to}}",
                  "disabled": true,
                  "description": "OpenAPI query field `date_to`."
                },
                {
                  "key": "limit",
                  "value": "{{merchant_limit}}",
                  "disabled": true,
                  "description": "OpenAPI query field `limit`."
                }
              ]
            },
            "description": "API 1.4.0\nCSV; no checkout URL, customer data or credentials. X-Export-Truncated=true means use narrower filters. This local export is not an official balance or bank settlement.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          },
          "name": "GET /payments/export — Export up to 1000 owned Native payment records"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/payment-links",
              "variable": [],
              "query": [
                {
                  "key": "page",
                  "value": "{{merchant_page}}",
                  "disabled": true,
                  "description": "OpenAPI query field `page`."
                },
                {
                  "key": "per_page",
                  "value": "{{merchant_per_page}}",
                  "disabled": true,
                  "description": "OpenAPI query field `per_page`."
                },
                {
                  "key": "reference",
                  "value": "{{merchant_payment_reference}}",
                  "disabled": true,
                  "description": "OpenAPI query field `reference`."
                },
                {
                  "key": "status",
                  "value": "{{merchant_status}}",
                  "disabled": true,
                  "description": "OpenAPI query field `status`."
                },
                {
                  "key": "date_from",
                  "value": "{{merchant_date_from}}",
                  "disabled": true,
                  "description": "OpenAPI query field `date_from`."
                },
                {
                  "key": "date_to",
                  "value": "{{merchant_date_to}}",
                  "disabled": true,
                  "description": "OpenAPI query field `date_to`."
                }
              ]
            },
            "description": "API 1.4.0\nReturns the latest confirmed state stored by BeanzPay. This endpoint does not trigger an immediate upstream inquiry. Final confirmation comes from a signed BeanzPay notification or automatic reconciliation.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          },
          "name": "GET /payment-links — List Native intentions usable as payment links"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/payment-links",
              "variable": []
            },
            "description": "API 1.4.0\nUses the same Native payment intention and idempotency as POST /payments. Embedded checkout is rejected; no provider invoice is created.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": {{merchant_amount_halalas}},\n  \"currency\": \"SAR\",\n  \"reference\": \"{{merchant_reference}}\",\n  \"customer\": {\n    \"first_name\": \"{{merchant_customer_first_name}}\",\n    \"last_name\": \"{{merchant_customer_last_name}}\",\n    \"email\": \"{{merchant_customer_email}}\",\n    \"phone_number\": \"{{merchant_customer_phone_number}}\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "name": "POST /payment-links — Create a single-payment Hosted link"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/payment-links/{{merchant_payment_id}}",
              "variable": [
                {
                  "key": "merchant_payment_id",
                  "value": "{{merchant_payment_id}}",
                  "description": "OpenAPI path parameter `payment`."
                }
              ]
            },
            "description": "API 1.4.0\nReturns the latest confirmed state stored by BeanzPay. This endpoint does not trigger an immediate upstream inquiry. Final confirmation comes from a signed BeanzPay notification or automatic reconciliation.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          },
          "name": "GET /payment-links/{payment} — Read one payment created by the authenticated merchant and environment"
        },
        {
          "request": {
            "method": "DELETE",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/payment-links/{{merchant_payment_id}}",
              "variable": [
                {
                  "key": "merchant_payment_id",
                  "value": "{{merchant_payment_id}}",
                  "description": "OpenAPI path parameter `payment`."
                }
              ]
            },
            "description": "API 1.4.0\nDoes not issue financial void or refund. A late confirmed payment remains paid. Use the original payment refund route for confirmed money.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"{{merchant_checkout_cancellation_reason}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "name": "DELETE /payment-links/{payment} — Disable an unpaid local checkout link"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/payment-links/{{merchant_payment_id}}/qr",
              "variable": [
                {
                  "key": "merchant_payment_id",
                  "value": "{{merchant_payment_id}}",
                  "description": "OpenAPI path parameter `payment`."
                }
              ]
            },
            "description": "API 1.4.0\nPrivate no-store image. Expired, cancelled or terminal checkout has no QR.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          },
          "name": "GET /payment-links/{payment}/qr — Return the currently payable link as a QR SVG"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/webhooks/deliveries",
              "variable": [],
              "query": [
                {
                  "key": "event",
                  "value": "{{merchant_event}}",
                  "disabled": true,
                  "description": "OpenAPI query field `event`."
                },
                {
                  "key": "status",
                  "value": "{{merchant_status}}",
                  "disabled": true,
                  "description": "OpenAPI query field `status`."
                },
                {
                  "key": "event_id",
                  "value": "{{merchant_event_id}}",
                  "disabled": true,
                  "description": "OpenAPI query field `event_id`."
                },
                {
                  "key": "page",
                  "value": "{{merchant_page}}",
                  "disabled": true,
                  "description": "OpenAPI query field `page`."
                },
                {
                  "key": "per_page",
                  "value": "{{merchant_per_page}}",
                  "disabled": true,
                  "description": "OpenAPI query field `per_page`."
                }
              ]
            },
            "description": "API 1.4.0\nNative channel only. No raw body, signature, response text or secret is disclosed.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          },
          "name": "GET /webhooks/deliveries — List safe delivery metadata"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/webhooks/deliveries/{{merchant_webhook_delivery_id}}",
              "variable": [
                {
                  "key": "merchant_webhook_delivery_id",
                  "value": "{{merchant_webhook_delivery_id}}",
                  "description": "OpenAPI path parameter `delivery`."
                }
              ]
            },
            "description": "API 1.4.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          },
          "name": "GET /webhooks/deliveries/{delivery} — Read one safe delivery and attempts"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_webhook_replay_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/webhooks/deliveries/{{merchant_webhook_delivery_id}}/replay",
              "variable": [
                {
                  "key": "merchant_webhook_delivery_id",
                  "value": "{{merchant_webhook_delivery_id}}",
                  "description": "OpenAPI path parameter `delivery`."
                }
              ]
            },
            "description": "API 1.4.0\nManual budget is independent of five automatic attempts. Up to three manual attempts, 30 seconds apart. The same key and reason return the journal result without a second POST after response loss. Rotation/revocation or withdrawn consent blocks replay.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"{{merchant_webhook_replay_reason}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "name": "POST /webhooks/deliveries/{delivery}/replay — Replay the same immutable event against its original active endpoint"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/customer-invoices",
              "variable": [],
              "query": [
                {
                  "key": "page",
                  "value": "{{merchant_page}}",
                  "disabled": true,
                  "description": "OpenAPI query field `page`."
                },
                {
                  "key": "per_page",
                  "value": "{{merchant_per_page}}",
                  "disabled": true,
                  "description": "OpenAPI query field `per_page`."
                },
                {
                  "key": "status",
                  "value": "{{merchant_status}}",
                  "disabled": true,
                  "description": "OpenAPI query field `status`."
                },
                {
                  "key": "idempotency_key",
                  "value": "{{merchant_payment_idempotency_key}}",
                  "disabled": true,
                  "description": "OpenAPI query field `idempotency_key`."
                }
              ]
            },
            "description": "API 1.4.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          },
          "name": "GET /customer-invoices — List owned customer invoices"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_customer_invoice_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/customer-invoices",
              "variable": []
            },
            "description": "API 1.4.0\nMerchant-branded customer payment document tied to one Native Hosted intention; the provider stays backend and is not shown to the customer. SAR minor units, optional line totals must exactly sum amount. Not a ZATCA tax invoice or provider fee invoice. Persist Idempotency-Key before create. Unknown create is recovered by same key or scoped idempotency_key lookup and read-only reference binding, never a replacement payment.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": {{merchant_amount_halalas}},\n  \"currency\": \"SAR\",\n  \"customer\": {\n    \"first_name\": \"{{merchant_customer_first_name}}\",\n    \"last_name\": \"{{merchant_customer_last_name}}\",\n    \"email\": \"{{merchant_customer_email}}\",\n    \"phone_number\": \"{{merchant_customer_phone_number}}\"\n  }\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "name": "POST /customer-invoices — Create one merchant customer invoice"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/customer-invoices/{{merchant_customer_invoice_id}}",
              "variable": [
                {
                  "key": "merchant_customer_invoice_id",
                  "value": "{{merchant_customer_invoice_id}}",
                  "description": "OpenAPI path parameter `invoice`."
                }
              ]
            },
            "description": "API 1.4.0\n\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          },
          "name": "GET /customer-invoices/{invoice} — Read one owned customer invoice"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_customer_invoice_send_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/customer-invoices/{{merchant_customer_invoice_id}}/send",
              "variable": [
                {
                  "key": "merchant_customer_invoice_id",
                  "value": "{{merchant_customer_invoice_id}}",
                  "description": "OpenAPI path parameter `invoice`."
                }
              ]
            },
            "description": "API 1.4.0\nExplicit empty JSON object. Saves send marker before mail. Response loss replays sent result without another mail; transport-unknown stays unknown for operator delivery verification. The approved sender is BeanzPay; business email is displayed in the message, not a promised Reply-To override. sent means transport acceptance, not proof of inbox delivery. Does not issue provider/tax invoice.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "name": "POST /customer-invoices/{invoice}/send — Send a customer invoice once from BeanzPay with merchant business contact"
        },
        {
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_customer_invoice_cancel_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/customer-invoices/{{merchant_customer_invoice_id}}/cancel",
              "variable": [
                {
                  "key": "merchant_customer_invoice_id",
                  "value": "{{merchant_customer_invoice_id}}",
                  "description": "OpenAPI path parameter `invoice`."
                }
              ]
            },
            "description": "API 1.4.0\nConfirmed money cannot be cancelled or marked paid by this API. Late confirmed payment remains visible; use the original Native refund workflow.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"reason\": \"{{merchant_invoice_cancel_reason}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "name": "POST /customer-invoices/{invoice}/cancel — Cancel an unpaid customer invoice checkout locally"
        },
        {
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/customer-invoices/{{merchant_customer_invoice_id}}/document",
              "variable": [
                {
                  "key": "merchant_customer_invoice_id",
                  "value": "{{merchant_customer_invoice_id}}",
                  "description": "OpenAPI path parameter `invoice`."
                }
              ]
            },
            "description": "API 1.4.0\nBearer-authenticated document; no query or public customer URL, no provider credentials or identity. Save/print securely from server-side connector; never place a bearer in the browser.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          },
          "name": "GET /customer-invoices/{invoice}/document — Read a private merchant-branded printable HTML invoice"
        },
        {
          "name": "GET /subscription-plans — List merchant subscription plans",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/subscription-plans",
              "variable": []
            },
            "description": "API 1.4.0\nReturns safe local plan metadata for the credential environment. Provider plan identifiers and raw provider fields are never returned.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "name": "POST /subscription-plans — Create one merchant subscription plan",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_subscription_plan_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/subscription-plans",
              "variable": []
            },
            "description": "API 1.4.0\nCreates a provider plan only after the merchant MOTO integration is verified. Persist the Idempotency-Key before the first POST. A 409 `native_outcome_unknown` is recovered with the same key; never submit a replacement plan.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"frequency\": 30,\n  \"name\": \"{{merchant_subscription_plan_name}}\",\n  \"plan_type\": \"rent\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "PUT /subscription-plans/{plan} — Update one merchant subscription plan",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_subscription_plan_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/subscription-plans/{{merchant_subscription_plan_id}}",
              "variable": [
                {
                  "key": "merchant_subscription_plan_id",
                  "value": "{{merchant_subscription_plan_id}}",
                  "description": "OpenAPI path parameter `plan`."
                }
              ]
            },
            "description": "API 1.4.0\nUses the local plan UUID; provider plan IDs, MOTO integration IDs and callback URLs are server-bound. Unknown outcomes remain journaled and are never retried with a new key.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"{{merchant_subscription_plan_name}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "POST /subscription-plans/{plan}/suspend — Suspend one merchant subscription plan",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_subscription_plan_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/subscription-plans/{{merchant_subscription_plan_id}}/suspend",
              "variable": [
                {
                  "key": "merchant_subscription_plan_id",
                  "value": "{{merchant_subscription_plan_id}}",
                  "description": "OpenAPI path parameter `plan`."
                }
              ]
            },
            "description": "API 1.4.0\nEmpty JSON object only. The plan UUID is local and the provider mutation is protected by the durable operation journal.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "POST /subscription-plans/{plan}/resume — Resume one merchant subscription plan",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_subscription_plan_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/subscription-plans/{{merchant_subscription_plan_id}}/resume",
              "variable": [
                {
                  "key": "merchant_subscription_plan_id",
                  "value": "{{merchant_subscription_plan_id}}",
                  "description": "OpenAPI path parameter `plan`."
                }
              ]
            },
            "description": "API 1.4.0\nEmpty JSON object only. Reuse the same Idempotency-Key after an unknown outcome.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /subscription-enrollment/readiness — Read first-3DS subscription enrollment readiness",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/subscription-enrollment/readiness",
              "variable": []
            },
            "description": "API 1.4.0\nReturns merchant/environment readiness without a provider request. `partial` means first-3DS initiation is available but lifecycle callback evidence is still pending; it is not a claim of automatic recurring settlement.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "name": "POST /subscription-plans/{plan}/enrollments — Start one first-3DS subscription enrollment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_subscription_enrollment_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/subscription-plans/{{merchant_subscription_plan_id}}/enrollments",
              "variable": [
                {
                  "key": "merchant_subscription_plan_id",
                  "value": "{{merchant_subscription_plan_id}}",
                  "description": "OpenAPI path parameter `plan`."
                }
              ]
            },
            "description": "API 1.4.0\nCreates one Unified Intention using the server-bound plan, merchant payment secret and verified online 3DS integration. The response contains only local handles and a signed BeanzPay checkout URL. Persist the request before POST; 409 unknown requires the same key and no replacement POST.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount\": {{merchant_subscription_amount_cents}},\n  \"currency\": \"SAR\",\n  \"reference\": \"{{merchant_subscription_reference}}\",\n  \"customer\": {\n    \"first_name\": \"{{merchant_subscription_customer_first_name}}\",\n    \"last_name\": \"{{merchant_subscription_customer_last_name}}\",\n    \"email\": \"{{merchant_subscription_customer_email}}\",\n    \"phone_number\": \"{{merchant_subscription_customer_phone}}\"\n  },\n  \"expires_in\": {{merchant_subscription_expires_in}}\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /subscription-enrollments/{enrollment} — Read and reconcile one subscription enrollment",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/subscription-enrollments/{{merchant_subscription_enrollment_id}}",
              "variable": [
                {
                  "key": "merchant_subscription_enrollment_id",
                  "value": "{{merchant_subscription_enrollment_id}}",
                  "description": "OpenAPI path parameter `enrollment`."
                }
              ]
            },
            "description": "API 1.4.0\nReads the local enrollment and performs authenticated first-transaction/subscription inquiry as needed. Callback hints and client-supplied provider IDs are not accepted as financial proof.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "name": "POST /subscription-enrollments/{enrollment}/reconcile — Reconcile one first-3DS subscription enrollment",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/subscription-enrollments/{{merchant_subscription_enrollment_id}}/reconcile",
              "variable": [
                {
                  "key": "merchant_subscription_enrollment_id",
                  "value": "{{merchant_subscription_enrollment_id}}",
                  "description": "OpenAPI path parameter `enrollment`."
                }
              ]
            },
            "description": "API 1.4.0\nEmpty JSON object only. BeanzPay requires a verified amount/currency/environment/3DS transaction and exactly one subscription whose `initial_transaction` matches; no provider identifier is accepted from the caller.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /subscription-operations — Recover one Native subscription operation by idempotency key",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/subscription-operations",
              "variable": [],
              "query": [
                {
                  "key": "idempotency_key",
                  "value": "{{merchant_subscription_operation_idempotency_key}}",
                  "disabled": false,
                  "description": "The exact original Idempotency-Key saved before the Native mutation. Use this only for local recovery after response loss; it is not a new key and never triggers a provider request."
                }
              ]
            },
            "description": "API 1.4.0\nRead-only local recovery after a lost response. Supply the exact original printable-ASCII `idempotency_key`; BeanzPay scopes the lookup to the authenticated merchant, credential environment, and current MID. This route never submits a provider request or creates a replacement operation. An unresolved operation remains `processing` or `unknown` and must be reconciled through the documented resource read; do not generate a new key.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "name": "GET /subscription-operations/{operation} — Read one Native subscription operation",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/subscription-operations/{{merchant_subscription_operation_id}}",
              "variable": [
                {
                  "key": "merchant_subscription_operation_id",
                  "value": "{{merchant_subscription_operation_id}}",
                  "description": "OpenAPI path parameter `operation`."
                }
              ]
            },
            "description": "API 1.4.0\nRead-only local recovery by BeanzPay operation UUID. Unknown operations remain unknown and never submit a replacement provider request.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "name": "GET /subscriptions/{subscription} — Read one merchant subscription",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/subscriptions/{{merchant_subscription_id}}",
              "variable": [
                {
                  "key": "merchant_subscription_id",
                  "value": "{{merchant_subscription_id}}",
                  "description": "OpenAPI path parameter `subscription`."
                }
              ]
            },
            "description": "API 1.4.0\nRefreshes safe subscription metadata through the merchant-bound provider token and verifies that the returned provider resource matches the local subscription handle.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "name": "PUT /subscriptions/{subscription} — Update one merchant subscription",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_subscription_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/subscriptions/{{merchant_subscription_id}}",
              "variable": [
                {
                  "key": "merchant_subscription_id",
                  "value": "{{merchant_subscription_id}}",
                  "description": "OpenAPI path parameter `subscription`."
                }
              ]
            },
            "description": "API 1.4.0\nUpdates only amount and provider-supported billing fields. Use the same Idempotency-Key after any unknown response; no second mutation is submitted automatically.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"amount_cents\": {{merchant_subscription_amount_cents}}\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "POST /subscriptions/{subscription}/{action} — Suspend, resume or cancel one merchant subscription",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_subscription_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/subscriptions/{{merchant_subscription_id}}/{{merchant_subscription_action}}",
              "variable": [
                {
                  "key": "merchant_subscription_id",
                  "value": "{{merchant_subscription_id}}",
                  "description": "OpenAPI path parameter `subscription`."
                },
                {
                  "key": "merchant_subscription_action",
                  "value": "{{merchant_subscription_action}}",
                  "description": "OpenAPI path parameter `action`."
                }
              ]
            },
            "description": "API 1.4.0\nThe action path is limited to `suspend`, `resume` and `cancel`; body must be an empty JSON object. Unknown outcomes remain journaled.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "GET /subscriptions/{subscription}/transactions — List safe subscription transaction history",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/subscriptions/{{merchant_subscription_id}}/transactions",
              "variable": [
                {
                  "key": "merchant_subscription_id",
                  "value": "{{merchant_subscription_id}}",
                  "description": "OpenAPI path parameter `subscription`."
                }
              ]
            },
            "description": "API 1.4.0\nReturns provider-normalized transaction fields only. Provider transaction identifiers, card data and credentials are excluded; this is not a local recurring-payment ledger.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "name": "GET /subscriptions/{subscription}/cards — List safe subscription card metadata",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/subscriptions/{{merchant_subscription_id}}/cards",
              "variable": [
                {
                  "key": "merchant_subscription_id",
                  "value": "{{merchant_subscription_id}}",
                  "description": "OpenAPI path parameter `subscription`."
                }
              ]
            },
            "description": "API 1.4.0\nRequires both `subscriptions:read` and `card_tokens:read`. Only local card UUIDs, masked PAN metadata and lifecycle fields are returned.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            }
          }
        },
        {
          "name": "POST /subscriptions/{subscription}/cards/{card}/{action} — Delete or make primary one subscription card",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_subscription_card_idempotency_key}}",
                "type": "text",
                "description": "Persist this exact key and reuse it after a response loss or unknown outcome; never generate a replacement key."
              },
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              }
            ],
            "url": {
              "raw": "{{merchant_base_url}}/subscriptions/{{merchant_subscription_id}}/cards/{{merchant_subscription_card_id}}/{{merchant_subscription_card_action}}",
              "variable": [
                {
                  "key": "merchant_subscription_id",
                  "value": "{{merchant_subscription_id}}",
                  "description": "OpenAPI path parameter `subscription`."
                },
                {
                  "key": "merchant_subscription_card_id",
                  "value": "{{merchant_subscription_card_id}}",
                  "description": "OpenAPI path parameter `card`."
                },
                {
                  "key": "merchant_subscription_card_action",
                  "value": "{{merchant_subscription_card_action}}",
                  "description": "OpenAPI path parameter `action`."
                }
              ]
            },
            "description": "API 1.4.0\nThe card UUID is scoped to the local subscription; body must be an empty JSON object. Raw card tokens and provider IDs never cross the boundary.\nPersist identifiers, the original body, and every Idempotency-Key before a write. No generated financial keys, provider identifiers, or automatic retries are included.",
            "auth": {
              "type": "bearer",
              "bearer": [
                {
                  "key": "token",
                  "value": "{{merchant_bearer}}",
                  "type": "string"
                }
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Contract journey and one-time secret recovery candidate",
      "item": [
        {
          "name": "GET application contract production",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": "{{partner_live_base_url}}/applications/{{partner_application_id}}/contract",
            "description": "Flat metadata only. contract may be null. Owner view/download URLs require the correct owner session; signed_verified does not prove activation."
          },
          "response": []
        },
        {
          "name": "POST existing owner continuation production",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": "{{partner_live_base_url}}/applications/{{partner_application_id}}/owner-continuation",
            "description": "No body or onboarding replay. Retains application/merchant/continuation UUID and stored return_url. Valid expiry unchanged; expired renews48h. Prohibited binding/redirect fields422; next_action is a hint."
          },
          "response": []
        },
        {
          "name": "GET application contract Test",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": "{{partner_base_url}}/applications/{{partner_application_id}}/contract",
            "description": "Flat metadata only. contract may be null. Owner view/download URLs require the correct owner session; signed_verified does not prove activation."
          },
          "response": []
        },
        {
          "name": "POST existing owner continuation Test",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              }
            ],
            "url": "{{partner_base_url}}/applications/{{partner_application_id}}/owner-continuation",
            "description": "No body or onboarding replay. Retains application/merchant/continuation UUID and stored return_url. Valid expiry unchanged; expired renews48h. Prohibited binding/redirect fields422; next_action is a hint."
          },
          "response": []
        },
        {
          "name": "GET Native credential operation by original key",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "X-Partner-Key",
                "value": "{{partner_key}}",
                "type": "text"
              },
              {
                "key": "X-Partner-Secret",
                "value": "{{partner_secret}}",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{partner_native_secret_operation_key}}",
                "type": "text"
              }
            ],
            "url": "{{partner_live_base_url}}/merchants/{{partner_merchant_id}}/native-credential-operations?environment={{partner_native_operation_environment}}",
            "description": "Production administration. Required explicit test|live environment. Metadata-only result, no secret and no mutation."
          },
          "response": []
        },
        {
          "name": "GET Native webhook operation by original key",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Accept",
                "value": "application/json",
                "type": "text"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{merchant_bearer}}",
                "type": "text"
              },
              {
                "key": "Idempotency-Key",
                "value": "{{merchant_webhook_secret_operation_key}}",
                "type": "text"
              }
            ],
            "url": "{{merchant_base_url}}/webhook-operations",
            "description": "webhooks:read required. Bearer binds merchant/environment/delegation. Metadata only. Revoked or unavailable authority can deny lookup; escalate through the approved operations flow."
          },
          "response": []
        }
      ]
    }
  ],
  "description": "Secret-free Postman client packet generated from the repository OpenAPI contracts. Supply Partner key/secret and merchant bearer values in the companion environment; persist every idempotency key and financial reference before a write. No pre-request script creates keys, references, nonces, credentials, or customer/company data.",
  "variable": [
    {
      "key": "partner_merchant_type",
      "value": "",
      "type": "string",
      "description": "Required discovery selector: freelancer, establishment, company or foreign_company. account_type is not the query selector."
    },
    {
      "key": "partner_owners_count",
      "value": "1",
      "type": "string",
      "description": "Number of owners, 1 through 20; match the application."
    },
    {
      "key": "partner_signatory",
      "value": "owner",
      "type": "string",
      "description": "owner, power_of_attorney or commercial_contract; match the application."
    },
    {
      "key": "partner_signatory_count",
      "value": "1",
      "type": "string",
      "description": "Number of signatories, 1 through 20; match the application."
    },
    {
      "key": "partner_commercial_registration",
      "value": "",
      "type": "string",
      "description": "Required for non-freelancer creation; never export a populated value."
    },
    {
      "key": "partner_document_holder",
      "value": "",
      "type": "string",
      "description": "Bank certificate holder; enable fields[holder] only for its discovered slot."
    },
    {
      "key": "partner_document_iban",
      "value": "",
      "type": "string",
      "description": "Bank certificate IBAN; use a valid checksum in an approved test."
    },
    {
      "key": "partner_document_name",
      "value": "",
      "type": "string",
      "description": "Document metadata name; use the discovered field definition."
    },
    {
      "key": "partner_document_street",
      "value": "",
      "type": "string",
      "description": "Document metadata street; use the discovered field definition."
    },
    {
      "key": "partner_document_district",
      "value": "",
      "type": "string",
      "description": "Document metadata district; use the discovered field definition."
    },
    {
      "key": "partner_document_building_number",
      "value": "",
      "type": "string",
      "description": "Document metadata building_number; use the discovered field definition."
    },
    {
      "key": "partner_document_secondary_number",
      "value": "",
      "type": "string",
      "description": "Document metadata secondary_number; use the discovered field definition."
    },
    {
      "key": "partner_document_postal_code",
      "value": "",
      "type": "string",
      "description": "Document metadata postal_code; use the discovered field definition."
    },
    {
      "key": "partner_document_city",
      "value": "",
      "type": "string",
      "description": "Document metadata city; use the discovered field definition."
    },
    {
      "key": "partner_document_country",
      "value": "",
      "type": "string",
      "description": "Document metadata country; use the discovered field definition."
    }
  ]
}
