# Stream App API Documentation > Complete API documentation and guides for Stream App ## Quick Start for LLMs > Read this section first. It is written for AI agents and coding assistants integrating with Stream (streampay.sa), a Saudi payment platform for payment links, invoices, subscriptions, installments, coupons, and a hosted customer billing portal. Everything below is derived from the guides and API reference listed in the Table of Contents further down. ### Mental model (read before writing any code) - **Default flow:** Your server -> `POST /api/v2/payment_links` -> redirect the customer (or embed) to the returned `url` -> Stream hosted checkout -> customer lands on your `success_redirect_url` / `failure_redirect_url` -> **you verify server-side** and/or receive webhooks. - **Payment links are the recommended way to collect money.** The invoice and subscription create endpoints say so themselves: "For most use cases, use the Checkout/Payment Link API instead." Do not default to `POST /invoices` or `POST /subscriptions`. - **Entities are created only after a successful payment.** A paid link creates: - one-time products -> an **invoice** + **payment(s)** - recurring products -> a **subscription** + initial **invoice** + **payment** - A failed attempt creates nothing (no invoice, payment, or subscription). - **Recurrence lives on the product, not the link.** Create the product as one-time or recurring first, then reference it by `product_id`. - **"Consumer" = "customer".** The API says consumer; the dashboard says customer. The consumer `id` is what you pass as `organization_consumer_id`. ### Base URL and authentication - Base URL: `https://stream-app-service.streampay.sa/api/v2` - Header on every request: `x-api-key: ` - Build the token: `echo -n 'api-key:api-secret' | base64` - Create the key pair in the dashboard under Settings -> API Keys. The secret is shown at creation; store it like a password. - Never put the key pair or token in browser/mobile code. All calls go through your backend. - Optional header `x-branch-id: ` selects the branch. If omitted, the key's default branch is used. Keys only reach branches they were granted (or all branches if created with `is_all_branches`). Unauthorized branch -> 4xx. - The MCP server uses a different header: `Authorization: Bearer ` (see MCP section). ### The five-step integration **1. (Optional) Create a consumer** - `POST /api/v2/consumers` Only `name` is required. Recommended: `phone_number` (E.164, e.g. `+966501234567`) or `email` so Stream can notify them, plus `external_id` for your own ID. ```bash curl -X POST https://stream-app-service.streampay.sa/api/v2/consumers \ -H "x-api-key: $STREAM_TOKEN" -H "Content-Type: application/json" \ -d '{"name":"Ahmad Ali","email":"ahmad@example.com","phone_number":"+966501234567","external_id":"cust_12345"}' ``` Returns the consumer; keep `id`. Duplicate phone/email -> `DUPLICATE_CONSUMER`: list consumers and reuse the existing `id`. **2. Have a product** - `POST /api/v2/products` (one-time or recurring). Keep its `id`. A product can hold one active price per currency (`POST /products/{product_id}/prices` adds another currency). **3. Create the payment link** - `POST /api/v2/payment_links` ```bash curl -X POST https://stream-app-service.streampay.sa/api/v2/payment_links \ -H "x-api-key: $STREAM_TOKEN" -H "Content-Type: application/json" \ -d '{ "name": "Order 789", "items": [{"product_id": "PRODUCT_UUID", "quantity": 1}], "contact_information_type": "PHONE", "currency": "SAR", "max_number_of_payments": 1, "organization_consumer_id": "CONSUMER_UUID", "success_redirect_url": "https://example.com/success", "failure_redirect_url": "https://example.com/failure", "custom_metadata": {"order_id": "789"} }' ``` - Response includes `url`, `id`, `status` (e.g. `ACTIVE`), `amount` (decimal string like `"2500.00"`), `currency`. Redirect the customer to `url`. - Omit `organization_consumer_id` for a shareable link: each payer enters their own details and a consumer is auto-created. Use a higher `max_number_of_payments` for these (docs example: 100). - Set `organization_consumer_id` + `max_number_of_payments: 1` for a link tied to one known customer; the checkout skips the details form. **4. Handle the redirect, then verify.** Stream appends query params (`status`, `message`, `payment_link_id`, and on success `invoice_id`, `payment_id`, `consent_id`, `organization_consumer_id`). **Do not trust them.** Fetch `GET /api/v2/invoices/{invoice_id}` and check `status`, `amount`, `currency` against your own order before fulfilling. **5. Confirm asynchronously with webhooks** (recommended) and/or poll `GET /api/v2/payments/{id}` and `GET /api/v2/subscriptions/{id}`. The `status` field on the fetched object is the source of truth. ### Embedded checkout (instead of redirect) Create the payment link on your server, pass only the `url` to the page: ```html
``` Optional: `minHeightPx` (280), `maxHeightPx` (920), `vhCapPx` (800), `vhFraction` (0.7). Apple Pay in embedded mode requires hosting Stream's domain-association file at `/.well-known/apple-developer-merchantid-domain-association` on your domain and contacting Stream support to register you. ### Webhooks in 60 seconds - Register endpoints in the dashboard (Settings -> Webhooks) and pick event types. There is also a `POST /api/v2/webhooks` endpoint. - Body shape: `event_type`, `entity_type`, `entity_id`, `entity_url`, `status`, `data`, `timestamp`. `data.metadata` echoes your `custom_metadata`. - Headers: `X-Webhook-Event`, `X-Webhook-Entity-Type`, `X-Webhook-Entity-ID`, `X-Webhook-Timestamp`, `X-Webhook-Signature` (`t={timestamp},v1={signature}`). - **Verify the signature:** HMAC-SHA256 over the exact string `"{timestamp}.{raw_request_body}"` using the webhook's `secret_key`, hex digest, constant-time compare to `v1`. Use the **raw bytes** of the body, not re-serialized JSON. ```python import hmac, hashlib def verify(secret: str, raw_body: bytes, header: str) -> bool: parts = dict(p.split("=", 1) for p in header.split(",")) msg = f"{parts['t']}.{raw_body.decode()}" expected = hmac.new(secret.encode(), msg.encode(), hashlib.sha256).hexdigest() return hmac.compare_digest(expected, parts["v1"]) ``` - Respond with any 2xx quickly. Non-2xx triggers up to 5 retries at roughly 5 min, 30 min, 2 h, 6 h, 12 h; after that the delivery is marked failed. ### Testing - Use the sandbox environment with Moyasar test cards. Name: any two words. Expiry: any future date. CVC: any 3 digits (4 for AMEX). - Success: Mada `4201320111111010`, Visa `4111111111111111`, Mastercard `5421080101000000`, AMEX `340000000900000`. - Insufficient funds: Mada `4201320000311101`, Visa `4123120001090000`, Mastercard `5457210001000092`, AMEX `340033000000000`. - Generic decline: Mada `4201321234411220`, Visa `4123120001090109`. - 3DS failure cases exist for Visa only (see Testing Cards guide). - **Apple Pay in sandbox is driven by amount:** 200.00-300.00 SAR succeeds; 1000.00-1700.00 SAR hits assorted failures; **any other amount fails.** Do not use random amounts when testing Apple Pay. --- ## Tips and Tricks for LLMs ### Hard rules (violating these causes real bugs or lost money) 1. **Never mix one-time and recurring products in one payment link.** Split into two links tied to one internal order (store a shared order reference in `custom_metadata` or your DB), run them sequentially, and mark the order complete only after both succeed. 2. **Never fulfill an order from redirect query params alone.** Verify via `GET /invoices/{invoice_id}` (status, amount, currency) or a verified webhook. 3. **Never expose the key pair, the Base64 token, or a webhook `secret_key` client-side.** Embedded checkout only needs the link `url`. 4. **Always verify `X-Webhook-Signature`** and reject missing or invalid ones. 5. **Make webhook handlers idempotent.** Retries and multi-event flows mean you will see duplicates and out-of-order delivery. Key on `entity_id` + `event_type`. 6. **Do not use the redirect `id` param as a Stream ID.** It is the payment gateway's ID, for support debugging only. Use `payment_id` or `invoice_id`. ### Choosing the right endpoint | Goal | Use | |---|---| | Collect a one-off payment | `POST /payment_links` with one-time product(s) | | Start a subscription | `POST /payment_links` with recurring product(s) | | Take payment via your own page | `POST /payment_links` + Embedded Checkout | | Record money received offline (cash, bank transfer, etc.) | Create invoice, then `POST /payments/{id}/mark-paid` | | Send customer to self-service billing | `POST /consumer_portal/sessions` | | Charge a saved card on demand | `POST /payments/auto-charge-on-demand/{payment_id}` (restricted; only some orgs) | | Pause billing | `POST /subscriptions/{id}/freeze` | | Reverse a payment | `POST /payments/{id}/refund` | ### Consumers - Check for an existing consumer before creating one (match by `external_id`, or `GET /consumers?search_term=...`) to avoid `DUPLICATE_CONSUMER`. - Phone numbers must be E.164. `+966501234567`, not `0501234567`. - `communication_methods` accepts `WHATSAPP`, `EMAIL`, `SMS`. Provide at least a phone or email, otherwise Stream cannot notify the customer. - `DELETE` on a consumer is a soft delete (`is_deleted`). ### Payment links - `contact_information_type` is `PHONE` or `EMAIL` (shown in docs examples) and controls which contact the checkout collects/uses for login. - Put your own references in `custom_metadata` (arbitrary JSON, nested allowed). It comes back in webhook `data.metadata`, which is the cleanest way to join Stream events to your orders. - `language=en` or `language=ar` as a query param on the link URL switches the checkout UI language only. Default is Arabic (or the org's configured language). - Installments: pass `payment_methods: {"installment": true|false}` on the link to override the org default. Omit `payment_methods` to inherit the org setting. - Link coupons and status are managed after creation with `PATCH`-style endpoints: Update Payment Link Coupons, Update Payment Link Status. To retire a link, update its status rather than deleting. - Failed payment-link attempts produce **no** invoice/payment/subscription. To catch these, subscribe to `PAYMENT_LINK_PAY_ATTEMPT_FAILED`, not `PAYMENT_FAILED`. - Redirect `status` values: `paid`, `pending`, `failed`, `failed_internal_error`. `failed` = definite decline, let the payer retry. `failed_internal_error` = unclear (timeout etc.); money may or may not have moved, so tell the payer to contact support and reconcile via the API before retrying or refunding. ### Installments - Customers choose 2, 3, or 4 installments at checkout. **Installments are disabled automatically for recurring products.** - Each installment is its own payment with its own due date. Default split period is monthly; it cannot be changed via API or dashboard (contact support). - Minimum is **100 SAR per installment**. A 250 SAR order allows 2 installments but not 3. This minimum is also support-only to change. - Rounding remainder goes to the **last** installment (999.98 / 3 -> 333.33, 333.33, 333.32). - Webhooks: one `PAYMENT_SUCCEEDED` per installment paid; `INVOICE_COMPLETED` only fires once **every** installment is paid. - Invoice-level installment settings are configured in the dashboard (invoices are created from the UI per the guide); payment-link defaults live in Settings -> Payment Settings. ### Subscriptions - Cancel (`POST /subscriptions/{id}/cancel`): an `ACTIVE` subscription is **scheduled to cancel at period end** and stays active until then. `INACTIVE`, `TRIALING`, and `TRIAL_PENDING` subscriptions cancel **immediately**. Pass `cancel_related_invoices` to also cancel ongoing invoices. Undo a pending cancellation with the Uncancel endpoint. - Update (`PUT /subscriptions/{id}`): - Items, subscription-level coupons, and recurring interval changes are **deferred to `current_period_end`** as a "pending change". The response includes `pending_change` with `next_invoice_preview` and a per-line diff. - If the next-cycle invoice already exists and is unpaid, it is cancelled and reissued at the new amount. - Description, auto-cancel cycle count (`until cycle number`), and payment-method overrides apply **immediately**. - You cannot change the payer. Cancel and create a new subscription instead. - Revert a scheduled change with `DELETE /subscriptions/{id}/pending-change` (returns 200 even if nothing was scheduled). - Freeze pauses **invoice generation** for a date range and auto-resumes afterward. Freezes have their own list / update / delete endpoints. - Renewal webhook sequence: `INVOICE_CREATED` -> `PAYMENT_SUCCEEDED` -> `INVOICE_COMPLETED` (plus `SUBSCRIPTION_CYCLE_RENEWED_SUCCESSFULLY`). On `INVOICE_COMPLETED`, check `subscription_id` in the payload to recognize a renewal. Failed automatic renewals emit `SUBSCRIPTION_CYCLE_RENEWAL_FAILED`. - Plan-change event family: `SUBSCRIPTION_PLAN_CHANGE_SCHEDULED` (deferred), `..._CHANGED` (deferred change applied), `..._CHANGE_CANCELED`, `..._CHANGE_INVOICE_REISSUED`, and `SUBSCRIPTION_PLAN_UPDATED` (immediate change such as seats, add-ons, cycle count). ### Payments, refunds, and manual payments - Multiple refunds per payment are supported. Partial refund -> payment status `PARTIALLY_REFUNDED` + `PAYMENT_PARTIALLY_REFUNDED`. Cumulative total reaches the payment amount -> `REFUNDED` + `PAYMENT_REFUNDED`. **The invoice status does not change on refund.** Subscribe to both refund events if you handle partials. - Webhook refund payloads carry `amount_refunded` (this refund) and `total_amount_refunded` (cumulative). - If a payment belongs to a shared charge, set `payment_is_part_of_related_set: true` on the refund request to spread the refund across the related payments in invoice order. - Refund errors: `PAYMENT_REFUNDED_ALREADY` (duplicate, safe to treat as done), `PAYMENT_REFUNDED_FAILED` (processor failure, retryable later). - `mark-paid` supports methods `CASH`, `BANK_TRANSFER`, `CARD`, `QURRAH`. Omit `amount` (or equal to payment amount) for full. A partial amount reduces the original payment, marks it `SUCCEEDED`, and creates a new `PENDING` `SPLIT_REMAINDER` payment for the rest; the remainder must be more than 1 in the payment currency, and partial is not allowed while `UNDER_REVIEW`. The invoice completes only when every payment is paid. - Invoice in-place edits (`PATCH /invoices/{id}/inplace`) are for small changes such as description or scheduled date. A finalised invoice rejects actions with `INVOICE_FINALISED`. - Products and coupons used by a finalized invoice cannot be edited (`PRODUCT_USED_IN_FINALIZED_INVOICE`, `COUPON_USED_IN_FINALIZED_INVOICE`). Create a new one instead. Deleting a product price is a soft delete (archive). ### Lists, pagination, and filtering - Query params: `page` (starts at 1), `limit` (max 100), `sort_field` (default `created_at`), `sort_direction` (`asc`/`desc`, default `desc`), `search_term` (free text across names/IDs/descriptions). - Array filters repeat the key: `statuses=PENDING&statuses=PROCESSING`. In Python `requests`, pass a list. Resource-specific filters exist (e.g. `invoice_id` on payments). - Response: `{"data": [...], "pagination": {"total_count", "max_page", "current_page", "limit", "has_next_page", "has_previous_page"}}`. Loop on `has_next_page`; use `limit=100` to minimize calls. Note: the guide describes `total_count` as the count on the current page, so rely on `has_next_page` / `max_page` rather than assuming it is a global total. - When you apply filters, pagination metadata reflects the filtered set. ### Errors - Handled errors use `{"error": {"code": "...", "message": "...", "additional_info": "..."}}`. Branch on `code`, never on `message`. - Validation failures (HTTP 422) can instead return FastAPI-style `{"detail": [{"loc": [...], "msg": "...", "type": "..."}]}`. Handle **both** shapes. - Status mapping: 400 bad request, 401 unauthorized, 403 forbidden / permission, 404 not found, 410 gone, 422 unprocessable or duplicate. - Codes you should handle explicitly: `INVALID_PARAMETERS`, `DUPLICATE_CONSUMER`, `DUPLICATE_PAYMENT`, `PHONE_ALREADY_REGISTERED`, `INVOICE_FINALISED`, `PAYMENT_REFUNDED_ALREADY`, `PAYMENT_REFUNDED_FAILED`, `PERMISSION_FORBIDDEN`, `PRODUCT_USED_IN_FINALIZED_INVOICE`, `COUPON_USED_IN_FINALIZED_INVOICE`, `STREAM_ERROR`, `STREAM_UNKNOWN_ERROR`. On `STREAM_ERROR` / `STREAM_UNKNOWN_ERROR`, log `additional_info` and escalate to support rather than blind-retrying a money-moving call. ### Customer portal - Backend calls `POST /api/v2/consumer_portal/sessions` with `organization_consumer_id` (HTTP 201 -> `url`). The token is **short-lived and single-use**, so generate a fresh session each time the customer clicks "Manage billing". Do not cache or email the URL. - Optional body fields: `return_url` (a back-link hint only; Stream does **not** auto-redirect) and `subscription_id` (open directly on one subscription). The URL can be used for a redirect or an iframe. - The portal can only offer plan switches and add-ons if the dashboard catalog is configured: **product switch groups** (only members of the same group can replace each other; mixed MONTHLY/YEARLY allowed) and **add-on mappings** (which base products make an add-on eligible), plus the Customer Portal permission toggles. If the portal shows nothing to switch, the cause is configuration, not the API. - Subscriptions with subscription-level coupons generally cannot be edited from the portal. Proration is computed by Stream and excludes the current day; do not reimplement it. ### Handling your own customer notifications By default Stream notifies consumers (confirmations, invoice updates, subscription changes). To own all messaging: (1) ask Stream support to enable the setting that blocks default consumer notifications, (2) use webhooks for event-driven messages, (3) poll the List Payments / Invoices / Subscriptions endpoints with filters for scheduled messages like reminders and overdue notices. You cannot self-serve step 1. ### Branches Requests are scoped to one branch. Use `x-branch-id` to target a branch; without it the key's default branch is used. If resources seem "missing", you are probably querying the wrong branch. ### MCP server (for AI agents) - Hosted at `https://mcp.streampay.sa/mcp`. Config key `"url"`, plus `"headers": {"Authorization": "Bearer "}` for operational tools. - The resource `stream://docs/openapi` exposes the **full, current OpenAPI spec and needs no API key**. Read it before guessing request fields; this documentation set links endpoint pages whose rendered Markdown does not include the full request/response schemas. - Tool groups: payment links, customers, products, coupons, invoices (create, list, get, send, void), payments (list, get, refund). Tool names (e.g. `create_payment_link`, `refund_payment`) are not the same as REST paths. Note that some MCP descriptions (for example ZATCA-compliant invoices) are tool-level descriptions, so confirm behavior in the OpenAPI spec. ### SDKs TypeScript SDK (`StreamSDK.init(process.env.STREAM_API_KEY!)`) and an Express SDK (a `Checkout({ apiKey, ... })` route handler). Full docs live in their GitHub repositories, linked at the bottom of the Table of Contents. SDKs take the same `x-api-key` token. ### Gotchas and doc inconsistencies to be aware of - **The Installments link in the Table of Contents is malformed** (`https://docs.streampay.sa/docs/guides/installments.md`). The correct path is most likely `https://docs.streampay.sa/docs/guides/installments.md`. The installment facts above come from the same guide as published in the developer-docs full export. - The Authentication guide says "HTTP Basic Authentication" but the actual mechanism is the **`x-api-key` header carrying the Base64 token**, not an `Authorization: Basic` header. Use `x-api-key`. - The Authentication guide's curl example posts `{"name","amount"}` to `/payment_links`; that is a placeholder. A real payment link requires `items` with `product_id`s, as in the Getting Started examples. - The Pagination guide's example hits `/api/v2/customers`; the real resource path is **`/api/v2/consumers`**. - The Branches guide example calls `/api/v2/user`; the identity endpoint listed in the API reference is "Get User And Organization Info" (`/api/v2/me`-style). Check the reference for the exact path. - The branch create path may differ between exports (`/api/v2/branch` vs the public reference's "Create Branch"). Confirm in the OpenAPI spec. - Sandbox vs production: the docs reference a sandbox environment and test cards but do not publish a separate sandbox base URL. Use the sandbox-mode key/dashboard Stream gives you, or ask support, rather than inventing a hostname. - Amounts in responses appear as **decimal strings in SAR** (e.g. `"2500.00"`). Compare as decimals, not floats. - When unsure about a field name, enum value, or required property, do not guess. Read `stream://docs/openapi` via the MCP server or the endpoint's page in the Table of Contents. ### Suggested agent workflow for "add Stream payments to my app" 1. Ask which flow: one-time, subscription, installments, or embedded/redirect. Confirm whether the cart ever mixes one-time and recurring items. 2. Create (or look up) the product(s), and the consumer if the customer is known. 3. Create the payment link from the backend; return only `url` to the client. 4. Implement the success/failure routes: read `invoice_id`, call `GET /invoices/{id}`, check `status`/`amount`/`currency`, then fulfill. 5. Implement the webhook endpoint with raw-body signature verification, idempotency, and fast 2xx. Subscribe to at minimum `PAYMENT_SUCCEEDED`, `PAYMENT_FAILED`, `INVOICE_COMPLETED`, plus `PAYMENT_PARTIALLY_REFUNDED` / `PAYMENT_REFUNDED` and the `SUBSCRIPTION_*` events if you sell subscriptions. 6. Test with the sandbox cards above (and Apple Pay amount ranges) before going live. --- ## Table of Contents - [Getting Started with Stream](https://dev-docs.streampay.sa/docs/guides/GETTING_STARTED.md) - [Pagination & Filtering](https://dev-docs.streampay.sa/docs/guides/pagination-and-filtering.md): Pagination helps you efficiently navigate, sort, and filter large collections of data without fetching everything at once. - [Webhooks](https://dev-docs.streampay.sa/docs/guides/webhooks.md) - [Testing Cards](https://dev-docs.streampay.sa/docs/guides/testing-cards.md): In order to test your application without having to go live with cards and accounts, you can use [Moyasar's testing cards](https://docs.moyasar.com... - [Installments](https:/dev-docs.streampay.sa//docs/guides/installments.md) - [Authentication](https://dev-docs.streampay.sa/docs/guides/authentication.md) - [Branches in the API](https://dev-docs.streampay.sa/docs/guides/branches.md): API requests are always scoped to a single branch. When creating an API key, you specify which branches it can access. For each request, you can se... - [Customer Portal (Hosted Billing)](https://dev-docs.streampay.sa/docs/guides/customer-portal.md) - [Embedded Checkout](https://dev-docs.streampay.sa/docs/guides/embedded-checkout.md): Render a payment link checkout in-page with the Stream Embed SDK. Create a payment link via the API first, then pass the response **`url`** into `p... - [Stream API Errors](https://dev-docs.streampay.sa/docs/guides/errors.md): This page documents the error response format and the standardized error codes returned by Stream API endpoints. The goal is to provide a stable, p... - [Handling Your Own Notifications](https://dev-docs.streampay.sa/docs/guides/handling-your-own-notifications.md) - [Stream MCP Server](https://dev-docs.streampay.sa/docs/guides/mcp-server.md): MCP (Model Context Protocol) is a standard way for AI clients to call tools and read resources from external systems. - [Accept Consent](https://dev-docs.streampay.sa/docs/api/accept-consent-api-v-2-consumer-portal-consent-consent-id-accept-post.md): Accept a payment consent and initiate the payment flow. - [Accept Invoice Batch](https://dev-docs.streampay.sa/docs/api/accept-invoice-batch-api-v-2-invoice-batches-batch-id-accept-post.md): Accept Invoice Batch - [Accept Scope Request](https://dev-docs.streampay.sa/docs/api/accept-scope-request-api-v-2-connected-apps-scope-requests-scope-request-id-accept-post.md): Accept Scope Request - [Accounting Provider Oauth Callback](https://dev-docs.streampay.sa/docs/api/accounting-provider-oauth-callback-api-v-2-accounting-provider-callback-get.md): OAuth redirect target called by the provider itself -- authenticated via `state` alone, not a bearer token. - [Activate Accounting Provider](https://dev-docs.streampay.sa/docs/api/activate-accounting-provider-api-v-2-accounting-provider-activate-post.md): Re-activate a configured provider after verifying its stored credentials still work. - [Activate Pgw Provider](https://dev-docs.streampay.sa/docs/api/activate-pgw-provider-api-v-2-organization-settings-pgw-providers-activate-post.md): Switch this organization's active payment gateway. - [Activate Pricing Table](https://dev-docs.streampay.sa/docs/api/activate-pricing-table-api-v-2-pricing-tables-pricing-table-id-activate-post.md): Activate Pricing Table - [Activate Subscription With Payment](https://dev-docs.streampay.sa/docs/api/activate-subscription-with-payment-api-v-2-consumer-portal-profile-subscription-subscription-id-activate-post.md): Activate an inactive subscription by paying its latest invoice with the attached card token. - [Activities](https://dev-docs.streampay.sa/docs/api/activities-api-v-1-invoices-invoice-id-activities-get.md): Get activity history for an invoice. - [Add Card](https://dev-docs.streampay.sa/docs/api/add-card-api-v-2-consumer-portal-profile-cards-post.md): Add a new card for the authenticated consumer. Two gateway-dependent flows share this endpoint. - [Add Product Price](https://dev-docs.streampay.sa/docs/api/v2-products-prices-add.md): Add a new price to a product in a different currency. - [Approve Connection Request](https://dev-docs.streampay.sa/docs/api/approve-connection-request-api-v-2-connected-apps-connection-requests-request-id-approve-post.md): Approve Connection Request - [Auto Charge On Demand](https://dev-docs.streampay.sa/docs/api/v2-payments-auto-charge-on-demand.md): Charge a payment using the consumer's latest tokenized card. - [Callback](https://dev-docs.streampay.sa/docs/api/callback-api-v-2-invoices-consent-callback-get.md): Handle callback from open banking payment consent flow. - [Cancel](https://dev-docs.streampay.sa/docs/api/cancel-api-v-1-invoices-invoice-id-cancel-post.md): Cancel an invoice and optionally cancel its related subscription. - [Cancel an invoice](https://dev-docs.streampay.sa/docs/api/v2-invoices-cancel.md): Cancels an invoice and marks it as `CANCELED`. Use this when the invoice should no longer be collected or shown as payable. - [Cancel Metered Subscription](https://dev-docs.streampay.sa/docs/api/cancel-metered-subscription-api-v-2-consumer-portal-metered-subscription-metered-subscription-id-cancel-post.md): Cancel a metered subscription from the consumer side. - [Cancel Pending Change](https://dev-docs.streampay.sa/docs/api/cancel-pending-change-api-v-2-consumer-portal-profile-subscription-subscription-id-pending-change-delete.md): Cancel a previously-scheduled deferred plan change for the authenticated consumer. - [Cancel Scheduled Subscription Plan Change](https://dev-docs.streampay.sa/docs/api/v2-subscriptions-pending-change-cancel.md): Cancel a previously-scheduled deferred plan change. - [Cancel Subscription (POST /api/v2/consumer_portal/subscription/{subscription_id}/cancel)](https://dev-docs.streampay.sa/docs/api/cancel-subscription-api-v-2-consumer-portal-subscription-subscription-id-cancel-post.md): Cancel a subscription from the consumer side. - [Cancel Subscription (POST /api/v2/subscriptions/{subscription_id}/cancel)](https://dev-docs.streampay.sa/docs/api/v2-subscriptions-cancel.md): Schedule or complete cancellation and optionally cancel related invoices. - [Change Invoice Card](https://dev-docs.streampay.sa/docs/api/change-invoice-card-api-v-2-consumer-portal-profile-invoice-invoice-id-change-card-put.md): Change the card used for auto-renewal payments on an invoice. - [Change Metered Subscription Card](https://dev-docs.streampay.sa/docs/api/change-metered-subscription-card-api-v-2-consumer-portal-profile-metered-subscriptions-metered-subscription-id-change-card-put.md): Change the card used for a metered subscription. - [Change Password](https://dev-docs.streampay.sa/docs/api/change-password-api-v-2-user-change-password-post.md): Change user password. - [Change Subscription Card](https://dev-docs.streampay.sa/docs/api/change-subscription-card-api-v-2-consumer-portal-profile-subscription-subscription-id-change-card-put.md): Change the card used for auto-renewal payments on a subscription. - [Check Eligibility](https://dev-docs.streampay.sa/docs/api/check-eligibility-api-v-2-bnpl-eligibility-post.md): Check Eligibility - [Check Nafath Verification Request Status](https://dev-docs.streampay.sa/docs/api/check-nafath-verification-request-status-api-v-2-public-on-boarding-check-nafath-verification-status-post.md): Check the status of a Nafath identity verification request. - [Check Payment Link Bnpl Eligibility](https://dev-docs.streampay.sa/docs/api/check-payment-link-bnpl-eligibility-api-v-2-consumer-portal-payment-link-payment-link-id-bnpl-eligibility-post.md): Check Payment Link Bnpl Eligibility - [Check a referral code](https://dev-docs.streampay.sa/docs/api/check-referral-code-api-v-2-referral-codes-code-get.md): Used by the sign-up form to validate a code before the merchant can submit. Returns 404 for an unknown code and 400 for one that is no longer active. - [Consumer Profile Generate Mfa For Login](https://dev-docs.streampay.sa/docs/api/consumer-profile-generate-mfa-for-login-api-v-2-authentication-consumer-profile-generate-login-mfa-post.md): Generate MFA code for consumer profile login. - [Consumer Profile Login Mfa For Access Token](https://dev-docs.streampay.sa/docs/api/consumer-profile-login-mfa-for-access-token-api-v-2-authentication-consumer-profile-submit-login-mfa-post.md): Verify consumer profile MFA code and receive access token. - [Consumer Update Subscription](https://dev-docs.streampay.sa/docs/api/consumer-update-subscription-api-v-2-consumer-portal-profile-subscription-subscription-id-put.md): Consumer-only subscription update flow (items/quantities only). - [Create Account](https://dev-docs.streampay.sa/docs/api/create-account-api-v-2-accounts-post.md): Create a new bank account for the organization. - [Create (POST /api/v1/invoices)](https://dev-docs.streampay.sa/docs/api/create-api-v-1-invoices-post.md): Create a new invoice. - [Create (POST /api/v2/api-keys)](https://dev-docs.streampay.sa/docs/api/create-api-v-2-api-keys-post.md): Create a new API key for programmatic access. - [Create (POST /api/v2/payments)](https://dev-docs.streampay.sa/docs/api/create-api-v-2-payments-post.md): Create a new payment for an invoice. - [Create (POST /api/v2/public/waitlist)](https://dev-docs.streampay.sa/docs/api/create-api-v-2-public-waitlist-post.md): Add a user to the waitlist. - [Create (POST /api/v2/support)](https://dev-docs.streampay.sa/docs/api/create-api-v-2-support-post.md): Create a new support ticket. - [Create (POST /api/v2/webhooks)](https://dev-docs.streampay.sa/docs/api/create-api-v-2-webhooks-post.md): Create a new webhook endpoint to receive event notifications. - [Create Branch](https://dev-docs.streampay.sa/docs/api/v2-branches-create.md): Create a new branch for the organization. - [Create Consumer (POST /api/v1/consumers)](https://dev-docs.streampay.sa/docs/api/create-consumer-api-v-1-consumers-post.md): Create a new consumer with contact information and payment details. - [Create Consumer (POST /api/v2/consumers)](https://dev-docs.streampay.sa/docs/api/v2-consumers-create.md): Create a new consumer with contact information and payment details. - [Create Coupon](https://dev-docs.streampay.sa/docs/api/v2-coupons-create.md): Create a new coupon with discount details and active/inactive status. - [Create Discount Rule](https://dev-docs.streampay.sa/docs/api/create-discount-rule-api-v-2-organization-settings-discount-rules-post.md): Create Discount Rule - [Create Form (POST /api/v2/forms)](https://dev-docs.streampay.sa/docs/api/create-form-api-v-2-forms-post.md): Create Form - [Create Form (POST /api/v2/payment_link_forms)](https://dev-docs.streampay.sa/docs/api/create-form-api-v-2-payment-link-forms-post.md): Create Form - [Create Installment Rule](https://dev-docs.streampay.sa/docs/api/create-installment-rule-api-v-2-organization-settings-installment-rules-post.md): Create Installment Rule - [Create Invite For A User To Join The Organization By Email](https://dev-docs.streampay.sa/docs/api/v2-organization-invite-create.md): Send an email invitation for a user to join the organization. - [Create Invoice](https://dev-docs.streampay.sa/docs/api/v2-invoices-create.md): Create a new invoice with items and payment details. - [Create Metered Subscription](https://dev-docs.streampay.sa/docs/api/v2-metered-subscriptions-create.md): Create a new metered subscription linking a METERED product to an organization consumer. The subscription is active immediately when its start time... - [Create Organization](https://dev-docs.streampay.sa/docs/api/create-organization-api-v-2-organization-post.md): Create a new organization and associate it with the current user. - [Create Payment Intent](https://dev-docs.streampay.sa/docs/api/create-payment-intent-api-v-2-consumer-portal-payment-intent-post.md): Create a payment intent before calling Moyasar. - [Create Payment Link](https://dev-docs.streampay.sa/docs/api/v2-payment-links-create.md): Create a new checkout/payment link for collecting payments. - [Create Payment Link Form Submission](https://dev-docs.streampay.sa/docs/api/create-payment-link-form-submission-api-v-2-consumer-portal-payment-link-payment-link-id-form-submissions-post.md): Create a DRAFT form submission for a payment link so the payer can resume via submission id. - [Create Payment Link Intent](https://dev-docs.streampay.sa/docs/api/create-payment-link-intent-api-v-2-consumer-portal-payment-link-intent-post.md): Create a payment link intent before calling payment gateway. - [Create a consumer portal session](https://dev-docs.streampay.sa/docs/api/v2-consumer-portal-sessions-create.md): Creates a short-lived, single-use portal session token for a merchant-owned consumer. The returned URL can be used to redirect the consumer or embe... - [Create Pricing Table](https://dev-docs.streampay.sa/docs/api/create-pricing-table-api-v-2-pricing-tables-post.md): Create an embeddable pricing table backed by existing products + prices. - [Create Pricing Table Checkout](https://dev-docs.streampay.sa/docs/api/create-pricing-table-checkout-api-v-2-public-pricing-tables-pricing-table-id-checkout-post.md): Create a checkout session backed by a one-shot Moyasar PaymentLink. - [Create Pricing Table Customer Session](https://dev-docs.streampay.sa/docs/api/create-pricing-table-customer-session-api-v-2-pricing-tables-pricing-table-id-customer-sessions-post.md): Issue a short-lived signed `client_secret` for the embed. - [Create Product](https://dev-docs.streampay.sa/docs/api/v2-products-create.md): Create a new product with pricing and description. - [Create Product Switch Group](https://dev-docs.streampay.sa/docs/api/create-product-switch-group-api-v-2-product-switch-groups-post.md): Create a product switch group and optional initial product memberships. - [Create Quantity Change Group](https://dev-docs.streampay.sa/docs/api/create-quantity-change-group-api-v-2-quantity-changes-post.md): Create Quantity Change Group - [Create Scope Request](https://dev-docs.streampay.sa/docs/api/create-scope-request-api-v-2-connected-apps-connections-connection-id-scope-requests-post.md): 201 for a new request; 200 with the pending one, unchanged, when there already is one. - [Create Scope Request From App](https://dev-docs.streampay.sa/docs/api/create-scope-request-from-app-api-v-2-connected-apps-scope-requests-post.md): The assistant asks for write access on the connection it is calling under. - [Create Subscription](https://dev-docs.streampay.sa/docs/api/v2-subscriptions-create.md): Create a new subscription with items, coupons, and payment methods. - [Data Entry](https://dev-docs.streampay.sa/docs/api/data-entry-api-v-2-kyb-data-entry-post.md): Submit confirmed business/owner data (data entry step). - [Deactivate Accounting Provider](https://dev-docs.streampay.sa/docs/api/deactivate-accounting-provider-api-v-2-accounting-provider-deactivate-post.md): Deactivate a configured provider. Stream will never push to it while inactive. - [Deactivate Metered Subscription](https://dev-docs.streampay.sa/docs/api/v2-metered-subscriptions-deactivate.md): Deactivate a metered subscription by setting its end time to now. This subscription stops being billable after this exact time. Note: deactivated s... - [Deactivate Pricing Table](https://dev-docs.streampay.sa/docs/api/deactivate-pricing-table-api-v-2-pricing-tables-pricing-table-id-deactivate-post.md): Deactivate Pricing Table - [Delete Account](https://dev-docs.streampay.sa/docs/api/delete-account-api-v-2-accounts-account-id-delete.md): Delete a bank account from the organization. - [Delete](https://dev-docs.streampay.sa/docs/api/delete-api-v-2-webhooks-webhook-id-delete.md): Delete a webhook endpoint. - [Delete Branch](https://dev-docs.streampay.sa/docs/api/v2-branches-delete.md): Delete a branch from the organization. - [Delete By Api Key](https://dev-docs.streampay.sa/docs/api/delete-by-api-key-api-v-2-api-keys-api-key-delete.md): Revoke an API key. - [Delete Connection](https://dev-docs.streampay.sa/docs/api/delete-connection-api-v-2-connected-apps-connections-connection-id-delete.md): Delete Connection - [Delete Consumer (DELETE /api/v1/consumers/{org_consumer_id})](https://dev-docs.streampay.sa/docs/api/delete-consumer-api-v-1-consumers-org-consumer-id-delete.md): Delete a consumer from the organization. - [Delete Consumer (DELETE /api/v2/consumers/{consumer_id})](https://dev-docs.streampay.sa/docs/api/v2-consumers-delete.md): Delete a consumer from the organization. - [Delete Consumer Card](https://dev-docs.streampay.sa/docs/api/delete-consumer-card-api-v-2-consumer-portal-profile-cards-card-id-delete.md): Delete a card if it's not associated with active subscriptions or ongoing installment invoices. - [Delete Coupon](https://dev-docs.streampay.sa/docs/api/v2-coupons-delete.md): Delete a coupon from the organization. - [Delete Discount Rule](https://dev-docs.streampay.sa/docs/api/delete-discount-rule-api-v-2-organization-settings-discount-rules-rule-id-delete.md): Delete Discount Rule - [Delete Form (DELETE /api/v2/forms/{form_id})](https://dev-docs.streampay.sa/docs/api/delete-form-api-v-2-forms-form-id-delete.md): Delete Form - [Delete Form (DELETE /api/v2/payment_link_forms/{form_id})](https://dev-docs.streampay.sa/docs/api/delete-form-api-v-2-payment-link-forms-form-id-delete.md): Delete Form - [Delete Installment Rule](https://dev-docs.streampay.sa/docs/api/delete-installment-rule-api-v-2-organization-settings-installment-rules-rule-id-delete.md): Delete Installment Rule - [Delete Invoices](https://dev-docs.streampay.sa/docs/api/delete-invoices-api-v-2-invoices-delete.md): Delete all invoices (non-production environments only). - [Delete Payment](https://dev-docs.streampay.sa/docs/api/v2-payments-delete.md): Delete a payment record. - [Delete Payment Link Document](https://dev-docs.streampay.sa/docs/api/delete-payment-link-document-api-v-2-payment-links-documents-document-id-delete.md): Delete a payment link document (attached or not yet attached). - [Delete Pricing Table](https://dev-docs.streampay.sa/docs/api/delete-pricing-table-api-v-2-pricing-tables-pricing-table-id-delete.md): Delete Pricing Table - [Delete Product](https://dev-docs.streampay.sa/docs/api/v2-products-delete.md): Delete a product from the organization. - [Delete Product Price](https://dev-docs.streampay.sa/docs/api/v2-products-prices-delete.md): Archive (soft delete) a product price. - [Delete Product Switch Group](https://dev-docs.streampay.sa/docs/api/delete-product-switch-group-api-v-2-product-switch-groups-group-id-delete.md): Soft-delete a product switch group and remove product memberships. - [Delete Quantity Change Group](https://dev-docs.streampay.sa/docs/api/delete-quantity-change-group-api-v-2-quantity-changes-group-id-delete.md): Delete Quantity Change Group - [Delete Subscription Freeze](https://dev-docs.streampay.sa/docs/api/v2-subscriptions-unfreeze.md): Remove a freeze period from a subscription. - [Delete Subscriptions](https://dev-docs.streampay.sa/docs/api/delete-subscriptions-api-v-2-subscriptions-delete.md): Delete all subscriptions (non-production environments only). - [Document Upload](https://dev-docs.streampay.sa/docs/api/document-upload-api-v-2-kyb-document-upload-post.md): Submit business documents for onboarding (document upload step). - [Document Upload Extraction Status](https://dev-docs.streampay.sa/docs/api/document-upload-extraction-status-api-v-2-kyb-document-upload-status-get.md): Poll the async extraction job queued by the last document-upload call. - [Esign Webhook](https://dev-docs.streampay.sa/docs/api/esign-webhook-api-v-2-esign-webhook-post.md): Handle e-signature webhook notifications for envelope status updates. - [Exchange a portal session token for a consumer access token](https://dev-docs.streampay.sa/docs/api/exchange-portal-session-token-api-v-2-consumer-portal-sessions-exchange-post.md): The portal frontend calls this endpoint to exchange a short-lived, single-use session token for a standard consumer JWT. The token is invalidated a... - [Export Task](https://dev-docs.streampay.sa/docs/api/export-task-api-v-2-export-post.md): Create an export task to generate reports in various formats. - [Export Task Status](https://dev-docs.streampay.sa/docs/api/export-task-status-api-v-2-export-export-task-id-get.md): Get the status and download link of an export task. - [Forgot Password](https://dev-docs.streampay.sa/docs/api/forgot-password-api-v-2-authentication-forgot-password-post.md): Initiate password reset process by sending verification code to user email. - [Freeze Subscription](https://dev-docs.streampay.sa/docs/api/v2-subscriptions-freeze.md): Freeze a subscription to pause invoice generation for a specific period. - [Generate An Mfa For Verifying An Identifier](https://dev-docs.streampay.sa/docs/api/generate-an-mfa-for-verifying-an-identifier-api-v-2-public-on-boarding-generate-identification-mfa-post.md): Generate a multi-factor authentication code for identity verification. - [Generate Mfa For Login](https://dev-docs.streampay.sa/docs/api/generate-mfa-for-login-api-v-2-authentication-generate-login-mfa-post.md): Generate and send multi-factor authentication code for login. - [Generate Mfa For Phone Verification](https://dev-docs.streampay.sa/docs/api/generate-mfa-for-phone-verification-api-v-2-user-generate-phone-verification-mfa-post.md): Generate and send multi-factor authentication code for phone verification. - [Generate Nafath Verification Request](https://dev-docs.streampay.sa/docs/api/generate-nafath-verification-request-api-v-2-public-on-boarding-initiate-nafath-verification-post.md): Initiate Nafath identity verification request. - [Get Accounting Provider Branch Mappings](https://dev-docs.streampay.sa/docs/api/get-accounting-provider-branch-mappings-api-v-2-accounting-provider-branches-get.md): Read back this organization's saved Stream-branch -> platform-branch mappings. - [Get Accounting Provider Config](https://dev-docs.streampay.sa/docs/api/get-accounting-provider-config-api-v-2-accounting-provider-config-get.md): Read back this organization's stored config field values. Never includes credentials/tokens. - [Get Accounting Provider Metadata](https://dev-docs.streampay.sa/docs/api/get-accounting-provider-metadata-api-v-2-accounting-provider-metadata-get.md): Describe what fields an accounting provider needs, driving the frontend's setup form. - [Get All Accounts](https://dev-docs.streampay.sa/docs/api/get-all-accounts-api-v-2-accounts-get.md): List all bank accounts configured for the organization. - [Get All (GET /api/v1/invoices)](https://dev-docs.streampay.sa/docs/api/get-all-api-v-1-invoices-get.md): List all invoices with pagination, filtering, and sorting. - [Get All (GET /api/v2/api-keys)](https://dev-docs.streampay.sa/docs/api/get-all-api-v-2-api-keys-get.md): List all API keys for the organization. - [Get All (GET /api/v2/bank-transfer)](https://dev-docs.streampay.sa/docs/api/get-all-api-v-2-bank-transfer-get.md): List all bank transfer settlements with pagination, filtering, and sorting. - [Get All (GET /api/v2/webhooks)](https://dev-docs.streampay.sa/docs/api/get-all-api-v-2-webhooks-get.md): List all webhooks configured for the organization. - [Get All Branches](https://dev-docs.streampay.sa/docs/api/v2-branches-list.md): List all branches for the organization. - [Get All Consumers (GET /api/v1/consumers)](https://dev-docs.streampay.sa/docs/api/get-all-consumers-api-v-1-consumers-get.md): List all consumers with filtering options. - [Get All Consumers (GET /api/v2/consumers)](https://dev-docs.streampay.sa/docs/api/v2-consumers-list.md): List consumers with pagination, sorting, and optional filters. - [Get All Invoices](https://dev-docs.streampay.sa/docs/api/get-all-invoices-api-v-2-consumer-portal-profile-invoices-get.md): List all invoices for the authenticated consumer with pagination, filtering, and sorting. - [Get All Organization Users](https://dev-docs.streampay.sa/docs/api/get-all-organization-users-api-v-2-organization-users-get.md): List all users who are members of the organization. - [Get All Subscriptions](https://dev-docs.streampay.sa/docs/api/get-all-subscriptions-api-v-2-consumer-portal-profile-subscriptions-get.md): List all subscriptions for the authenticated consumer with pagination, filtering, and sorting. - [Get (GET /api/v1/invoices/{invoice_id})](https://dev-docs.streampay.sa/docs/api/get-api-v-1-invoices-invoice-id-get.md): Get invoice by ID. - [Get (GET /api/v2/short-url/{short_url_id})](https://dev-docs.streampay.sa/docs/api/get-api-v-2-short-url-short-url-id-get.md): Redirect from short URL to the original destination URL. - [Get (GET /api/v2/webhooks/{webhook_id})](https://dev-docs.streampay.sa/docs/api/get-api-v-2-webhooks-webhook-id-get.md): Retrieve detailed information about a specific webhook by its ID. - [Get Available Events](https://dev-docs.streampay.sa/docs/api/get-available-events-api-v-2-webhooks-events-get.md): List all available webhook events that can be subscribed to. - [Get Bnpl Order Status](https://dev-docs.streampay.sa/docs/api/get-bnpl-order-status-api-v-2-consumer-portal-consent-consent-id-bnpl-orders-order-id-status-get.md): Get Bnpl Order Status - [Get Branch By Id](https://dev-docs.streampay.sa/docs/api/v2-branches-get.md): Retrieve detailed information about a specific branch by its ID. - [Get By Id](https://dev-docs.streampay.sa/docs/api/get-by-id-api-v-2-accounts-account-id-get.md): Retrieve detailed information about a specific bank account by its ID. - [Get Connected Apps Authorization Server Metadata](https://dev-docs.streampay.sa/docs/api/get-connected-apps-authorization-server-metadata-well-known-oauth-authorization-server-api-v-2-connected-apps-get.md): Get Connected Apps Authorization Server Metadata - [Get Connected Apps Key Set](https://dev-docs.streampay.sa/docs/api/get-connected-apps-key-set-api-v-2-connected-apps-oauth-jwks-get.md): Get Connected Apps Key Set - [Get Connection Request](https://dev-docs.streampay.sa/docs/api/get-connection-request-api-v-2-connected-apps-connection-requests-request-id-get.md): Get Connection Request - [Get Consent Payment Pdf Status](https://dev-docs.streampay.sa/docs/api/get-consent-payment-pdf-status-api-v-2-consumer-portal-consent-consent-id-payment-pdf-get.md): Return payment invoice PDF status for a consent; starts generation when not completed. - [Get Consumer (GET /api/v1/consumers/{consumer_id})](https://dev-docs.streampay.sa/docs/api/get-consumer-api-v-1-consumers-consumer-id-get.md): Retrieve detailed information about a specific consumer by their ID. - [Get Consumer (GET /api/v2/consumers/{consumer_id})](https://dev-docs.streampay.sa/docs/api/v2-consumers-get.md): Retrieve detailed information about a specific consumer by their ID. - [Get Consumer Card List](https://dev-docs.streampay.sa/docs/api/get-consumer-card-list-api-v-2-consumer-portal-profile-cards-get.md): Get a list of cards for a consumer. - [Get Consumer Insights](https://dev-docs.streampay.sa/docs/api/get-consumer-insights-api-v-2-consumers-org-consumer-id-insights-get.md): Get analytics and insights for a specific consumer. - [Get Consumer Me](https://dev-docs.streampay.sa/docs/api/get-consumer-me-api-v-2-consumer-portal-profile-consumer-me-get.md): Get profile information for the currently logged-in consumer. - [Get Consumer Portal Config](https://dev-docs.streampay.sa/docs/api/get-consumer-portal-config-api-v-2-consumer-portal-config-get.md): Get public consumer portal configuration by lookup ID. - [Get Conversion Rates](https://dev-docs.streampay.sa/docs/api/get-conversion-rates-api-v-2-consumer-portal-conversion-rates-get.md): Get conversion rates payload for the frontend consumer portal. - [Get Coupon](https://dev-docs.streampay.sa/docs/api/v2-coupons-get.md): Retrieve detailed information about a specific coupon including redemption history. - [Get Deliveries](https://dev-docs.streampay.sa/docs/api/get-deliveries-api-v-2-webhook-deliveries-by-webhook-webhook-id-get.md): Get all deliveries for a webhook. Limited to latest 100 deliveries only. - [Get Delivery By Id](https://dev-docs.streampay.sa/docs/api/get-delivery-by-id-api-v-2-webhook-deliveries-webhook-delivery-id-get.md): Get a webhook delivery by ID. - [Get Details (GET /api/v1/invoices/{invoice_id}/details)](https://dev-docs.streampay.sa/docs/api/get-details-api-v-1-invoices-invoice-id-details-get.md): Get detailed information about an invoice. - [Get Details (GET /api/v2/consumer_portal/consent/{consent_id}/details)](https://dev-docs.streampay.sa/docs/api/get-details-api-v-2-consumer-portal-consent-consent-id-details-get.md): Get detailed information about a payment consent including invoice and payment options. - [Get Discount Rule](https://dev-docs.streampay.sa/docs/api/get-discount-rule-api-v-2-organization-settings-discount-rules-rule-id-get.md): Get Discount Rule - [Get Email Template Configuration](https://dev-docs.streampay.sa/docs/api/get-email-template-configuration-api-v-2-email-template-get.md): Return the organization's notification email template configuration. - [Get Form (GET /api/v2/forms/{form_id})](https://dev-docs.streampay.sa/docs/api/get-form-api-v-2-forms-form-id-get.md): Get Form - [Get Form (GET /api/v2/payment_link_forms/{form_id})](https://dev-docs.streampay.sa/docs/api/get-form-api-v-2-payment-link-forms-form-id-get.md): Get Form - [Get Form Submission (GET /api/v2/consumer_portal/form-submissions/{submission_id})](https://dev-docs.streampay.sa/docs/api/get-form-submission-api-v-2-consumer-portal-form-submissions-submission-id-get.md): Resume a form submission (answers + uploaded documents with short-lived URLs). - [Get Form Submission (GET /api/v2/forms/{form_id}/submissions/{submission_id})](https://dev-docs.streampay.sa/docs/api/get-form-submission-api-v-2-forms-form-id-submissions-submission-id-get.md): Get Form Submission - [Get Form Submission (GET /api/v2/payment_link_forms/{form_id}/submissions/{submission_id})](https://dev-docs.streampay.sa/docs/api/get-form-submission-api-v-2-payment-link-forms-form-id-submissions-submission-id-get.md): Get Form Submission - [Get Installment Rule](https://dev-docs.streampay.sa/docs/api/get-installment-rule-api-v-2-organization-settings-installment-rules-rule-id-get.md): Get Installment Rule - [Get Invoice](https://dev-docs.streampay.sa/docs/api/v2-invoices-get.md): Retrieve detailed information about a specific invoice by its ID. - [Get Invoice Batch Example Csv](https://dev-docs.streampay.sa/docs/api/get-invoice-batch-example-csv-api-v-2-invoice-batches-example-get.md): Get Invoice Batch Example Csv - [Get Invoice Consent Url](https://dev-docs.streampay.sa/docs/api/v2-invoices-consent-url.md): Get the payment consent URL for an invoice. - [Get Invoice Details](https://dev-docs.streampay.sa/docs/api/get-invoice-details-api-v-2-consumer-portal-profile-invoice-invoice-id-details-get.md): Get detailed information about an invoice for the authenticated consumer. - [Get Metered Subscription](https://dev-docs.streampay.sa/docs/api/v2-metered-subscriptions-get.md): Retrieve a metered subscription. - [Get Metered Subscription Details](https://dev-docs.streampay.sa/docs/api/get-metered-subscription-details-api-v-2-consumer-portal-profile-metered-subscriptions-metered-subscription-id-details-get.md): Get details for a consumer's metered subscription. - [Get Org All Payments](https://dev-docs.streampay.sa/docs/api/get-org-all-payments-api-v-2-organization-payments-get.md): List all payments across the organization with pagination, filtering, and sorting. - [Get Organization Accounting Posting Behavior](https://dev-docs.streampay.sa/docs/api/get-organization-accounting-posting-behavior-api-v-2-organization-posting-behavior-get.md): Get the organization's accounting posting settings. - [Get Organization Address](https://dev-docs.streampay.sa/docs/api/get-organization-address-api-v-2-organization-settings-address-get.md): Get the organization's national address; fields are null until it is set. - [Get Organization Refund Policy](https://dev-docs.streampay.sa/docs/api/get-organization-refund-policy-api-v-2-organization-refund-policy-get.md): Get the latest refund policy for the current organization. - [Get Own Connection](https://dev-docs.streampay.sa/docs/api/get-own-connection-api-v-2-connected-apps-connections-current-get.md): A connected app reads the connection its credential belongs to, branches included. - [Get Payment](https://dev-docs.streampay.sa/docs/api/v2-payments-get.md): Retrieve detailed information about a specific payment by its ID. - [Get Payment Gateway Activities](https://dev-docs.streampay.sa/docs/api/get-payment-gateway-activities-api-v-2-payments-payment-id-gateway-activities-get.md): List distinct payment gateway statuses for a payment, newest first. - [Get Payment Link](https://dev-docs.streampay.sa/docs/api/v2-payment-links-get.md): Retrieve detailed information about a specific payment link by its ID. - [Get Payment Link Details](https://dev-docs.streampay.sa/docs/api/get-payment-link-details-api-v-2-consumer-portal-payment-link-payment-link-id-details-get.md): Get detailed information about a payment link. - [Get Payment Link Insights](https://dev-docs.streampay.sa/docs/api/get-payment-link-insights-api-v-2-payment-links-payment-link-id-insights-get.md): Get analytics and insights for a specific payment link. - [Get Payment Request](https://dev-docs.streampay.sa/docs/api/get-payment-request-api-v-2-consumer-portal-profile-payment-request-get.md): Get payment request configuration for consumer with amount 1 and save_card=true. - [Get Pricing Table](https://dev-docs.streampay.sa/docs/api/get-pricing-table-api-v-2-pricing-tables-pricing-table-id-get.md): Get Pricing Table - [Get Product](https://dev-docs.streampay.sa/docs/api/v2-products-get.md): Retrieve detailed information about a specific product by its ID. - [Get Product Insights](https://dev-docs.streampay.sa/docs/api/get-product-insights-api-v-2-products-product-id-insights-get.md): Get analytics and insights for a specific product. - [Get Product Switch Group](https://dev-docs.streampay.sa/docs/api/get-product-switch-group-api-v-2-product-switch-groups-group-id-get.md): Get a single product switch group with product IDs. - [Get Public Pricing Table](https://dev-docs.streampay.sa/docs/api/get-public-pricing-table-api-v-2-public-pricing-tables-pricing-table-id-get.md): Get Public Pricing Table - [Get Public Pricing Table With Viewer](https://dev-docs.streampay.sa/docs/api/get-public-pricing-table-with-viewer-api-v-2-public-pricing-tables-pricing-table-id-me-get.md): Same as GET / but `Authorization: Bearer ` is required. - [Get Related Companies](https://dev-docs.streampay.sa/docs/api/get-related-companies-api-v-2-user-related-companies-get.md): Get all companies/organizations that the user belongs to. - [Get Subscribers By Status](https://dev-docs.streampay.sa/docs/api/get-subscribers-by-status-api-v-1-subscribers-get.md): Get list of subscribers filtered by their subscription status. - [Get Subscription](https://dev-docs.streampay.sa/docs/api/v2-subscriptions-get.md): Retrieve detailed information about a specific subscription by its ID. - [Get Subscription Details](https://dev-docs.streampay.sa/docs/api/get-subscription-details-api-v-2-consumer-portal-profile-subscription-subscription-id-details-get.md): Get detailed information about a subscription for the authenticated consumer. - [Get Subscription Insights](https://dev-docs.streampay.sa/docs/api/get-subscription-insights-api-v-2-subscriptions-subscription-id-insights-get.md): Get analytics and insights for a specific subscription. - [Get Template Config](https://dev-docs.streampay.sa/docs/api/get-template-config-api-v-2-invoice-template-get.md): Get invoice template configuration. - [Get Top Used Products](https://dev-docs.streampay.sa/docs/api/get-top-used-products-api-v-2-products-top-used-get.md): Return the most frequently used products. - [Get Total Settlement Sum](https://dev-docs.streampay.sa/docs/api/get-total-settlement-sum-api-v-2-bank-transfer-total-sum-get.md): Get the total sum of all settlements based on filters. - [Get Total Unsettled Sum](https://dev-docs.streampay.sa/docs/api/get-total-unsettled-sum-api-v-2-bank-transfer-total-unsettled-sum-get.md): Get the total sum of all unsettled transfers based on filters. - [Get User And Organization Info](https://dev-docs.streampay.sa/docs/api/v2-me-get.md): Retrieve information about the authenticated user and their organization. - [Get User](https://dev-docs.streampay.sa/docs/api/get-user-api-v-2-user-get.md): Get current user profile information. - [Get User Roles Permission](https://dev-docs.streampay.sa/docs/api/get-user-roles-permission-api-v-2-authorization-permissions-get.md): Get all permissions granted to the user based on their roles. - [Get Zendesk Token](https://dev-docs.streampay.sa/docs/api/get-zendesk-token-api-v-2-zendesk-token-get.md): Get a Zendesk token for the authenticated user. - [Gmv](https://dev-docs.streampay.sa/docs/api/gmv-api-v-2-organization-past-gmv-put.md): Set the past GMV for organization before Stream. - [Health check endpoint](https://dev-docs.streampay.sa/docs/api/health-check-health-get.md): Check the health status of MongoDB, PostgreSQL, and Redis connections - [Iban Verification](https://dev-docs.streampay.sa/docs/api/iban-verification-api-v-2-kyb-iban-verification-post.md): Confirm IBAN and beneficiary name (IBAN verification step). - [Initiate](https://dev-docs.streampay.sa/docs/api/initiate-api-v-2-invoices-consent-initiate-post.md): Initiate an invoice payment consent flow for open banking. - [Invoice Is Subscription Cancellable](https://dev-docs.streampay.sa/docs/api/invoice-is-subscription-cancellable-api-v-2-invoices-invoice-id-subscription-cancellable-get.md): Check if the subscription related to an invoice can be canceled. - [Issue Connected App Token](https://dev-docs.streampay.sa/docs/api/issue-connected-app-token-api-v-2-connected-apps-oauth-token-post.md): The token endpoint: code, refresh and, for a service acting as itself, token exchange. - [Kyb Documents](https://dev-docs.streampay.sa/docs/api/kyb-documents-api-v-2-kyb-organization-id-documents-get.md): Kyb Documents - [Kyb Information](https://dev-docs.streampay.sa/docs/api/kyb-information-api-v-2-kyb-get.md): Get the current onboarding state for the organization. - [Kyb Profile](https://dev-docs.streampay.sa/docs/api/kyb-profile-api-v-2-kyb-organization-id-profile-get.md): Kyb Profile - [Kyb Review Result](https://dev-docs.streampay.sa/docs/api/kyb-review-result-api-v-2-kyb-organization-id-review-result-post.md): Receive the KYB review outcome from zendesk. - [List Accounting Provider Branch Options](https://dev-docs.streampay.sa/docs/api/list-accounting-provider-branch-options-api-v-2-accounting-provider-branches-options-get.md): List this provider's branches/locations available to map Stream branches onto. - [List Accounting Providers](https://dev-docs.streampay.sa/docs/api/list-accounting-providers-api-v-2-accounting-get.md): List every known accounting provider and this organization's configuration status for each. - [List Add Ons](https://dev-docs.streampay.sa/docs/api/list-add-ons-api-v-2-add-ons-get.md): List add-on eligibility mappings for the organization. - [List An Invoice'S Accounting Sync Attempts](https://dev-docs.streampay.sa/docs/api/list-an-invoice-s-accounting-sync-attempts-api-v-2-accounting-invoices-invoice-id-sync-attempts-get.md): The sync attempts of an invoice, newest first, with the provider request/response of each. - [List Connection Activity](https://dev-docs.streampay.sa/docs/api/list-connection-activity-api-v-2-connected-apps-connections-connection-id-activity-get.md): List Connection Activity - [List Connections](https://dev-docs.streampay.sa/docs/api/list-connections-api-v-2-connected-apps-connections-get.md): List Connections - [List Coupons](https://dev-docs.streampay.sa/docs/api/v2-coupons-list.md): List all coupons with pagination, filtering, and sorting options. - [List Currencies](https://dev-docs.streampay.sa/docs/api/list-currencies-api-v-2-currencies-get.md): Get all active currencies. - [List Discount Rules](https://dev-docs.streampay.sa/docs/api/list-discount-rules-api-v-2-organization-settings-discount-rules-get.md): List Discount Rules - [List Form Submissions (GET /api/v2/forms/{form_id}/submissions)](https://dev-docs.streampay.sa/docs/api/list-form-submissions-api-v-2-forms-form-id-submissions-get.md): List Form Submissions - [List Form Submissions (GET /api/v2/payment_link_forms/{form_id}/submissions)](https://dev-docs.streampay.sa/docs/api/list-form-submissions-api-v-2-payment-link-forms-form-id-submissions-get.md): List Form Submissions - [List Form Submissions For Consumer](https://dev-docs.streampay.sa/docs/api/list-form-submissions-for-consumer-api-v-2-form-submissions-get.md): List Form Submissions For Consumer - [List Forms (GET /api/v2/forms)](https://dev-docs.streampay.sa/docs/api/list-forms-api-v-2-forms-get.md): List Forms - [List Forms (GET /api/v2/payment_link_forms)](https://dev-docs.streampay.sa/docs/api/list-forms-api-v-2-payment-link-forms-get.md): List Forms - [List Installment Rules](https://dev-docs.streampay.sa/docs/api/list-installment-rules-api-v-2-organization-settings-installment-rules-get.md): List Installment Rules - [List Invoice Batch Rows](https://dev-docs.streampay.sa/docs/api/list-invoice-batch-rows-api-v-2-invoice-batches-batch-id-rows-get.md): List Invoice Batch Rows - [List Invoice Batches](https://dev-docs.streampay.sa/docs/api/list-invoice-batches-api-v-2-invoice-batches-get.md): List Invoice Batches - [List Invoices Accounting Sync Status](https://dev-docs.streampay.sa/docs/api/list-invoices-accounting-sync-status-api-v-2-accounting-invoices-sync-status-get.md): Invoices with their accounting sync status and, inline, the records that status is made of. - [List Invoices](https://dev-docs.streampay.sa/docs/api/v2-invoices-list.md): List all invoices with pagination, filtering, and sorting options. - [List Metered Subscriptions](https://dev-docs.streampay.sa/docs/api/v2-metered-subscriptions-list.md): List metered subscriptions. - [List Organization Config](https://dev-docs.streampay.sa/docs/api/list-organization-config-api-v-2-bnpl-organization-config-get.md): List Organization Config - [List Override Installment Rules](https://dev-docs.streampay.sa/docs/api/list-override-installment-rules-api-v-2-organization-settings-installment-rules-override-get.md): OVERRIDE rules a bill collector can pick as an installment override when creating an invoice or payment link. - [List Payment Links](https://dev-docs.streampay.sa/docs/api/v2-payment-links-list.md): List all payment links with pagination, filtering, and sorting options. - [List Payments](https://dev-docs.streampay.sa/docs/api/v2-payments-list.md): List all payments with pagination, filtering, and sorting options. - [List Pgw Providers](https://dev-docs.streampay.sa/docs/api/list-pgw-providers-api-v-2-organization-settings-pgw-providers-get.md): List available payment gateways and which one is active for this organization. - [List Pricing Tables](https://dev-docs.streampay.sa/docs/api/list-pricing-tables-api-v-2-pricing-tables-get.md): List Pricing Tables - [List Product Switch Groups](https://dev-docs.streampay.sa/docs/api/list-product-switch-groups-api-v-2-product-switch-groups-get.md): List product switch groups for the organization. - [List Products](https://dev-docs.streampay.sa/docs/api/v2-products-list.md): List products with pagination, sorting, and optional filters. - [List Providers](https://dev-docs.streampay.sa/docs/api/list-providers-api-v-2-bnpl-providers-get.md): List Providers - [List Quantity Change Groups](https://dev-docs.streampay.sa/docs/api/list-quantity-change-groups-api-v-2-quantity-changes-get.md): List Quantity Change Groups - [List Resource Field Definitions](https://dev-docs.streampay.sa/docs/api/list-resource-field-definitions-api-v-2-resource-fields-get.md): List Resource Field Definitions - [List Scope Requests](https://dev-docs.streampay.sa/docs/api/list-scope-requests-api-v-2-connected-apps-scope-requests-get.md): List Scope Requests - [List Settlements](https://dev-docs.streampay.sa/docs/api/list-settlements-api-v-2-bnpl-settlements-get.md): List Settlements - [List Subscription Freezes](https://dev-docs.streampay.sa/docs/api/v2-subscriptions-freezes-list.md): List all freeze periods for a specific subscription. - [List Subscriptions](https://dev-docs.streampay.sa/docs/api/v2-subscriptions-list.md): List all subscriptions with pagination, filtering, and sorting options. - [List Switchable Subscription Products](https://dev-docs.streampay.sa/docs/api/list-switchable-subscription-products-api-v-2-consumer-portal-profile-subscription-subscription-id-switchable-products-get.md): List per-line switch options for every item on the consumer's subscription. - [List User Organizations](https://dev-docs.streampay.sa/docs/api/list-user-organizations-api-v-2-user-organizations-get.md): List organizations the authenticated user is a member of. - [Liveness probe endpoint](https://dev-docs.streampay.sa/docs/api/liveness-check-livez-get.md): Process-alive check with no dependency calls; used by the k8s livenessProbe so transient DB/Mongo/Redis slowness can't restart an otherwise-healthy... - [Login For Access Token](https://dev-docs.streampay.sa/docs/api/login-for-access-token-api-v-2-authentication-login-post.md): Authenticate user with email and password and return access tokens. - [Login Mfa For Access Token](https://dev-docs.streampay.sa/docs/api/login-mfa-for-access-token-api-v-2-authentication-submit-login-mfa-post.md): Verify MFA code and complete login to receive access tokens. - [Logo Upload](https://dev-docs.streampay.sa/docs/api/logo-upload-api-v-2-organization-logo-upload-put.md): Upload and set the organization logo. - [Lower Connection](https://dev-docs.streampay.sa/docs/api/lower-connection-api-v-2-connected-apps-connections-connection-id-patch.md): Lower Connection - [Mark Account As Default](https://dev-docs.streampay.sa/docs/api/mark-account-as-default-api-v-2-accounts-account-id-default-put.md): Set a bank account as the default account for the organization. - [Mark Failed](https://dev-docs.streampay.sa/docs/api/mark-failed-api-v-2-payments-payment-id-reject-bank-transfer-post.md): Reject a bank transfer payment and mark it as failed. - [Mark Payment As Paid](https://dev-docs.streampay.sa/docs/api/v2-payments-mark-paid.md): Manually mark a payment as paid (full or partial). - [Moyasar Payment Webhook](https://dev-docs.streampay.sa/docs/api/moyasar-payment-webhook-api-v-2-payments-moyasar-webhook-organization-id-post.md): Receive and process payment webhooks from Moyasar payment gateway. - [Moyasar Redirect](https://dev-docs.streampay.sa/docs/api/moyasar-redirect-api-v-2-consumer-portal-moyasar-redirect-get.md): Handle redirect from Moyasar payment gateway after payment completion. - [Myfatoorah Payment Webhook](https://dev-docs.streampay.sa/docs/api/my-fatoorah-payment-webhook-api-v-2-payments-myfatoorah-webhook-organization-id-post.md): Receive and process server-to-server webhooks from the MyFatoorah payment gateway. - [Myfatoorah Settlement Webhook](https://dev-docs.streampay.sa/docs/api/my-fatoorah-settlement-webhook-api-v-2-payments-myfatoorah-webhook-post.md): Receive MyFatoorah settlement (BALANCE_TRANSFERRED) webhooks, resolving the organization from the payload. - [Myfatoorah Payment Callback](https://dev-docs.streampay.sa/docs/api/myfatoorah-payment-callback-api-v-2-payments-myfatoorah-callback-organization-id-post.md): Receive and process payment callbacks from the MyFatoorah payment gateway. - [Myfatoorah Redirect](https://dev-docs.streampay.sa/docs/api/myfatoorah-redirect-api-v-2-consumer-portal-myfatoorah-redirect-get.md): Handle redirect from MyFatoorah payment gateway after payment completion. - [Oauth Authorize](https://dev-docs.streampay.sa/docs/api/oauth-authorize-api-v-2-authentication-oauth-provider-authorize-get.md): Redirect the browser straight to the OAuth provider's consent screen. - [Oauth Callback](https://dev-docs.streampay.sa/docs/api/oauth-callback-api-v-2-authentication-oauth-provider-callback-get.md): Handle the provider's redirect back, then always hand the browser to the frontend. - [Oauth Complete Signup](https://dev-docs.streampay.sa/docs/api/oauth-complete-signup-api-v-2-authentication-oauth-complete-signup-post.md): Finish a brand-new OAuth signup: fill in the profile fields and become VERIFIED. - [Organization Collection Stats](https://dev-docs.streampay.sa/docs/api/organization-collection-stats-api-v-2-analytics-collection-get.md): Get collection statistics grouped by time frame. - [Organization Revenue](https://dev-docs.streampay.sa/docs/api/organization-revenue-api-v-2-analytics-revenue-get.md): Get organization revenue analytics with time-based filtering. - [Organization'S Invoiced Amount In Time Range](https://dev-docs.streampay.sa/docs/api/organization-s-invoiced-amount-in-time-range-api-v-2-analytics-invoiced-amount-get.md): Get total invoiced amount statistics with comparison to previous period. - [Organization'S Latest Invoices](https://dev-docs.streampay.sa/docs/api/organization-s-latest-invoices-api-v-2-analytics-latest-invoices-get.md): Get the most recent invoices for the organization. - [Organization'S Outstanding Amount In Time Range](https://dev-docs.streampay.sa/docs/api/organization-s-outstanding-amount-in-time-range-api-v-2-analytics-outstanding-amount-get.md): Get unpaid invoice amount statistics with comparison to previous period. - [Organization'S Total Overdue Amount](https://dev-docs.streampay.sa/docs/api/organization-s-total-overdue-amount-api-v-2-analytics-overdue-amount-get.md): Get total overdue invoice amount. - [Organization'S Total Paid Amount (And Breakdown By Payment Method) In Time Range](https://dev-docs.streampay.sa/docs/api/organization-s-total-paid-amount-and-breakdown-by-payment-method-in-time-range-api-v-2-analytics-paid-amount-get.md): Get total paid amount with breakdown by payment method. - [Paid Amount Metrics](https://dev-docs.streampay.sa/docs/api/paid-amount-metrics-api-v-2-analytics-paid-amount-metrics-get.md): Get paid amount metrics over time for charting. - [Pause Schedulers](https://dev-docs.streampay.sa/docs/api/pause-schedulers-api-v-2-test-support-schedulers-pause-post.md): Pause all Temporal core schedules so background cron does not fight E2E runs. - [Pay By Qurrah](https://dev-docs.streampay.sa/docs/api/pay-by-qurrah-api-v-2-consumer-portal-payment-payment-id-pay-by-qurrah-post.md): Submit a Qurrah payment with optional receipt file upload. - [Pay Subscription Update Intent With Attached Card](https://dev-docs.streampay.sa/docs/api/pay-subscription-update-intent-with-attached-card-api-v-2-consumer-portal-profile-subscription-update-intent-pay-attached-card-post.md): Pay a pending subscription update intent using the subscription's attached card. - [Plan Choice](https://dev-docs.streampay.sa/docs/api/plan-choice-api-v-2-kyb-plan-choice-post.md): Select billing plan and submit for review (plan choice step). - [Preferred Language](https://dev-docs.streampay.sa/docs/api/preferred-language-api-v-2-consumers-preferred-language-put.md): Set the preferred language for a consumer. - [Preview Automatic Discount](https://dev-docs.streampay.sa/docs/api/preview-automatic-discount-api-v-2-organization-settings-discount-rules-automatic-discount-get.md): What the invoice screen shows before the invoice exists. - [Preview Installment Payment Calendar](https://dev-docs.streampay.sa/docs/api/preview-installment-payment-calendar-api-v-2-organization-settings-installment-rules-preview-get.md): Payment calendar shown while raising an invoice or configuring a payment link. - [Preview Invoice Batch](https://dev-docs.streampay.sa/docs/api/preview-invoice-batch-api-v-2-invoice-batches-preview-post.md): Preview Invoice Batch - [Preview Payment Link Installment Options](https://dev-docs.streampay.sa/docs/api/preview-payment-link-installment-options-api-v-2-consumer-portal-payment-link-payment-link-id-installment-options-post.md): Preview installment options for a payment link after quantity changes. - [Print Invoice](https://dev-docs.streampay.sa/docs/api/print-invoice-api-v-2-consumer-portal-consent-consent-id-print-get.md): Return download link for a completed consent invoice PDF. - [Print Payment Invoice](https://dev-docs.streampay.sa/docs/api/print-payment-invoice-api-v-2-consumer-portal-pdf-invoice-invoice-id-payment-payment-id-download-get.md): Get download link for invoice PDF with payment details. - [Print Payment Link Pgw Payment Invoice](https://dev-docs.streampay.sa/docs/api/print-payment-link-pgw-payment-invoice-api-v-2-consumer-portal-payment-link-invoice-invoice-id-print-get.md): Return download link for a payment-link invoice PDF. - [Print Proforma Invoice Pdf](https://dev-docs.streampay.sa/docs/api/print-proforma-invoice-pdf-api-v-2-consumer-portal-invoice-invoice-id-proforma-pdf-get.md): Return proforma invoice PDF status and URL; creates a pending row and starts generation when missing. - [Print Vat Invoice](https://dev-docs.streampay.sa/docs/api/print-vat-invoice-api-v-2-pdf-payment-id-download-get.md): Get download link for VAT-compliant invoice PDF. - [Profile Completion (GET /api/v2/organization/profile-completion)](https://dev-docs.streampay.sa/docs/api/profile-completion-api-v-2-organization-profile-completion-get.md): Get the remaining complete profile steps for the current organization. - [Profile Completion (PUT /api/v2/organization/profile-completion)](https://dev-docs.streampay.sa/docs/api/profile-completion-api-v-2-organization-profile-completion-put.md): Set one of the specified steps as completed. - [Record Metered Usage](https://dev-docs.streampay.sa/docs/api/v2-metered-meter-record.md): Record metered usage events in bulk - [Refresh Access Token](https://dev-docs.streampay.sa/docs/api/refresh-access-token-api-v-2-authentication-refresh-post.md): Refresh access token using refresh token from cookies. - [Refund Payment](https://dev-docs.streampay.sa/docs/api/v2-payments-refund.md): Process a refund for a payment. - [Register A Bank Transfer For An Organization](https://dev-docs.streampay.sa/docs/api/register-a-bank-transfer-for-an-organization-api-v-2-bank-transfer-organization-id-post.md): Register a bank transfer from external banking systems via webhook. - [Register Connected App Client](https://dev-docs.streampay.sa/docs/api/register-connected-app-client-api-v-2-connected-apps-oauth-register-post.md): Register Connected App Client - [Register Invited User](https://dev-docs.streampay.sa/docs/api/register-invited-user-api-v-2-authentication-register-invited-user-post.md): Accept an organization invite. Existing users send invite_id + Bearer token; new users send profile fields. - [Register Pending User](https://dev-docs.streampay.sa/docs/api/register-pending-user-api-v-2-authentication-user-register-post.md): Register a new user and send email verification code. - [Register User](https://dev-docs.streampay.sa/docs/api/register-user-api-v-2-authentication-register-post.md): Register a new user account (deprecated, use /user/register instead). - [Reject Connection Request](https://dev-docs.streampay.sa/docs/api/reject-connection-request-api-v-2-connected-apps-connection-requests-request-id-reject-post.md): Reject Connection Request - [Reject Scope Request](https://dev-docs.streampay.sa/docs/api/reject-scope-request-api-v-2-connected-apps-scope-requests-scope-request-id-reject-post.md): Reject Scope Request - [Renew Zatca Production Csid](https://dev-docs.streampay.sa/docs/api/renew-zatca-production-csid-api-v-2-zatca-renew-post.md): Renew Zatca Production Csid - [Reopen Form Submission](https://dev-docs.streampay.sa/docs/api/reopen-form-submission-api-v-2-consumer-portal-form-submissions-submission-id-reopen-post.md): Convert SUBMITTED back to DRAFT when the payer goes back to edit before paying. - [Replay Webhook Delivery](https://dev-docs.streampay.sa/docs/api/replay-webhook-delivery-api-v-2-webhook-deliveries-webhook-delivery-id-post.md): Replay a webhook delivery. - [Reschedule Payment](https://dev-docs.streampay.sa/docs/api/reschedule-payment-api-v-2-test-support-payments-payment-id-scheduled-on-put.md): Set a payment's `scheduled_on` without the posted-invoice validation. - [Resend Verify Email Pending User](https://dev-docs.streampay.sa/docs/api/resend-verify-email-pending-user-api-v-2-authentication-user-verify-resend-get.md): Resend email verification code to a pending user. - [Reset Password](https://dev-docs.streampay.sa/docs/api/reset-password-api-v-2-authentication-reset-password-post.md): Set new password using verified reset token. - [Resolve Accounting Provider Post-Auth Field Values](https://dev-docs.streampay.sa/docs/api/resolve-accounting-provider-post-auth-field-values-api-v-2-accounting-provider-fields-values-post.md): Resolve dependent POST_AUTH fields tier-by-tier (e.g. Zoho's org id -> payment account). - [Resume Schedulers](https://dev-docs.streampay.sa/docs/api/resume-schedulers-api-v-2-test-support-schedulers-resume-post.md): Unpause all Temporal core schedules after E2E cleanup. - [Revoke Connected App Token](https://dev-docs.streampay.sa/docs/api/revoke-connected-app-token-api-v-2-connected-apps-oauth-revoke-post.md): Revoke Connected App Token - [Set Connection All Branches](https://dev-docs.streampay.sa/docs/api/set-connection-all-branches-api-v-2-connected-apps-connections-connection-id-all-branches-put.md): Turn a connection's reach to every branch of the organization on or off. Organization admin only. - [Set Payment Flow](https://dev-docs.streampay.sa/docs/api/set-payment-flow-api-v-2-consumer-portal-consent-consent-id-payment-flow-post.md): Set the payment flow configuration for a consent. - [Set Subscription Period](https://dev-docs.streampay.sa/docs/api/set-subscription-period-api-v-2-test-support-subscriptions-subscription-id-period-put.md): Set a subscription's current period so renewal or cycle-push sweeps see it as due. - [Settlement Sum Metrics](https://dev-docs.streampay.sa/docs/api/settlement-sum-metrics-api-v-2-analytics-settlement-sum-metrics-get.md): Get total settlement sum statistics with comparison to previous period. - [Skip Getting Started](https://dev-docs.streampay.sa/docs/api/skip-getting-started-api-v-2-kyb-skip-getting-started-post.md): Skip the getting-started screen. - [Start Accounting Provider Oauth](https://dev-docs.streampay.sa/docs/api/start-accounting-provider-oauth-api-v-2-accounting-provider-authorize-post.md): Store pre-auth field values and return the provider's OAuth authorization URL. - [Start Bnpl Checkout](https://dev-docs.streampay.sa/docs/api/start-bnpl-checkout-api-v-2-consumer-portal-consent-consent-id-bnpl-checkout-post.md): Start Bnpl Checkout - [Start Connected App Authorization](https://dev-docs.streampay.sa/docs/api/start-connected-app-authorization-api-v-2-connected-apps-oauth-authorize-get.md): Start sign-in in the merchant's browser. - [Start Zatca Onboarding](https://dev-docs.streampay.sa/docs/api/start-zatca-onboarding-api-v-2-zatca-onboard-post.md): Start Zatca Onboarding - [Store And Send Contact Us Email](https://dev-docs.streampay.sa/docs/api/store-and-send-contact-us-email-api-v-2-public-contact-us-post.md): Submit a contact us form and send notification email. - [Submit Accounting Provider Credentials](https://dev-docs.streampay.sa/docs/api/submit-accounting-provider-credentials-api-v-2-accounting-provider-credentials-post.md): Submit non-OAuth credentials (API key or username/password) for a provider and verify them. - [Submit Accounting Provider Post-Auth Config](https://dev-docs.streampay.sa/docs/api/submit-accounting-provider-post-auth-config-api-v-2-accounting-provider-config-post.md): Submit post-auth field values (e.g. which chart-of-accounts entry payments should post to). - [Submit Mfa For Phone Verification](https://dev-docs.streampay.sa/docs/api/submit-mfa-for-phone-verification-api-v-2-user-submit-phone-verification-mfa-post.md): Generate and send multi-factor authentication code for phone verification. - [Subscribers Metrics](https://dev-docs.streampay.sa/docs/api/subscribers-metrics-api-v-2-analytics-subscribers-metrics-get.md): Get subscriber count metrics over time for charting. - [Subscription Are Invoices Cancellable](https://dev-docs.streampay.sa/docs/api/subscription-are-invoices-cancellable-api-v-2-subscriptions-subscription-id-invoices-cancellable-get.md): Check if a subscription has any cancelable ongoing invoices. - [Switch Branch](https://dev-docs.streampay.sa/docs/api/switch-branch-api-v-2-authentication-switch-branch-post.md): Switch the active branch for the current user session. - [Switch Organization](https://dev-docs.streampay.sa/docs/api/switch-organization-api-v-2-authentication-switch-organization-post.md): Switch the active organization for the current user session. - [Sync Invoices To The Accounting Platform](https://dev-docs.streampay.sa/docs/api/sync-invoices-to-the-accounting-platform-api-v-2-accounting-invoices-sync-post.md): Sync the unsynced / failed records of these invoices (at most one page worth), in order. - [Uncancel Subscription (PUT /api/v2/consumer_portal/profile/subscription/{subscription_id}/uncancel)](https://dev-docs.streampay.sa/docs/api/uncancel-subscription-api-v-2-consumer-portal-profile-subscription-subscription-id-uncancel-put.md): Withdraw a pending cancellation so the subscription continues after the current billing period. - [Uncancel Subscription (PUT /api/v2/subscriptions/{subscription_id}/uncancel)](https://dev-docs.streampay.sa/docs/api/v2-subscriptions-uncancel.md): Withdraw a pending cancellation so the subscription continues after the current billing period. - [Unfreeze Subscription](https://dev-docs.streampay.sa/docs/api/unfreeze-subscription-api-v-2-consumer-portal-profile-subscription-subscription-id-unfreeze-put.md): Unfreeze a subscription for the logged-in organization consumer. - [Unifonic Sms Webhook Endpoint](https://dev-docs.streampay.sa/docs/api/unifonic-sms-webhook-endpoint-api-v-2-notifications-unifonic-sms-post.md): Handle SMS notification status webhooks from Unifonic. - [Unifonic Whatsapp Webhook Endpoint](https://dev-docs.streampay.sa/docs/api/unifonic-whatsapp-webhook-endpoint-api-v-2-notifications-unifonic-whatsapp-post.md): Handle WhatsApp webhooks from Unifonic. - [Update Account](https://dev-docs.streampay.sa/docs/api/update-account-api-v-2-accounts-account-id-put.md): Update bank account details. - [Update Accounting Provider Branch Mappings](https://dev-docs.streampay.sa/docs/api/update-accounting-provider-branch-mappings-api-v-2-accounting-provider-branches-put.md): Replace the saved branch mappings with the given full set. Omitted branches are unmapped. - [Update Accounting Provider Config](https://dev-docs.streampay.sa/docs/api/update-accounting-provider-config-api-v-2-accounting-provider-config-put.md): Update existing config field values. Never accepts credentials/tokens through this endpoint. - [Update Add Ons](https://dev-docs.streampay.sa/docs/api/update-add-ons-api-v-2-add-ons-put.md): Overwrite eligible products for a single add-on product. - [Update (PUT /api/v1/invoices/{invoice_id})](https://dev-docs.streampay.sa/docs/api/update-api-v-1-invoices-invoice-id-put.md): Update an existing invoice. - [Update (PUT /api/v2/public/waitlist/{waitlist_id})](https://dev-docs.streampay.sa/docs/api/update-api-v-2-public-waitlist-waitlist-id-put.md): Update waitlist entry information. - [Update (PUT /api/v2/webhooks/{webhook_id})](https://dev-docs.streampay.sa/docs/api/update-api-v-2-webhooks-webhook-id-put.md): Update webhook configuration such as URL or event types. - [Update Branch](https://dev-docs.streampay.sa/docs/api/v2-branches-update.md): Update branch information. - [Update Cards Settings](https://dev-docs.streampay.sa/docs/api/update-cards-settings-api-v-2-organization-settings-cards-put.md): Update credit card payment settings for the organization. - [Update Consumer (PUT /api/v1/consumers/{org_consumer_id})](https://dev-docs.streampay.sa/docs/api/update-consumer-api-v-1-consumers-org-consumer-id-put.md): Update consumer information such as contact details or payment methods. - [Update Consumer (PUT /api/v2/consumer_portal/profile/consumer)](https://dev-docs.streampay.sa/docs/api/update-consumer-api-v-2-consumer-portal-profile-consumer-put.md): Update consumer information for the logged-in consumer. - [Update Consumer (PUT /api/v2/consumers/{consumer_id})](https://dev-docs.streampay.sa/docs/api/v2-consumers-update.md): Update consumer information such as contact details or payment methods. - [Update Consumer Communication Methods](https://dev-docs.streampay.sa/docs/api/update-consumer-communication-methods-api-v-2-consumer-portal-profile-consumer-communication-methods-put.md): Update consumer communication methods for the logged-in consumer. - [Update Consumer Language](https://dev-docs.streampay.sa/docs/api/update-consumer-language-api-v-2-consumer-portal-profile-consumer-language-put.md): Update the preferred language for the logged-in consumer. - [Update Consumer Profile Settings](https://dev-docs.streampay.sa/docs/api/update-consumer-profile-settings-api-v-2-organization-settings-consumer-profile-put.md): Replace organization consumer profile settings using full PUT semantics. - [Update Contact Settings](https://dev-docs.streampay.sa/docs/api/update-contact-settings-api-v-2-organization-settings-contact-put.md): Update organization contact information settings. - [Update Coupon](https://dev-docs.streampay.sa/docs/api/v2-coupons-update.md): Update coupon details such as discount amount or active status. - [Update Customer Portal Branding Configuration](https://dev-docs.streampay.sa/docs/api/update-customer-portal-branding-configuration-api-v-2-organization-settings-consumer-portal-branding-put.md): Update customer portal branding colors. - [Update Customer Portal Branding Favicon](https://dev-docs.streampay.sa/docs/api/update-customer-portal-branding-favicon-api-v-2-organization-settings-consumer-portal-branding-favicon-put.md): Update customer portal favicon image. - [Update Discount Rule](https://dev-docs.streampay.sa/docs/api/update-discount-rule-api-v-2-organization-settings-discount-rules-rule-id-put.md): Update Discount Rule - [Update Email Template Configuration](https://dev-docs.streampay.sa/docs/api/update-email-template-configuration-api-v-2-email-template-put.md): Update notification email colours, header mode, and nested sections. - [Update Email Template Header Image](https://dev-docs.streampay.sa/docs/api/update-email-template-header-image-api-v-2-email-template-header-image-put.md): Upload a full-width header image and switch off logo-strip mode. - [Update Form (PATCH /api/v2/forms/{form_id})](https://dev-docs.streampay.sa/docs/api/update-form-api-v-2-forms-form-id-patch.md): Update Form - [Update Form (PATCH /api/v2/payment_link_forms/{form_id})](https://dev-docs.streampay.sa/docs/api/update-form-api-v-2-payment-link-forms-form-id-patch.md): Update Form - [Update Form Submission](https://dev-docs.streampay.sa/docs/api/update-form-submission-api-v-2-consumer-portal-form-submissions-submission-id-patch.md): Autosave form answers while the submission is a draft. - [Update Installment Rule](https://dev-docs.streampay.sa/docs/api/update-installment-rule-api-v-2-organization-settings-installment-rules-rule-id-put.md): Update Installment Rule - [Update Installment Settings](https://dev-docs.streampay.sa/docs/api/update-installment-settings-api-v-2-organization-settings-installment-put.md): Update installment payment settings for the organization. - [Update Invoice](https://dev-docs.streampay.sa/docs/api/v2-invoices-update.md): Update invoice details such as items, consumer, due date, or payment methods. - [Update Invoice In Place](https://dev-docs.streampay.sa/docs/api/v2-invoices-update-in-place.md): Partially update specific invoice fields in-place. - [Update Organization Accounting Posting Behavior](https://dev-docs.streampay.sa/docs/api/update-organization-accounting-posting-behavior-api-v-2-organization-posting-behavior-put.md): Update the organization's accounting posting settings (only the fields sent). - [Update Organization Address](https://dev-docs.streampay.sa/docs/api/update-organization-address-api-v-2-organization-settings-address-put.md): Create or replace the organization's national address (used as the seller address on ZATCA invoices). - [Update Organization Name](https://dev-docs.streampay.sa/docs/api/update-organization-name-api-v-2-organization-name-put.md): Update the organization name. - [Update Organization Preferences](https://dev-docs.streampay.sa/docs/api/update-organization-preferences-api-v-2-bnpl-organization-config-provider-id-preferences-patch.md): Update Organization Preferences - [Update Organization Refund Policy](https://dev-docs.streampay.sa/docs/api/update-organization-refund-policy-api-v-2-organization-refund-policy-put.md): Update the organization refund policy by creating a new policy version. - [Update Payment (PUT /api/v2/consumer_portal/card/payment)](https://dev-docs.streampay.sa/docs/api/update-payment-api-v-2-consumer-portal-card-payment-put.md): Update payment information for a card payment. - [Update Payment (PUT /api/v2/payments/{payment_id})](https://dev-docs.streampay.sa/docs/api/v2-payments-update.md): Update payment details such as amount or payment method. - [Update Payment Flow](https://dev-docs.streampay.sa/docs/api/update-payment-flow-api-v-2-consumer-portal-consent-consent-id-payment-flow-put.md): Update the payment flow configuration for a consent. - [Update Payment Link Coupons](https://dev-docs.streampay.sa/docs/api/v2-payment-links-update-coupons.md): Update link-level and item-level coupons on a payment link. - [Update Payment Link Installment Settings](https://dev-docs.streampay.sa/docs/api/update-payment-link-installment-settings-api-v-2-organization-settings-payment-link-installment-settings-put.md): Update payment link installment settings for the organization. - [Update Payment Link Payment](https://dev-docs.streampay.sa/docs/api/update-payment-link-payment-api-v-2-consumer-portal-payment-link-card-payment-put.md): Update payment information for a payment link card payment. - [Update Payment Link Payment Options](https://dev-docs.streampay.sa/docs/api/update-payment-link-payment-options-api-v-2-organization-settings-payment-link-payment-options-put.md): Update organization payment link payment options settings. - [Update Payment Link Status](https://dev-docs.streampay.sa/docs/api/v2-payment-links-update-status.md): Update the status of a payment link. - [Update Payment Options](https://dev-docs.streampay.sa/docs/api/update-payment-options-api-v-2-organization-settings-payment-options-put.md): Update organization payment options settings. - [Update Pricing Table](https://dev-docs.streampay.sa/docs/api/update-pricing-table-api-v-2-pricing-tables-pricing-table-id-patch.md): Update Pricing Table - [Update Product](https://dev-docs.streampay.sa/docs/api/v2-products-update.md): Update product details such as name, price, or description. - [Update Product Price](https://dev-docs.streampay.sa/docs/api/v2-products-prices-update.md): Update a product price. - [Update Product Switch Group](https://dev-docs.streampay.sa/docs/api/update-product-switch-group-api-v-2-product-switch-groups-group-id-put.md): Replace name and full product membership list. - [Update Quantity Change Group](https://dev-docs.streampay.sa/docs/api/update-quantity-change-group-api-v-2-quantity-changes-group-id-put.md): Update a quantity-change group. - [Update Risky Invoices Settings](https://dev-docs.streampay.sa/docs/api/update-risky-invoices-settings-api-v-2-organization-settings-risky-invoices-put.md): Replace the organization's risky invoices buckets (low/medium/high). - [Update Subscription](https://dev-docs.streampay.sa/docs/api/v2-subscriptions-update.md): Update subscription items, coupons, billing interval, description, auto-cancel cycles, or payment methods. - [Update Subscription Auto Renewal](https://dev-docs.streampay.sa/docs/api/update-subscription-auto-renewal-api-v-2-consumer-portal-profile-subscription-subscription-id-auto-renewal-put.md): Enable or disable auto-renewal for a subscription. - [Update Subscription Auto Renewal Public](https://dev-docs.streampay.sa/docs/api/update-subscription-auto-renewal-public-api-v-2-consumer-portal-subscription-subscription-id-consumer-organization-consumer-id-auto-renewal-put.md): Public endpoint for consumers to enable/disable auto-renewal for their subscriptions without authentication. - [Update Subscription Freeze](https://dev-docs.streampay.sa/docs/api/v2-subscriptions-freeze-update.md): Update an existing subscription freeze period. - [Update Template Config](https://dev-docs.streampay.sa/docs/api/update-template-config-api-v-2-invoice-template-put.md): Update invoice template configuration. - [Update Template Header Image](https://dev-docs.streampay.sa/docs/api/update-template-header-image-api-v-2-invoice-template-header-image-put.md): Update invoice template header image. - [Upload Form Submission Document](https://dev-docs.streampay.sa/docs/api/upload-form-submission-document-api-v-2-consumer-portal-form-submissions-submission-id-documents-post.md): Upload a private document for a form submission (PDF/image, max 10MB, max 10 files). - [Upload Payment Link Document](https://dev-docs.streampay.sa/docs/api/upload-payment-link-document-api-v-2-payment-links-documents-post.md): Upload a document (PDF or image, max 10MB) to attach to a payment link at creation time. - [Upsert Organization Config](https://dev-docs.streampay.sa/docs/api/upsert-organization-config-api-v-2-bnpl-organization-config-provider-id-put.md): Upsert Organization Config - [Vat Number](https://dev-docs.streampay.sa/docs/api/vat-number-api-v-2-organization-vat-number-put.md): Update the organization vat number. - [Verify An Mfa Against An Identifier](https://dev-docs.streampay.sa/docs/api/verify-an-mfa-against-an-identifier-api-v-2-public-on-boarding-verify-identification-mfa-post.md): Verify the multi-factor authentication code for identity confirmation. - [Verify Forgot Password](https://dev-docs.streampay.sa/docs/api/verify-forgot-password-api-v-2-authentication-verify-forgot-password-post.md): Verify the password reset code sent to user email. - [Verify Pending User](https://dev-docs.streampay.sa/docs/api/verify-pending-user-api-v-2-authentication-user-verify-get.md): Verify user email with verification code and complete registration. - [Wipe Organization Data](https://dev-docs.streampay.sa/docs/api/wipe-organization-data-api-v-2-test-support-organizations-organization-id-data-delete.md): Hard-delete transactional data for a test organization (E2E cleanup). - [Withdraw Scope Request](https://dev-docs.streampay.sa/docs/api/withdraw-scope-request-api-v-2-connected-apps-scope-requests-scope-request-id-withdraw-post.md): Withdraw Scope Request - [Zatca Eligibility](https://dev-docs.streampay.sa/docs/api/zatca-eligibility-api-v-2-zatca-eligibility-get.md): What the organization must complete (VAT number, CR / FL number, national address) to connect ZATCA. - [Zatca Onboarding Status](https://dev-docs.streampay.sa/docs/api/zatca-onboarding-status-api-v-2-zatca-onboard-status-get.md): Zatca Onboarding Status - [Express SDK](https://dev-docs.streampay.sa/sdks/express.md): For the complete Express SDK documentation, please visit our GitHub repository: - [TypeScript SDK](https://dev-docs.streampay.sa/sdks/typescript.md): For the complete TypeScript SDK documentation, please visit our GitHub repository: