openapi: 3.1.0 info: title: Raast Wire version: 1.0.0 description: "" servers: - url: https://api.getsafepay.com/raastwire paths: /v1/aggregators/{raast-aggregator-id}: get: tags: - Aggregators summary: Get Aggregator security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" responses: "201": $ref: "#/components/responses/AggregatorResponse" "404": $ref: "#/components/responses/NotFound" /v1/aggregators/{raast-aggregator-id}/keys: get: tags: - Access Keys summary: List Access Keys security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/LimitQueryParam" - $ref: "#/components/parameters/OffsetQueryParam" - $ref: "#/components/parameters/AccessKeyNamesParam" - $ref: "#/components/parameters/AccessKeyIsActiveParam" responses: "200": $ref: "#/components/responses/ListAccessKeysResponse" "401": $ref: "#/components/responses/Unauthorized" post: tags: - Access Keys summary: Create Access Key description: Create an access key to access Safepay's Raast APIs security: - apiKey: [] operationId: createAccessKey parameters: - $ref: "#/components/parameters/AggregatorIdParam" requestBody: $ref: "#/components/requestBodies/CreateAccessKey" responses: "200": $ref: "#/components/responses/CreateAccessKeyResponse" "401": $ref: "#/components/responses/Unauthorized" "500": $ref: "#/components/responses/InternalError" /v1/aggregators/{raast-aggregator-id}/keys/{access-key-id}: put: tags: - Access Keys summary: Update Access Key description: Update your access key security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/AccessKeyIdParam" requestBody: $ref: "#/components/requestBodies/UpdateAccessKey" responses: "200": $ref: "#/components/responses/EmptySuccess" delete: tags: - Access Keys summary: Delete Access Key description: Delete your access key security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/AccessKeyIdParam" responses: "200": $ref: "#/components/responses/EmptySuccess" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/keys/{access-key-id}/rotate: put: tags: - Access Keys summary: Rotate Access Key security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/AccessKeyIdParam" responses: "200": $ref: "#/components/responses/RotateAccessKeyResponse" /v1/aggregators/{raast-aggregator-id}/merchants: post: tags: - Merchants summary: Create Merchant security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" responses: "200": $ref: "#/components/responses/CreateMerchantResponse" "400": $ref: "#/components/responses/BadRequest" requestBody: $ref: "#/components/requestBodies/CreateMerchant" get: tags: - Merchants summary: List Merchants security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/MerchantListLimitParam" - $ref: "#/components/parameters/MerchantListOffsetParam" - $ref: "#/components/parameters/MerchantListEnabledParam" - $ref: "#/components/parameters/MerchantListIdentifiersParam" - $ref: "#/components/parameters/MerchantListNamesParam" responses: "200": $ref: "#/components/responses/ListMerchantsResponse" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/merchants/{aggregator-merchant-id}: get: tags: - Merchants summary: Find Merchant security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/MerchantIdParam" responses: "200": $ref: "#/components/responses/FindMerchantResponse" "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" delete: tags: - Merchants summary: Delete Merchant security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/MerchantIdParam" responses: "200": $ref: "#/components/responses/EmptySuccess" "401": $ref: "#/components/responses/Unauthorized" put: tags: - Merchants summary: Update Merchant security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/MerchantIdParam" responses: "200": $ref: "#/components/responses/UpdateMerchantsResponse" "400": $ref: "#/components/responses/BadRequest" "404": $ref: "#/components/responses/NotFound" "409": $ref: "#/components/responses/Conflict" "500": $ref: "#/components/responses/InternalError" requestBody: $ref: "#/components/requestBodies/UpdateMerchant" /v1/aggregators/{raast-aggregator-id}/raast-merchants: parameters: - $ref: "#/components/parameters/AggregatorIdParam" get: tags: - Raast Merchants summary: List Raast Merchants description: Find all the available Raast merchants available on Safepay. Link your desired merchant with a Raast merchant to process payments for them security: - apiKey: [] parameters: - $ref: "#/components/parameters/RaastMerchantListLimitParam" - $ref: "#/components/parameters/RaastMerchantListOffsetParam" - $ref: "#/components/parameters/RaastMerchantListStatusParam" - $ref: "#/components/parameters/RaastMerchantListNameParam" responses: "200": $ref: "#/components/responses/ListRaastMerchantsResponse" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/raast-merchants/{raast-merchant-id}: parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/RaastMerchantIdParam" get: tags: - Raast Merchants summary: Read Raast Merchant description: Explore a Raast merchant in detail. security: - apiKey: [] responses: "200": $ref: "#/components/responses/FindRaastMerchantResponse" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/payments: parameters: - $ref: "#/components/parameters/AggregatorIdParam" post: tags: - Payments summary: Create RTP description: Create an RTP Now or Later Payment. security: - apiKey: [] responses: "200": $ref: "#/components/responses/CreatePaymentResponse" "500": $ref: "#/components/responses/InternalError" requestBody: $ref: "#/components/requestBodies/CreatePayment" get: tags: - Payments summary: List Payments description: Filter payments using the supported query parameters. security: - apiKey: [] parameters: - name: limit in: query required: false description: Maximum number of payments to return in the result set. example: 10 schema: type: string - name: offset in: query required: false description: Number of payments to skip before starting the result set. example: 0 schema: type: string - name: aggregator_merchant_id in: query required: false description: Filter by Safepay aggregator merchant identifier. example: am_1234567890 schema: type: string - name: order_id in: query required: false description: Filter by the merchant supplied order identifier. example: O_12345 schema: type: string - name: request_id in: query required: false description: Filter by the client generated idempotent request identifier. example: mMqCEa7Vajgtuu1VSXz4k8ri4R3 schema: type: string - name: trace_reference in: query required: false description: Filter by the trace reference assigned during processing. example: bADGhCLmi8f7j9FeRDe3IuyQjCzlM34eZsGS1 schema: type: string - name: msg_id in: query required: false description: Filter by the Raast network message identifier. example: dmNP1FtMPEQEjvFRJSMZI1VpWohKubU8yV6o2 schema: type: string - name: pmt_inf_id in: query required: false description: Filter by the payment information identifier from the Raast message. example: sTvT4lBvWPHWXw7Y44msStMB schema: type: string - name: uetr in: query required: false description: Filter by the Unique End-to-end Transaction Reference (UETR). example: ee942c2e9854960d schema: type: string - name: status in: query required: false description: Filter by the payment status. example: P_RECEIVED schema: type: string enum: - P_INITIATED - P_RECEIVED - P_CANCELLED - P_REJECTED - P_FAILED - P_AUTHORIZED - P_REVERSED - P_CAPTURED - P_SETTLED - P_PARTIALLY_REFUNDED - P_REFUNDED - name: type in: query required: false description: Filter by the payment type. example: RTP_LATER schema: type: string enum: - RTP_NOW - RTP_LATER - STATIC_QR - DYNAMIC_QR - name: payment_id in: query required: false description: Filter by the payment identifier. example: pm_2288490a-2176-4de5-b373-0ffb6f8e2e6e schema: type: string - name: qr_code_id in: query required: false description: Filter by the QR code identifier associated with the payment. example: qr_503d916b-9ad5-44aa-8d41-1ad656882f7f schema: type: string - name: end_to_end_id in: query required: false description: Filter by the end-to-end identifier recorded for the payment. example: E2E-09771234 schema: type: string - name: instr_id in: query required: false description: Filter by the instruction identifier from the Raast message payload. example: INSTR-88921 schema: type: string - name: start_date in: query required: false description: Filter payments created on or after this date (UNIX timestamp). example: 1735689600 schema: type: integer - name: end_date in: query required: false description: Filter payments created on or before this date (UNIX timestamp). example: 1767225600 schema: type: integer responses: "200": $ref: "#/components/responses/ListPaymentsResponse" /v1/aggregators/{raast-aggregator-id}/payments/{payment-id}: parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/PaymentIdParam" get: tags: - Payments summary: Find Payment description: Explore a payment in detail. security: - apiKey: [] responses: "200": $ref: "#/components/responses/FindPaymentResponse" /v1/aggregators/{raast-aggregator-id}/payout: parameters: - $ref: "#/components/parameters/AggregatorIdParam" post: tags: - Payments summary: Payout description: Initiate a Raast payout to credit a beneficiary IBAN security: - apiKey: [] requestBody: $ref: "#/components/requestBodies/CreatePayout" responses: "200": $ref: "#/components/responses/CreatePayoutResponse" "401": $ref: "#/components/responses/Unauthorized" "500": $ref: "#/components/responses/InternalError" /v1/aggregators/{raast-aggregator-id}/refunds: parameters: - $ref: "#/components/parameters/AggregatorIdParam" post: tags: - Refunds summary: Create Refund description: Issue a refund against a payment responses: "200": $ref: "#/components/responses/CreateRefundResponse" requestBody: $ref: "#/components/requestBodies/CreateRefund" security: - apiKey: [] get: tags: - Refunds summary: List Refunds description: Retrieve a paginated list of refunds that have been issued security: - apiKey: [] parameters: - name: limit in: query required: false example: 10 schema: type: string - name: offset in: query required: false example: 0 schema: type: string - name: payment_id in: query required: false description: Filter refunds by one or more payment identifiers. example: - pm_2288490a schema: type: array items: type: string - name: status in: query required: false description: Filter refunds by one or more statuses. example: - R_COMPLETED - R_FAILED - R_INITIATED - R_CANCELED schema: type: array items: type: string - name: trace_reference in: query required: false description: Filter refunds by one or more trace references. example: - 90c4831d-e6d7-491e-a5f9-5f92c7cd1073 schema: type: array items: type: string - name: msg_id in: query required: false description: Filter refunds by one or more Raast message identifiers. example: - H1KMBBKXMARBF3EEP5HATG27BHIAZ3GIH2J schema: type: array items: type: string - name: return_id in: query required: false description: Filter refunds by one or more return identifiers. example: - rtn_12345 schema: type: array items: type: string - name: request_id in: query required: false description: Filter refunds by one or more client request identifiers. example: - 6a049190-3595-47cb-8603-7e310c3adb15 schema: type: array items: type: string - name: refund_id in: query required: false description: Filter refunds by one or more refund identifiers. example: - rfd_7e26f9be-f59d-4025-8e17-9fc398d16230 schema: type: array items: type: string - name: start_date in: query required: false description: Filter refunds created on or after this UNIX timestamp. example: 1735689600 schema: type: integer - name: end_date in: query required: false description: Filter refunds created on or before this UNIX timestamp. example: 1767225600 schema: type: integer - name: direction in: query required: false example: DESC schema: type: string enum: - ASC - DESC responses: "200": $ref: "#/components/responses/ListRefundsResponse" "500": $ref: "#/components/responses/InternalError" /v1/aggregators/{raast-aggregator-id}/refunds/{refund-id}: parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/RefundIdParam" get: tags: - Refunds summary: Find Refund description: Explore a refund in detail. security: - apiKey: [] responses: "200": $ref: "#/components/responses/FindRefundResponse" "500": $ref: "#/components/responses/InternalError" /v1/aggregators/{raast-aggregator-id}/qrs: parameters: - $ref: "#/components/parameters/AggregatorIdParam" post: tags: - QRs summary: Create QR description: Create a static or dynamic QR code security: - apiKey: [] responses: "200": $ref: "#/components/responses/CreateQRCodeResponse" requestBody: $ref: "#/components/requestBodies/CreateQRCode" get: tags: - QRs summary: List QRs description: Retrieve a paginated list of QR codes. It supports pagination and filtering by `aggregator_merchant_id` and `type`. If no `type` is specified, it defaults to `STATIC` security: - apiKey: [] parameters: - $ref: "#/components/parameters/QRListAggregatorMerchantIdParam" - $ref: "#/components/parameters/QRListTypeParam" - $ref: "#/components/parameters/QRListLimitParam" - $ref: "#/components/parameters/QRListOffsetParam" responses: "200": $ref: "#/components/responses/ListQRCodesResponse" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}: parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/QRIdParam" get: tags: - QRs summary: Find QR description: Explore a QR code in detail security: - apiKey: [] responses: "200": $ref: "#/components/responses/FindQRCodeResponse" "401": $ref: "#/components/responses/Unauthorized" delete: tags: - QRs summary: Delete QRs description: Delete a QR code that is previously issued. security: - apiKey: [] parameters: - $ref: "#/components/parameters/QRDeleteAggregatorMerchantIdParam" responses: "200": $ref: "#/components/responses/StandardSuccess" "400": $ref: "#/components/responses/BadRequest" /v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}/payments: parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/QRIdParam" get: tags: - QRs summary: List payments description: Retrieve a paginated list of payments made against a QR code security: - apiKey: [] parameters: - $ref: "#/components/parameters/QRPaymentListLimitParam" - $ref: "#/components/parameters/QRPaymentListOffsetParam" responses: "200": $ref: "#/components/responses/ListPaymentsForQRCodeResponse" /v1/aggregators/{raast-aggregator-id}/title-fetch: parameters: - $ref: "#/components/parameters/AggregatorIdParam" get: tags: - Utilities summary: Title Fetch description: Retrieve account title metadata for a Raast IBAN security: - apiKey: [] parameters: - $ref: "#/components/parameters/TitleFetchIbanParam" responses: "200": $ref: "#/components/responses/TitleFetchResponse" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/title-fetch/v2: parameters: - $ref: "#/components/parameters/AggregatorIdParam" get: tags: - Utilities summary: Title Fetch V2 description: Retrieve account title metadata for a conventional bank account number. Provide `account_number` and `bank_name`; Safepay resolves the receiver BIC internally before querying the Raast directory. Supported `bank_name` values and their BIC mappings are listed on this page. security: - apiKey: [] parameters: - $ref: "#/components/parameters/TitleFetchV2AccountNumberParam" - $ref: "#/components/parameters/TitleFetchV2BankNameParam" responses: "200": $ref: "#/components/responses/TitleFetchResponse" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/account-info: parameters: - $ref: "#/components/parameters/AggregatorIdParam" get: tags: - Utilities summary: Read Account Info description: Retrieve Raast account metadata using an IBAN or alias lookup security: - apiKey: [] parameters: - $ref: "#/components/parameters/AccountInfoIbanParam" - $ref: "#/components/parameters/AccountInfoWithTitleFetchParam" - $ref: "#/components/parameters/AccountInfoAliasTypeParam" - $ref: "#/components/parameters/AccountInfoAliasValueParam" responses: "200": $ref: "#/components/responses/AccountInfoResponse" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/aliases: parameters: - $ref: "#/components/parameters/AggregatorIdParam" get: tags: - Aliases summary: List aliases description: Retrieve a paginated list of aliases created. It supports pagination, filtering by `alias_type`, `status`, `merchant_identifier`, `start_date` and `expiration_date`. security: - apiKey: [] parameters: - name: limit in: query required: false example: 10 schema: type: integer - name: offset in: query required: false example: 0 schema: type: integer - name: alias_type in: query required: false example: TILL_CODE schema: type: string enum: - TILL_CODE - name: status in: query required: false description: Filter aliases by status. example: Active schema: type: string enum: - Active - Suspended - name: merchant_identifier in: query required: false example: mer_553dad9b-3984-4131-8842-84983e922351 schema: type: string - name: start_date in: query required: false example: 2028-10-10 schema: type: string format: date - name: expiration_date in: query required: false example: 2033-11-10 schema: type: string format: date responses: "200": $ref: "#/components/responses/ListAliasResponse" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/alias/{alias-id}: parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/AliasIdParam" get: tags: - Aliases summary: Find Alias description: Explore alias in detail security: - apiKey: [] responses: "200": $ref: "#/components/responses/FindAliasResponse" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/title-fetch/alias: parameters: - $ref: "#/components/parameters/AggregatorIdParam" get: tags: - Aliases summary: Title Fetch Alias description: Retrieve account title metadata for a Raast Alias security: - apiKey: [] parameters: - $ref: "#/components/parameters/AliasTypeParam" - $ref: "#/components/parameters/AliasValueParam" - $ref: "#/components/parameters/AliasWithTitleFetchParam" responses: "200": $ref: "#/components/responses/AliasTitleFetchResponse" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/ledger/accounts: parameters: - $ref: "#/components/parameters/AggregatorIdParam" get: tags: - Ledgers summary: Find Aggregator Ledger Account description: Explore ledger account in detail security: - apiKey: [] responses: "200": $ref: "#/components/responses/FindAggregatorLedgerAccountResponse" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/merchants/{aggregator-merchant-id}/ledger/accounts: parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/MerchantIdParam" get: tags: - Ledgers summary: Find Merchant Ledger Account description: Explore ledger account in detail security: - apiKey: [] responses: "200": $ref: "#/components/responses/FindMerchantLedgerAccountResponse" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/webhooks: post: tags: - Webhooks summary: Create Webhook security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" responses: "200": $ref: "#/components/responses/CreateWebhookResponse" "400": $ref: "#/components/responses/BadRequest" requestBody: $ref: "#/components/requestBodies/CreateWebhook" get: tags: - Webhooks summary: List Webhooks description: Retrieve a paginated list of webhook endpoints. security: - apiKey: [] parameters: - $ref: "#/components/parameters/WebhookListLimitParam" - $ref: "#/components/parameters/WebhookListOffsetParam" responses: "200": $ref: "#/components/responses/ListWebhookResponse" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/webhooks/{webhook-id}: parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/WebhookIdParam" put: tags: - Webhooks summary: Update Webhook security: - apiKey: [] responses: "200": $ref: "#/components/responses/UpdateWebhookResponse" "400": $ref: "#/components/responses/BadRequest" requestBody: $ref: "#/components/requestBodies/UpdateWebhook" delete: tags: - Webhooks summary: Delete Webhook security: - apiKey: [] responses: "200": $ref: "#/components/responses/EmptySuccess" "400": $ref: "#/components/responses/BadRequest" get: tags: - Webhooks summary: Find Webhook security: - apiKey: [] responses: "200": $ref: "#/components/responses/FindWebhookResponse" "400": $ref: "#/components/responses/BadRequest" /v1/aggregators/{raast-aggregator-id}/webhooks/{webhook-id}/rotate: put: tags: - Webhooks summary: Rotate Webhook security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/WebhookIdParam" responses: "200": $ref: "#/components/responses/RotateWebhookResponse" "400": $ref: "#/components/responses/BadRequest" /v1/aggregators/{raast-aggregator-id}/webhooks/{endpoint}/deliveries/{delivery}: parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/WebhookEndpointParam" - $ref: "#/components/parameters/WebhookDeliveryParam" get: tags: - Webhooks summary: Find Webhook Delivery description: Retrieve a specific webhook delivery status and payload. security: - apiKey: [] responses: "200": $ref: "#/components/responses/FindWebhookDeliveryResponse" "400": $ref: "#/components/responses/BadRequest" /v1/aggregators/{raast-aggregator-id}/webhooks/{endpoint}/deliveries: parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/WebhookEndpointParam" get: tags: - Webhooks summary: List Webhook Delivery description: Retrieve a paginated list of webhook deliveries. It supports pagination, filtering by `status`, `type` and `event_id`. security: - apiKey: [] parameters: - $ref: "#/components/parameters/WebhookDeliveryListTypeParam" - $ref: "#/components/parameters/WebhookDeliveryListEventIdParam" - $ref: "#/components/parameters/WebhookDeliveryListStatusParam" - $ref: "#/components/parameters/WebhookDeliveryListLimitParam" - $ref: "#/components/parameters/WebhookDeliveryListOffsetParam" responses: "200": $ref: "#/components/responses/ListWebhookDeliveryResponse" "400": $ref: "#/components/responses/BadRequest" /v1/aggregators/{raast-aggregator-id}/settlements/batches: parameters: - $ref: "#/components/parameters/AggregatorIdParam" get: tags: - Settlement Operations summary: List Settlement Batches description: | List settlement batches for the aggregator with cursor-based pagination. Query `status` using the integer enum; responses serialize status as the string enum name. Amounts elsewhere in settlement operations are returned in the lowest currency denomination (paisa). security: - apiKey: [] parameters: - $ref: "#/components/parameters/SettlementOpsCursorParam" - $ref: "#/components/parameters/SettlementOpsLimitParam" - $ref: "#/components/parameters/SettlementOpsDirectionParam" - name: batch_id in: query required: false description: Restrict results to a single settlement batch token (`sb_…`, exactly 39 characters). schema: type: string example: sb_1328a110-2cf5-4e13-993e-55792ec6b76c - name: status in: query required: false description: Filter by settlement batch status integer enum (`0=BATCH_CREATED`, `1=BATCH_PROCESSING`, `2=BATCH_COMPLETED`, `3=BATCH_FAILED`). Response `status` is the string enum name. schema: type: integer format: int32 enum: [0, 1, 2, 3] example: 2 responses: "200": $ref: "#/components/responses/ListSettlementBatchesResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/settlements/batches/{settlement-batch-id}: parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/SettlementBatchIdParam" get: tags: - Settlement Operations summary: Read Settlement Batch description: | Retrieve one settlement batch by token, including downloadable batch artifacts and the batch-level charge snapshot when available. Per-merchant settlement snapshot rows are exposed through the dedicated snapshots list endpoint, not embedded on this response. security: - apiKey: [] responses: "200": $ref: "#/components/responses/ReadSettlementBatchResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" /v1/aggregators/{raast-aggregator-id}/settlements/transactions: parameters: - $ref: "#/components/parameters/AggregatorIdParam" get: tags: - Settlement Operations summary: List Settlement Transactions description: | List settlement payout transactions for the aggregator by default. Set `only_transactions=true` to list underlying payment/refund ledger transactions instead. When listing settlement transactions, populate `settlement_transactions`; when listing general transactions, populate `transactions`. security: - apiKey: [] parameters: - $ref: "#/components/parameters/SettlementOpsCursorParam" - $ref: "#/components/parameters/SettlementOpsLimitParam" - $ref: "#/components/parameters/SettlementOpsDirectionParam" - name: only_transactions in: query required: false description: When true, return general payment/refund transactions in `transactions` instead of settlement payouts in `settlement_transactions`. schema: type: boolean example: false - name: settlement_batch_id in: query required: false description: Filter by settlement batch token (`sb_…`). schema: type: string example: sb_1328a110-2cf5-4e13-993e-55792ec6b76c - name: settlement_txn_id in: query required: false description: Filter by settlement transaction token (`stxn_…`, exactly 41 characters). schema: type: string example: stxn_75549797-f2c6-421d-8dd7-ce39995534b8 - name: settlement_txn_status in: query required: false description: Filter settlement transactions by status integer enum (`1=SETTLEMENT_TXN_ACK_PENDING`, `2=SETTLEMENT_TXN_POSTED`, `3=SETTLEMENT_TXN_FAILED`, `4=SETTLEMENT_TXN_REJECTED`). Response `status` is the string enum name. schema: type: integer format: int32 enum: [1, 2, 3, 4] example: 2 - name: txn_id in: query required: false description: Filter general transactions by token (`txn_…`, exactly 40 characters). Used with `only_transactions=true`. schema: type: string example: txn_8ffa984c-f0cb-4835-8eee-89c9ca673dad - name: txn_status in: query required: false description: Filter general transactions by status integer enum (`1=TXN_LEDGER_POSTED`, `2=TXN_SETTLEMENT_SCHEDULED`, `3=TXN_SETTLEMENT_DISPATCHED`, `4=TXN_SETTLEMENT_CONFIRMED`, `5=TXN_SETTLEMENT_REVERSED`). Response `status` is the string enum name. schema: type: integer format: int32 enum: [1, 2, 3, 4, 5] example: 4 responses: "200": $ref: "#/components/responses/ListSettlementTransactionsResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/settlements/transactions/{transaction-id}: parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/SettlementOpsTransactionIdParam" get: tags: - Settlement Operations summary: Read Settlement Transaction description: | Retrieve one transaction by token. The ID prefix selects the response shape: - `stxn_…` returns `data.settlement_transaction` (settlement payout) - `txn_…` returns `data.transactions` (underlying payment/refund ledger transaction) Invalid prefixes return `400 Bad Request`. security: - apiKey: [] responses: "200": $ref: "#/components/responses/ReadSettlementOpsTransactionResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" /v1/aggregators/{raast-aggregator-id}/settlements/batches/{settlement-batch-id}/transactions: parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/SettlementBatchIdParam" get: tags: - Settlement Operations summary: List Settlement Batch Transactions description: | List transactions linked to a settlement batch. By default returns underlying payment/refund transactions in `transactions`. Set `only_settlement_txns=true` to return settlement payouts in `settlement_transactions` instead. security: - apiKey: [] parameters: - $ref: "#/components/parameters/SettlementOpsCursorParam" - $ref: "#/components/parameters/SettlementOpsLimitParam" - $ref: "#/components/parameters/SettlementOpsDirectionParam" - name: only_settlement_txns in: query required: false description: When true, return settlement payouts in `settlement_transactions` instead of general transactions in `transactions`. schema: type: boolean example: false responses: "200": $ref: "#/components/responses/ListSettlementBatchTransactionsResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" /v1/aggregators/{raast-aggregator-id}/settlements/batches/{settlement-batch-id}/snapshots: parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/SettlementBatchIdParam" get: tags: - Settlement Operations summary: List Settlement Snapshots description: | List per-merchant settlement snapshots persisted for a settlement batch, including payout IBAN, account title, and amount breakdowns. `count.filtered_count` reflects optional filters; `count.total_count` is the batch total before those filters. security: - apiKey: [] parameters: - $ref: "#/components/parameters/SettlementOpsCursorParam" - $ref: "#/components/parameters/SettlementOpsLimitParam" - $ref: "#/components/parameters/SettlementOpsDirectionParam" - name: settlement_txn_id in: query required: false description: Filter by settlement transaction token (`stxn_…`). schema: type: string example: stxn_9d5bd7bd-863a-487f-944c-f15d30d9bbc5 - name: merchant_id in: query required: false description: Filter by Raast merchant token (`mer_…`). schema: type: string example: mer_ce6df98c-cdde-48bf-bc32-464cecac2ee3 responses: "200": $ref: "#/components/responses/ListSettlementSnapshotsResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" /v1/aggregators/{raast-aggregator-id}/settlements/job-runs: parameters: - $ref: "#/components/parameters/AggregatorIdParam" get: tags: - Settlement Operations summary: List Settlement Job Runs description: | List settlement-engine job runs visible to the aggregator. Results are scoped to jobs that created settlement batches containing settlement transactions for this aggregator. Use this to inspect ledger poster, ledger settler, and payout generator runs related to your settlement activity. security: - apiKey: [] parameters: - $ref: "#/components/parameters/SettlementOpsCursorParam" - $ref: "#/components/parameters/SettlementOpsLimitParam" - $ref: "#/components/parameters/SettlementOpsDirectionParam" - name: job_id in: query required: false description: Restrict results to a single job run token (`job_…`, exactly 40 characters). schema: type: string example: job_76b08225-5372-46db-9acb-086ac9c2f7d6 - name: job_type in: query required: false description: | Filter by job type integer enum (`1=LEDGER_POSTER_JOB`, `2=LEDGER_SETTLER_JOB`, `3=PAYOUT_GENERATOR_JOB`). Response `job_type` is the string enum name. schema: type: integer format: int32 enum: [1, 2, 3] example: 2 - name: job_status in: query required: false description: | Filter by job status integer enum (`1=JOB_STATUS_STARTED`, `2=JOB_STATUS_SUCCESS`, `3=JOB_STATUS_FAILED`). Response `status` is the string enum name. schema: type: integer format: int32 enum: [1, 2, 3] example: 2 - name: start_date in: query required: false description: Inclusive lower bound on job `started_at`, as a Unix timestamp in seconds. schema: type: integer format: int64 example: 1744531200 - name: end_date in: query required: false description: Inclusive upper bound on job `ended_at`, as a Unix timestamp in seconds. Must be greater than or equal to `start_date` when both are set. schema: type: integer format: int64 example: 1744617600 responses: "200": $ref: "#/components/responses/ListSettlementJobRunsResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/settlements/report-exports: post: tags: - Settlement Reports summary: Create Settlement Report Export description: Create an asynchronous settlement report export job for a batch or merchant scope. security: - apiKey: [] parameters: - name: aggregator_id in: path required: true description: Aggregator identifier that owns the settlement report exports. schema: type: string example: agg_b49985f2-e099-412e-8eb2-98756059cc0d requestBody: $ref: "#/components/requestBodies/CreateSettlementReportExport" responses: "200": $ref: "#/components/responses/CreateSettlementReportExportResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "500": $ref: "#/components/responses/InternalError" get: tags: - Settlement Reports summary: List Settlement Report Exports description: List settlement report export for aggregator. security: - apiKey: [] parameters: - name: aggregator_id in: path required: true description: Aggregator identifier that owns the settlement report exports. schema: type: string example: agg_b49985f2-e099-412e-8eb2-98756059cc0d - name: settlement_batch_id in: query required: false description: Filter report exports by settlement batch identifier. schema: type: string example: sb_6eb80843-eb2b-4df2-b85f-25d50f03d2a1 - name: merchant_id in: query required: false description: Filter report exports by merchant identifier. schema: type: string example: mer_0e4b3a32-754b-483a-9c85-80581dbef4cf - name: kind in: query required: false description: Filter report exports by report kind (1=REPORT_KIND_SEED, 2=REPORT_KIND_BATCH, 3=REPORT_KIND_MERCHANT). schema: type: string enum: - 1 - 2 - 3 example: 2 - name: status in: query required: false description: Filter report exports by processing status (1=PENDING, 2=RUNNING, 3=SUCCEEDED, 4=FAILED, 5=SEEDED, 6=RETRYING). schema: type: integer format: int32 enum: - 1 - 2 - 3 - 4 - 5 - 6 example: 3 - name: started_at_from in: query required: false description: Include report exports started at or after this Unix timestamp. schema: type: integer format: int64 example: 1711929600 - name: started_at_to in: query required: false description: Include report exports started at or before this Unix timestamp. schema: type: integer format: int64 example: 1712016000 - name: date_from in: query required: false description: Include report exports created on or after this Unix timestamp. schema: type: integer format: int64 example: 1711929600 - name: date_to in: query required: false description: Include report exports created on or before this Unix timestamp. schema: type: integer format: int64 example: 1712016000 - name: limit in: query required: false description: Maximum number of records to return. schema: type: string example: "20" - name: offset in: query required: false description: Number of records to skip before listing results. schema: type: string example: "0" responses: "200": $ref: "#/components/responses/ListSettlementReportExportsResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/settlements/report-exports/{report-export-id}: get: tags: - Settlement Reports summary: Read Settlement Report Export description: Read one settlement report export and retrieve a signed download URL when available. security: - apiKey: [] parameters: - name: aggregator_id in: path required: true description: Aggregator identifier that owns the settlement report exports. schema: type: string example: agg_b49985f2-e099-412e-8eb2-98756059cc0d - name: report_export_id in: path required: true description: Settlement report export identifier. schema: type: string example: rpt_7670f587-0396-4939-ba4b-585ca67983a2 responses: "200": $ref: "#/components/responses/ReadSettlementReportExportResponse" "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" components: securitySchemes: apiKey: type: apiKey name: X-SFPY-AGGREGATOR-SECRET-KEY in: header headers: ContentLengthHeader: schema: type: string example: "256" DateHeader: schema: type: string example: Sat, 12 Aug 2023 08:55:04 GMT parameters: AggregatorIdParam: name: raast-aggregator-id in: path required: true schema: type: string example: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e description: The unique identifier for the aggregator SettlementBatchIdParam: name: settlement-batch-id in: path required: true description: Settlement batch token. Must start with `sb_` and be exactly 39 characters. schema: type: string example: sb_1328a110-2cf5-4e13-993e-55792ec6b76c SettlementOpsTransactionIdParam: name: transaction-id in: path required: true description: | Transaction token. Use a settlement transaction id (`stxn_…`, 41 characters) or a general transaction id (`txn_…`, 40 characters). schema: type: string example: stxn_d646b075-f62b-49f7-ab0f-7df161a6fc0b SettlementOpsCursorParam: name: cursor in: query required: false description: Cursor for pagination. Pass the previous response `next_cursor`, or omit/`0` for the first page. schema: type: integer format: int64 example: 0 SettlementOpsLimitParam: name: limit in: query required: false description: Page size. Default `30`. Maximum `100`. `0` is treated as the default. schema: type: integer format: int32 example: 30 SettlementOpsDirectionParam: name: direction in: query required: false description: Sort direction on the underlying numeric id. Must be uppercase `ASC` or `DESC`. Invalid or empty values default to `DESC`. schema: type: string enum: [ASC, DESC] example: DESC AggregatorSecretKeyHeader: name: X-SFPY-AGGREGATOR-SECRET-KEY in: header required: false description: API key issued to the aggregator; supply when authenticating programmatic requests. schema: type: string example: sk_live_c66a5b38-0ce1-4f83-8d72-57b8f91a8762 AggregatorSecretKeyHeaderRequired: name: X-SFPY-AGGREGATOR-SECRET-KEY in: header required: true description: API key issued to the aggregator; required when deleting QR codes. schema: type: string example: sk_live_c66a5b38-0ce1-4f83-8d72-57b8f91a8762 AccessKeyIdParam: name: access-key-id in: path required: true schema: type: string example: ak_da8f1c10-346a-4be8-895a-b6187a9a9662 description: The unique identifier for the access key MerchantIdParam: name: aggregator-merchant-id in: path required: true schema: type: string example: am_be454a50-7612-4dc6-a97e-284ebbe7ae93 description: The unique identifier for the merchant MerchantListLimitParam: name: limit in: query required: false schema: type: string example: "10" description: Maximum number of merchants to return in a single page MerchantListOffsetParam: name: offset in: query required: false schema: type: string example: "0" description: Cursor offset used for pagination MerchantListEnabledParam: name: enabled in: query required: false schema: type: string example: "true" description: Filter merchants by their enabled status MerchantListIdentifiersParam: name: merchant_identifiers in: query required: false schema: type: string example: am_1234567890 description: Comma-separated list of merchant identifiers to match MerchantListNamesParam: name: names in: query required: false schema: type: string example: Test Merchant description: Comma-separated list of merchant names to match RaastMerchantIdParam: name: raast-merchant-id in: path required: true schema: type: string example: mer_2cab1524-805d-4a09-8e51-924ddf3f43ea description: The unique identifier for the Raast merchant PaymentIdParam: name: payment-id in: path required: true schema: type: string example: pm_2288490a-2176-4de5-b373-0ffb6f8e2e6e description: The unique identifier for the payment RefundIdParam: name: refund-id in: path required: true schema: type: string example: rfd_7e26f9be-f59d-4025-8e17-9fc398d16230 description: The unique identifier for the refund QRIdParam: name: qr-id in: path required: true schema: type: string example: qr_7e26f9be-f59d-4025-8e17-9fc398d16230 description: The unique identifier for the QR code QRListAggregatorMerchantIdParam: name: aggregator_merchant_id in: query required: false schema: type: string example: am_be454a50-7612-4dc6-a97e-284ebbe7ae93 description: Filter QR codes by Safepay aggregator merchant identifier QRListTypeParam: name: type in: query required: false schema: type: string enum: - STATIC - DYNAMIC example: STATIC description: Limit results to QR codes of the given type QRListLimitParam: name: limit in: query required: false schema: type: string example: "10" description: Maximum number of QR codes to include in the response QRListOffsetParam: name: offset in: query required: false schema: type: string example: "0" description: Number of QR codes to skip before starting the result set QRDeleteAggregatorMerchantIdParam: name: aggregator_merchant_id in: query required: false schema: type: string example: am_be454a50-7612-4dc6-a97e-284ebbe7ae93 description: Optional aggregator merchant identifier used when deleting a QR code QRPaymentListLimitParam: name: limit in: query required: false description: Maximum number of payments to return for the QR code. schema: type: string example: "10" example: "10" QRPaymentListOffsetParam: name: offset in: query required: false description: Number of payments to skip before starting the result set. schema: type: string example: "0" example: "0" TitleFetchIbanParam: name: iban in: query required: false description: IBAN to fetch the registered account title for. schema: type: string example: PK46MPBL0101017140572181 example: PK46MPBL0101017140572181 TitleFetchV2AccountNumberParam: name: account_number in: query required: true description: Conventional bank account number to fetch the registered account title for. schema: type: string example: "1007079203" example: "1007079203" TitleFetchV2BankNameParam: name: bank_name in: query required: true description: Full name of the beneficiary's bank institution. Must match one of the supported values listed on this page exactly. Used to resolve the receiver BIC internally; unknown bank names return a validation error. schema: type: string example: BANK AL FALAH LIMITED example: BANK AL FALAH LIMITED AccountInfoIbanParam: name: iban in: query required: false description: IBAN to fetch account information for; optional when alias parameters are supplied. schema: type: string example: PK91ALFH0005001007079203 example: PK91ALFH0005001007079203 AccountInfoWithTitleFetchParam: name: with_title_fetch in: query required: false description: When true, include account title details in the response. schema: type: boolean example: true example: true AccountInfoAliasTypeParam: name: alias_type in: query required: false description: Alias type used for lookup; only MOBILE is supported currently. schema: type: string enum: - MOBILE example: MOBILE example: MOBILE AccountInfoAliasValueParam: name: alias_value in: query required: false description: Alias value to resolve; must be provided when alias_type is supplied. schema: type: integer example: 3472840476 example: 3472840476 AliasTypeParam: name: type in: query required: false description: Alias type used for lookup; only TILL_CODE is supported currently. schema: type: string example: TILL_CODE example: TILL_CODE AliasValueParam: name: value in: query required: false description: Alias value to resolve; must be provided when alias_type is supplied. schema: type: integer example: 541732040 example: 541732040 AliasWithTitleFetchParam: name: with_title_fetch in: query required: false description: When true, include account title details in the response. schema: type: boolean example: true example: true RaastMerchantListLimitParam: name: limit in: query required: false description: Maximum number of Raast merchants to return in the current page. schema: type: string example: "10" example: "10" RaastMerchantListOffsetParam: name: offset in: query required: false description: Number of Raast merchant records to skip before starting the result set. schema: type: string example: "0" example: "0" RaastMerchantListStatusParam: name: status in: query required: false description: Filter Raast merchants by onboarding status. schema: type: string enum: - Active - Inactive - Suspended example: Active example: Active RaastMerchantListNameParam: name: name in: query required: false description: Filter Raast merchants by name. schema: type: string example: Raast-Saphir-Merch example: Raast-Saphir-Merch LimitQueryParam: name: limit in: query required: false description: Maximum number of records to return in the current page schema: type: integer minimum: 0 maximum: 100 default: 10 example: 10 example: 10 OffsetQueryParam: name: offset in: query required: false description: Number of records to skip before collecting the result set schema: type: integer minimum: 0 default: 0 example: 0 example: 0 AccessKeyNamesParam: name: names in: query required: false description: Filter keys by a comma-separated list of name fragments schema: type: string example: Primary Key,Backup Key example: Primary Key,Backup Key AccessKeyIsActiveParam: name: is_active in: query required: false description: Filter keys by active status using true or false schema: type: string enum: - true - false example: true example: true AliasIdParam: name: alias-id in: path required: true schema: type: string example: als_962c42c4-06a1-482f-a227-970453f29eb9 description: The unique identifier for the alias WebhookIdParam: name: webhook-id in: path required: true schema: type: string example: wh_be2d4ee4-96b0-4104-92b2-95237fd3aa16 description: The unique identifier for the webhook WebhookEndpointParam: name: endpoint in: path required: true schema: type: string example: wh_6b849c6f-c091-4ad3-b7a9-de06415c6db3 description: The unique identifier for the webhook endpoint WebhookDeliveryParam: name: delivery in: path required: true schema: type: string example: whd_f35737a8-60d0-4d62-8259-9cade007570a description: The unique identifier for the webhook delivery WebhookListLimitParam: name: limit in: query required: false schema: type: string example: "10" description: Maximum number of webhook endpoints to include in the response WebhookListOffsetParam: name: offset in: query required: false schema: type: string example: "0" description: Number of webhook endpoints to skip before starting the result set WebhookDeliveryListLimitParam: name: limit in: query required: false schema: type: string example: "10" description: Maximum number of Webhook deliveries to include in the response WebhookDeliveryListOffsetParam: name: offset in: query required: false schema: type: string example: "0" description: Number of Webhook deliveries to skip before starting the result set WebhookDeliveryListStatusParam: name: status in: query required: false description: Filter Webhook deliveries by their status. schema: type: string enum: - WD_PENDING - WD_DELIVERED - WD_FAILED - WD_DEAD example: WD_DELIVERED example: WD_DELIVERED WebhookDeliveryListEventIdParam: name: event_id in: query required: false description: Filter Webhook deliveries by event_id. schema: type: string example: txnlog_5246fdcc-6c86-49bb-9da2-aa38262e0291 WebhookDeliveryListTypeParam: name: type in: query required: false schema: type: string enum: - payment.created - payment.pending_authorization - payment.authorized - payment.completed - payment.settled - payment.refunded - payment.refund_partial - payment.rejected - payment.failed - payment.reversed - payment.voided - settlement.created - settlement.processing - settlement.completed - settlement.failed - settlement.on_hold - settlement.reversed - refund.created - refund.completed - refund.failed - refund.canceled example: refund.created description: Limit results to Webhook deliveries of the given type schemas: CreateRtpBase: type: object description: Base RTP creation payload shared across all debitor identifier options. properties: request_id: type: string description: Client-supplied idempotency identifier for the RTP request. amount: type: integer description: Payment amount in the smallest currency unit (PKR). aggregator_merchant_identifier: type: string description: Identifier for the merchant on whose behalf the RTP is initiated. order_id: type: string description: Merchant order identifier associated with the RTP. type: type: string description: Indicates whether the RTP should be processed immediately or scheduled. enum: - RTP_NOW - RTP_LATER expiry_in_minutes: type: integer description: Minutes until the RTP NOW request expires; must be between 1 and 180. minimum: 1 maximum: 180 expiry_in_days: type: integer description: Days until the RTP LATER request expires; must be between 1 and 40. minimum: 1 maximum: 40 required: - request_id - amount - aggregator_merchant_identifier - order_id - type CreateRtpWithRaastId: allOf: - $ref: "#/components/schemas/CreateRtpBase" - type: object properties: debitor_raast_id: type: string description: Raast alias for the debitor (for example, a mobile number). required: - debitor_raast_id CreateRtpWithIban: allOf: - $ref: "#/components/schemas/CreateRtpBase" - type: object properties: debitor_iban: type: string description: Debitor IBAN for direct account routing. required: - debitor_iban CreateRtpWithVaultToken: allOf: - $ref: "#/components/schemas/CreateRtpBase" - type: object properties: debitor_vault_token: type: string description: Token referencing a stored debitor payment instrument in the vault. required: - debitor_vault_token Timestamp: type: string format: date-time description: ISO 8601 timestamp in UTC example: 2025-03-13T09:12:34Z StandardResponse: type: object description: Standard response structure for successful operations properties: api_version: type: string example: v1 description: The current version of the API spec data: type: object description: Contains the response data ErrorResponse: type: object description: Standard error response structure properties: code: type: string description: Error code identifying the type of error message: type: string description: Human-readable error message ApiErrorEnvelope: type: object description: Error wrapper that includes the API version and error metadata properties: api_version: type: string description: Indicates the API version associated with the response example: v1 error: description: Structured error details describing why the request failed allOf: - $ref: "#/components/schemas/ErrorResponse" example: code: error.unauthorized_access message: partner access key is required in request header TitleFetchResult: type: object description: Raast account title lookup result properties: statusCode: type: integer description: Numeric status code returned by the Raast directory acctitle: type: string description: Registered account title associated with the account acctype: type: string description: Classification of the account iban: type: string description: IBAN associated with the account when returned by the directory (for example, on conventional account lookups) AccountInfo: type: object description: Raast account metadata resolved by IBAN or alias lookup properties: iban: type: string description: IBAN associated with the account when available type: type: string description: Raast account classification code currency: type: string description: ISO 4217 currency code for the account servicer_member_id: type: string description: Member identifier of the servicing institution name: type: string description: Registered account holder name is_default: type: boolean description: Indicates if the account is the default for the merchant dba: type: string description: Doing-business-as name if present mcc: type: string description: Merchant category code associated with the account account_title: type: string description: Account title when title fetch is requested account_type: type: string description: Account type description returned from Raast PaymentParty: type: object description: Participant record linked to a payment or payout properties: id: type: string description: Internal Safepay identifier for the payment party token: type: string description: Public token representing the payment party role: type: string description: Role played by the participant in the transaction lifecycle payment_id: type: string description: Identifier of the payment that this party belongs to bank_account_id: type: string description: Identifier of the linked bank account bank_account: description: Bank account resource associated with the party when available $ref: "#/components/schemas/BankAccount" created_at: $ref: "#/components/schemas/Timestamp" updated_at: $ref: "#/components/schemas/Timestamp" Aggregator: type: object description: Aggregator resource containing configuration and linked access keys properties: token: type: string description: Public token assigned to the aggregator example: agg_tok_2b42c4d0 partner_id: type: string description: Partner identifier associated with the aggregator account example: partner_123456 bank_account_id: type: string description: Identifier of the default settlement bank account example: ba_2cab1524-805d-4a09-8e51-924ddf3f43ea name: type: string description: Human-readable name of the aggregator example: Example Aggregator is_active: type: boolean description: Indicates whether the aggregator is currently active example: true is_super: type: boolean description: Indicates whether the aggregator has super admin privileges example: true vault_enabled: type: boolean description: Specifies if Safepay vault features are enabled for the aggregator example: true bank_account: description: Bank account resource associated with the aggregator when available $ref: "#/components/schemas/BankAccount" keys: type: array description: Collection of access keys associated with the aggregator items: $ref: "#/components/schemas/AccessKey" created_at: description: Timestamp indicating when the aggregator was created allOf: - $ref: "#/components/schemas/Timestamp" updated_at: description: Timestamp indicating the last update to the aggregator allOf: - $ref: "#/components/schemas/Timestamp" AccessKey: type: object description: Access key credential used to authenticate aggregator API requests properties: id: type: string description: Internal identifier for the access key example: ak_da8f1c10-346a-4be8-895a-b6187a9a9662 token: type: string description: Public token that represents the access key example: ak_tok_fede37a6 key_id: type: string description: External identifier for the key exposed to clients example: key_live_e111f1c10 aggregator_id: type: string description: Aggregator identifier that owns the access key example: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e is_active: type: boolean description: Indicates whether the key can be used for authentication example: true name: type: string description: Friendly label assigned to the access key example: Primary Production Key secret: type: string description: Secret value issued for the key; only returned on creation or rotation example: sk_live_uMPN7cX2b1 created_at: description: Timestamp indicating when the key was provisioned allOf: - $ref: "#/components/schemas/Timestamp" updated_at: description: Timestamp indicating the last update applied to the key allOf: - $ref: "#/components/schemas/Timestamp" BankAccount: type: object properties: id: type: string description: Internal Safepay identifier for the bank account token: type: string vault_token: type: string title: type: string iban: type: string redacted_iban: type: string hashed_iban: type: string servicer: type: string bank: type: string depositor_id: type: string owner: type: string kind: type: integer version: type: string created_at: $ref: "#/components/schemas/Timestamp" updated_at: $ref: "#/components/schemas/Timestamp" RaastMerchant: type: object description: Raast merchant profile synchronized from the state bank registry properties: id: type: string description: Internal Safepay identifier for the Raast merchant record token: type: string description: Public Raast merchant token partner_id: type: string description: Identifier of the upstream partner associated with the merchant raast_record_id: type: string description: Identifier issued by the Raast directory status: type: string description: Current activation status reported by Raast uid_type: type: string description: Type of the merchant unique identifier such as NTN or CNIC uid_value: type: string description: Value of the unique identifier registered with Raast name: type: string description: Legal entity name on file with Raast document_type: type: string description: Supporting document type recorded during onboarding document_number: type: string description: Number of the supporting document address_details: type: object description: Merchant registered address per Raast records properties: country: type: string description: ISO 3166-1 alpha-2 country code city: type: string description: City of the address state_province_region: type: string description: Province or region of the address address_line: type: string description: Street-level address line contact_details: type: object description: Merchant contact information on file properties: mobile_number: type: string description: Merchant contact mobile number in E.164 format email: type: string format: email description: Merchant contact email address additional_details: type: object description: Optional public metadata collected during onboarding properties: dba: type: string description: Doing-business-as name if different from the legal name mcc: type: string description: Merchant category code associated with the merchant lat: type: string description: Latitude coordinate when available long: type: string description: Longitude coordinate when available additional_details_private: type: object description: Safepay private metadata for the Raast merchant created_at: $ref: "#/components/schemas/Timestamp" updated_at: $ref: "#/components/schemas/Timestamp" RateCard: type: object description: Rate configuration associated with a merchant for Raast payments properties: id: type: string description: Internal Safepay identifier for the rate card linkage token: type: string description: Public token representing the merchant rate card aggregator_merchant_id: type: string description: Identifier of the aggregator merchant that owns the rate card connector_id: type: string description: Identifier of the connector through which payments are processed rate_card_id: type: string description: Identifier of the underlying rate definition template ratecard_kind: $ref: "#/components/schemas/RateCardKind" fixed_rate: type: integer description: Fixed transaction fee in paisa when applicable tax_rate: type: number description: Tax rate applied to the fixed fee (fractional value) tax_region: type: string description: Region for which the tax rate applies variable_rate: type: number description: Percentage fee applied to the transaction amount sales_tax_withholding: type: number description: Sales tax withholding rate applied to the transaction (fractional value) income_tax_withholding: type: number description: Income tax withholding rate applied to the transaction (fractional value) created_at: $ref: "#/components/schemas/Timestamp" updated_at: $ref: "#/components/schemas/Timestamp" RateCardKind: type: string description: "Enumerated rate card strategy where numeric Raast values map to constants (0: RateCardKind_unspecified, 1: RateCardKind_variable, 2: RateCardKind_fixed, 3: RateCardKind_blend)." enum: - RateCardKind_unspecified - RateCardKind_variable - RateCardKind_fixed - RateCardKind_blend example: RateCardKind_fixed Merchant: type: object description: Merchant resource created under an aggregator for Raast transactions properties: id: type: string description: Internal Safepay identifier for the merchant token: type: string description: Public token identifying the aggregator merchant name: type: string description: Display name of the merchant aggregator_id: type: string description: Identifier of the aggregator that owns the merchant merchant_id: type: string description: Identifier of the linked Raast merchant account merchant_external_id: type: string description: Original merchant identifier provided by the aggregator bank_account_id: type: string description: Identifier of the settlement bank account enabled: type: boolean description: Indicates whether the merchant is currently active bank_account: $ref: "#/components/schemas/BankAccount" raast_merchant: $ref: "#/components/schemas/RaastMerchant" rate_card: $ref: "#/components/schemas/RateCard" created_at: $ref: "#/components/schemas/Timestamp" updated_at: $ref: "#/components/schemas/Timestamp" TransactionLogs: type: object description: Event log generated for a payment lifecycle transition. properties: id: type: string description: Identifier of the transaction log entry. type: type: string description: Classification of the logged event. payment_id: type: string description: Identifier of the payment linked to the event. status: type: string description: Payment status recorded by this log entry. refund_id: type: string description: Refund identifier when the log entry references a refund. settlement_id: type: string description: Settlement identifier when the log entry references settlement activity. txn_desc: type: string description: Human-readable description of the event. addtl_info: type: string description: Additional information provided for the event. token: type: string description: Public token assigned to the log entry. timestamp: type: string format: date-time description: ISO-8601 timestamp captured for the event. iso_msg_type: type: string description: Raast ISO message type associated with this event. QRCode: type: object properties: id: type: string token: type: string aggregator_merchant_id: type: string type: type: string code: type: string terminal_label: type: string reference_label: type: string is_deleted: type: boolean created_at: type: string format: date-time Alias: type: object description: Raast alias record properties: id: type: string token: type: string merchant_id: type: string alias_type: type: string description: Type of alias (e.g., TILL_CODE) alias_value: type: string description: The alias value (e.g., 541732040) status: type: string description: Current status of the alias (e.g., Active, Suspended) start_date: type: string format: date description: Start date for the alias validity expiration_date: type: string format: date description: Expiration date for the alias validity opening_date: type: string format: date description: Opening date of the alias closing_date: type: string format: date description: Closing date of the alias created_at: type: string format: date-time updated_at: type: string format: date-time alias_record_id: type: string description: Raast alias record identifier LedgerAccount: type: object description: ledger account record properties: id: type: string token: type: string account_type: type: string account_name: type: string normal_balance: type: string balance: type: string currency: type: string running_balance: type: string vault_token: type: string bank_acct_id: type: string external_partner_id: type: string external_aggregator_id: type: string external_merchant_id: type: string created_at: type: string format: date-time updated_at: type: string format: date-time Payment: type: object description: Payment record returned by Safepay aggregator APIs. properties: id: type: string description: Internal identifier for the payment record. token: type: string description: Public token that uniquely identifies the payment. aggregator_id: type: string description: Aggregator identifier that owns the payment. aggregator_merchant_id: type: string description: Aggregator merchant on whose behalf the payment was initiated. qr_code_id: type: string description: Identifier of the QR code associated with the payment. order_id: type: string description: Merchant-supplied order identifier for the payment. type: type: string description: Indicates how the payment request was initiated. enum: - RTP_NOW - RTP_LATER - STATIC_QR - DYNAMIC_QR amount: type: string description: Payment amount expressed as a string to preserve formatting. status: type: string description: Current status of the payment. enum: - P_INITIATED - P_RECEIVED - P_CANCELLED - P_REJECTED - P_FAILED - P_AUTHORIZED - P_REVERSED - P_CAPTURED - P_SETTLED - P_PARTIALLY_REFUNDED - P_REFUNDED uetr: type: string description: Unique End-to-end Transaction Reference assigned by Raast. trace_reference: type: string description: Trace reference identifier used for reconciliation. msg_id: type: string description: Raast network message identifier for the payment. instr_id: type: string description: Instruction identifier from the Raast message payload. end_to_end_id: type: string description: End-to-end identifier recorded for the payment. pmt_inf_id: type: string description: Payment information identifier from the Raast message. request_id: type: string description: Client-supplied idempotency identifier. msg_created_at: type: string description: Timestamp captured in the Raast message associated with the payment. expires_at: allOf: - $ref: "#/components/schemas/Timestamp" description: Expiry timestamp for the payment request. nullable: true created_at: allOf: - $ref: "#/components/schemas/Timestamp" description: Timestamp when the payment record was created. updated_at: allOf: - $ref: "#/components/schemas/Timestamp" description: Timestamp when the payment record was last updated. txn_logs: type: array description: Lifecycle events generated for the payment. items: $ref: "#/components/schemas/TransactionLogs" payment_parties: type: array description: Participant records involved in the payment lifecycle. items: $ref: "#/components/schemas/PaymentParty" debitor: type: object description: Debitor metadata when available. nullable: true qr_code: allOf: - $ref: "#/components/schemas/QRCode" description: QR code details associated with the payment when available. nullable: true aggregator_merchant: allOf: - $ref: "#/components/schemas/Merchant" description: Aggregator merchant details when linked to the payment. nullable: true refunds: type: array description: Refunds applied to the payment. items: $ref: "#/components/schemas/Refund" settlement: type: object description: Settlement information for the payment when applicable. nullable: true PaymentCreationResult: type: object description: Data returned when an RTP request is created successfully. properties: message: type: string description: Human-readable confirmation message from the API. token: type: string description: Public token representing the newly created payment. msg_id: type: string description: Raast network message identifier assigned to the request. trace_reference: type: string description: Trace reference generated for reconciliation. uetr: type: string description: Unique End-to-end Transaction Reference associated with the payment. status: type: string description: Initial status assigned to the payment after creation. enum: - P_INITIATED - P_RECEIVED - P_CANCELLED - P_REJECTED - P_FAILED - P_AUTHORIZED - P_REVERSED - P_CAPTURED - P_SETTLED - P_PARTIALLY_REFUNDED - P_REFUNDED order_id: type: string description: Merchant order identifier echoed back in the response. created_at: type: string format: date-time description: Timestamp when the payment was created in the Safepay platform. Refund: type: object properties: token: type: string payment_id: type: string amount: type: string type: type: string reason: type: string addtl_info: type: string status: type: string trace_reference: type: string msg_id: type: string return_id: type: string request_id: type: string msg_created_at: $ref: "#/components/schemas/Timestamp" settle_at: nullable: true created_at: $ref: "#/components/schemas/Timestamp" updated_at: $ref: "#/components/schemas/Timestamp" EMVCoDetails: type: object properties: payload_format_indicator: type: string point_of_initiation_method: type: string merchant_category_code: type: string transaction_currency: type: string transaction_amount: type: string country_code: type: string merchant_name: type: string merchant_city: type: string postal_code: type: string tip_or_convenience_indicator: type: string convenience_fixed_fee: type: string convenience_percentage_fee: type: string crc: type: string additional_data_field_template: type: object properties: bill_number: type: string store_label: type: string loyalty_label: type: string customer_label: type: string reference_label: type: string terminal_label: type: string transaction_purpose: type: string additional_consumer_request: type: string country_code: type: string rfu_for_emvco: type: array items: {} payment_system_specific: type: array items: {} merchant_information_language_template: nullable: true merchant_account_information: type: array items: type: object properties: tag: type: string value: type: object properties: globally_unique_identifier: type: object properties: tag: type: string value: type: string payment_network_specific: type: array items: type: object properties: tag: type: string value: type: string rfu_for_emvco: type: array items: {} unreserved_templates: type: array items: type: object properties: tag: type: string value: type: object properties: globally_unique_identifier: type: object properties: tag: type: string value: type: string context_specific_data: type: array items: type: object properties: tag: type: string value: type: string QRCodeDetailed: type: object description: Detailed QR code payload including EMVCo metadata for static and dynamic QR representations. properties: id: type: string description: Internal identifier assigned to the QR code record. token: type: string description: Public token referencing the QR code. aggregator_merchant_id: type: string description: Identifier of the aggregator merchant that owns the QR code. type: type: string description: Indicates whether the QR code is STATIC or DYNAMIC. code: type: string description: Complete EMVCo QR string that can be rendered for scanning. terminal_label: type: string description: Optional terminal label encoded in the QR code. reference_label: type: string description: Optional reference label encoded in the QR code. is_deleted: type: boolean description: Flag indicating whether the QR code has been revoked or deleted. code_details: allOf: - $ref: "#/components/schemas/EMVCoDetails" description: Parsed EMVCo details extracted from the QR string. created_at: allOf: - $ref: "#/components/schemas/Timestamp" description: Timestamp when the QR code was created. expired_at: allOf: - $ref: "#/components/schemas/Timestamp" description: Timestamp when the QR code expires, when applicable. Webhook: type: object properties: token: type: string aggregator_id: type: string url: type: string description: type: string enabled: type: boolean event_filter_json: type: string secret: type: string description: Base64-encoded signing secret (returned on create or rotate). Base64-decode it and use the bytes as the HMAC-SHA256 key when verifying webhook deliveries; see webhooks documentation for the signature algorithm. secret_version: type: integer created_at: type: string format: date-time updated_at: type: string format: date-time secret_rotated_at: type: string format: date-time WebhookDelivery: type: object description: Delivery attempt metadata for a webhook event. properties: token: type: string description: Public token representing the webhook delivery. endpoint_token: type: string description: Identifier of the webhook endpoint this delivery was sent to. aggregator_id: type: string description: Aggregator that owns the webhook endpoint. event_id: type: string description: Event identifier associated with this delivery. type: type: string description: Event type delivered. payload_json: type: string description: Raw JSON payload delivered to the endpoint. status: type: string description: Current status of the delivery attempt. attempts: type: integer description: Number of attempts made to deliver the payload. last_error: type: string description: Last error message if delivery failed. next_attempt_at: $ref: "#/components/schemas/Timestamp" description: Timestamp for the next scheduled retry, if applicable. created_at: $ref: "#/components/schemas/Timestamp" delivered_at: $ref: "#/components/schemas/Timestamp" SettlementListCount: type: object description: Count metadata for settlement list responses. properties: filtered_count: type: string description: Number of records matching the current filters. example: "1" total_count: type: string description: Total records in the same scope before optional filters. example: "5" SettlementJobRun: type: object description: Settlement-engine job run metadata (ledger poster, ledger settler, or payout generator). properties: id: type: string example: "42" token: type: string example: job_76b08225-5372-46db-9acb-086ac9c2f7d6 job_type: type: string enum: - UNSPECIFIED_JOB - LEDGER_POSTER_JOB - LEDGER_SETTLER_JOB - PAYOUT_GENERATOR_JOB example: LEDGER_SETTLER_JOB status: type: string enum: - JOB_STATUS_UNSPECIFIED - JOB_STATUS_STARTED - JOB_STATUS_SUCCESS - JOB_STATUS_FAILED example: JOB_STATUS_SUCCESS started_at: $ref: "#/components/schemas/Timestamp" ended_at: allOf: - $ref: "#/components/schemas/Timestamp" nullable: true error_message: type: string example: "" created_at: $ref: "#/components/schemas/Timestamp" SettlementBatchArtifact: type: object description: Downloadable file artifact attached to a settlement batch. properties: id: type: string example: "21" batch_id: type: string example: sb_1328a110-2cf5-4e13-993e-55792ec6b76c artifact_type: type: string description: Artifact type enum name. enum: - BATCH_ARTIFACT_TYPE_UNSPECIFIED - BATCH_ARTIFACT_TYPE_SETTLEMENT_FILE - BATCH_ARTIFACT_TYPE_CHARGES_SUMMARY_FILE example: BATCH_ARTIFACT_TYPE_SETTLEMENT_FILE file_name: type: string example: CEP Safepay 20260723113002 sb_1328a110-2cf5-4e13-993e-55792ec6b76c.xls s3_key: type: string example: settlement-batches/partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8/sb_1328a110-2cf5-4e13-993e-55792ec6b76c/CEP Safepay 20260723113002 sb_1328a110-2cf5-4e13-993e-55792ec6b76c.xls presigned_url: type: string description: Temporary signed URL used to download the artifact. example: https://example-bucket.s3.amazonaws.com/settlement-batches/... created_at: $ref: "#/components/schemas/Timestamp" SettlementBatchChargeSnapshot: type: object description: Batch-level charges summary totals. Amounts are in the lowest currency denomination. properties: id: type: string example: "8" batch_id: type: string example: sb_1328a110-2cf5-4e13-993e-55792ec6b76c gross_amount: type: string example: "8100" net_amount: type: string example: "7814" fee_amount: type: string example: "39" sales_tax_on_fee_amount: type: string example: "4" sales_tax_withholding_amount: type: string example: "162" income_tax_withholding_amount: type: string example: "81" digital_tax_amount: type: string example: "0" created_at: $ref: "#/components/schemas/Timestamp" SettlementSnapshot: type: object description: Per-merchant settlement snapshot captured for a batch. properties: id: type: string example: "44" batch_id: type: string example: sb_1328a110-2cf5-4e13-993e-55792ec6b76c settlement_transaction_id: type: string example: stxn_9d5bd7bd-863a-487f-944c-f15d30d9bbc5 merchant_id: type: string example: mer_ce6df98c-cdde-48bf-bc32-464cecac2ee3 aggregator_id: type: string example: agg_b49985f2-e099-412e-8eb2-98756059cc0d iban: type: string example: PK36SCBL0000001123456702 account_title: type: string example: OPTIVOLVE DIGITAL gross_amount: type: string example: "7900" net_amount: type: string example: "7620" fee_amount: type: string example: "39" sales_tax_on_fee_amount: type: string example: "4" sales_tax_withholding_amount: type: string example: "158" income_tax_withholding_amount: type: string example: "79" digital_tax_amount: type: string example: "0" currency: type: string example: PKR created_at: $ref: "#/components/schemas/Timestamp" SettlementBatch: type: object description: Settlement batch metadata for aggregator settlement operations. properties: id: type: string example: "200" token: type: string example: sb_1328a110-2cf5-4e13-993e-55792ec6b76c file_name: type: string example: "" date: $ref: "#/components/schemas/Timestamp" status: type: string enum: - BATCH_CREATED - BATCH_PROCESSING - BATCH_COMPLETED - BATCH_FAILED example: BATCH_COMPLETED version: type: integer example: 1 created_by_job_id: type: string example: job_76b08225-5372-46db-9acb-086ac9c2f7d6 partner_id: type: string example: partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8 artifacts: type: array items: $ref: "#/components/schemas/SettlementBatchArtifact" settlement_snapshots: type: array description: Usually empty on read; use the snapshots list endpoint for per-row data. items: $ref: "#/components/schemas/SettlementSnapshot" charge_snapshot: allOf: - $ref: "#/components/schemas/SettlementBatchChargeSnapshot" nullable: true created_at: $ref: "#/components/schemas/Timestamp" SettlementTransaction: type: object description: Settlement payout transaction dispatched as part of a batch. properties: id: type: string example: "49" token: type: string example: stxn_75549797-f2c6-421d-8dd7-ce39995534b8 settlement_batch_id: type: string example: sb_1328a110-2cf5-4e13-993e-55792ec6b76c aggregator_id: type: string example: agg_8fd114c0-1364-4953-8773-62551397ffe1 aggregator_merchant_id: type: string example: am_7c9594a6-962d-49c7-94e9-64d9cf285969 raast_merchant_id: type: string example: mer_e1a38d10-0064-4d7b-a700-f4ba483efb05 status: type: string enum: - SETTLEMENT_TXN_ACK_PENDING - SETTLEMENT_TXN_POSTED - SETTLEMENT_TXN_FAILED - SETTLEMENT_TXN_REJECTED example: SETTLEMENT_TXN_POSTED attempt: type: integer example: 1 gross_amount: type: string example: "300" fee_amount: type: string example: "0" net_amount: type: string example: "294" sales_tax_on_fee_amount: type: string example: "0" sales_tax_withholding_amount: type: string example: "4" income_tax_withholding_amount: type: string example: "2" digital_tax_amount: type: string example: "0" debitor_account_id: type: string example: acct_f72d1825-31cc-43a2-a7f6-4463443a1c46 creditor_account_id: type: string example: acct_7f073fa9-e248-4f96-8e7c-99ddcd282124 failure_reason: type: string example: "" created_at: $ref: "#/components/schemas/Timestamp" updated_at: $ref: "#/components/schemas/Timestamp" debitor_account: allOf: - $ref: "#/components/schemas/LedgerAccount" nullable: true creditor_account: allOf: - $ref: "#/components/schemas/LedgerAccount" nullable: true settlement_batch: allOf: - $ref: "#/components/schemas/SettlementBatch" nullable: true SettlementOpsTransaction: type: object description: Underlying payment or refund ledger transaction included in settlement. properties: id: type: string example: "160" token: type: string example: txn_8ffa984c-f0cb-4835-8eee-89c9ca673dad payment_id: type: string nullable: true example: pm_e950c9fc-9532-4f4b-aa4c-d39b8f2619c6 refund_id: type: string nullable: true example: null transaction_type: type: string example: TT_PAYMENT payment_type: type: string example: DYNAMIC_QR status: type: string enum: - TXN_LEDGER_POSTED - TXN_SETTLEMENT_SCHEDULED - TXN_SETTLEMENT_DISPATCHED - TXN_SETTLEMENT_CONFIRMED - TXN_SETTLEMENT_REVERSED example: TXN_SETTLEMENT_CONFIRMED aggregator_id: type: string example: agg_8fd114c0-1364-4953-8773-62551397ffe1 aggregator_name: type: string example: Safepay Aggregator aggregator_merchant_id: type: string example: am_7c9594a6-962d-49c7-94e9-64d9cf285969 aggregator_merchant_name: type: string example: Safepay Merchant raast_merchant_id: type: string example: mer_e1a38d10-0064-4d7b-a700-f4ba483efb05 raast_merchant_name: type: string example: Safepay Merchant raast_merchant_ntn: type: string example: "4669740" raast_merchant_province: type: string example: Sindh gross_amount: type: string example: "100" currency: type: string example: PKR fee_amount: type: string example: "0" net_amount: type: string example: "97" sales_tax_on_fee_amount: type: string example: "0" sales_tax_withholding_amount: type: string example: "2" income_tax_withholding_amount: type: string example: "1" digital_tax_amount: type: string example: "0" debitor_account_id: type: string nullable: true creditor_account_id: type: string nullable: true example: acct_7f073fa9-e248-4f96-8e7c-99ddcd282124 latest_batch_id: type: string example: sb_1328a110-2cf5-4e13-993e-55792ec6b76c partner_id: type: string example: partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8 created_at: $ref: "#/components/schemas/Timestamp" updated_at: $ref: "#/components/schemas/Timestamp" debitor_account: allOf: - $ref: "#/components/schemas/LedgerAccount" nullable: true creditor_account: allOf: - $ref: "#/components/schemas/LedgerAccount" nullable: true latest_batch: allOf: - $ref: "#/components/schemas/SettlementBatch" nullable: true SettlementReportExport: type: object description: Settlement report export job metadata and processing status. properties: id: type: string example: "58" token: type: string example: rpt_7670f587-0396-4939-ba4b-585ca67983a2 settlement_batch_id: type: string example: sb_6eb80843-eb2b-4df2-b85f-25d50f03d2a1 merchant_id: type: string example: mer_0e4b3a32-754b-483a-9c85-80581dbef4cf kind: type: string example: REPORT_KIND_MERCHANT status: type: string example: REPORT_STATUS_SUCCEEDED attempts: type: integer example: 1 error_message: type: string example: "" s3_key: type: string example: reports/partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8/sb_6eb80843-eb2b-4df2-b85f-25d50f03d2a1/mer_0e4b3a32-754b-483a-9c85-80581dbef4cf/merchant-settlement-report-1775215823-v1.csv record_count: type: string example: "2" file_size: type: string example: "1234" started_at: allOf: - $ref: "#/components/schemas/Timestamp" nullable: true finished_at: allOf: - $ref: "#/components/schemas/Timestamp" nullable: true created_at: $ref: "#/components/schemas/Timestamp" updated_at: $ref: "#/components/schemas/Timestamp" partner_id: type: string example: partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8 version: type: integer example: 1 requestBodies: CreateSettlementReportExport: description: Request body to create a settlement report export job. content: application/json: schema: type: object properties: settlement_batch_id: type: string description: Settlement batch identifier to export. example: sb_6eb80843-eb2b-4df2-b85f-25d50f03d2a1 merchant_id: type: string description: Optional merchant identifier for merchant-level report exports type REPORT_KIND_MERCHANT. Empty if the report exports are of type REPORT_KIND_BATCH. example: mer_e1a38d10-0064-4d7b-a700-f4ba483efb05 kind: type: string description: Export scope kind. enum: - REPORT_KIND_BATCH - REPORT_KIND_MERCHANT example: REPORT_KIND_BATCH required: - settlement_batch_id - kind examples: CreateSettlementReportExport: value: settlement_batch_id: sb_6eb80843-eb2b-4df2-b85f-25d50f03d2a1 merchant_id: mer_e1a38d10-0064-4d7b-a700-f4ba483efb05 kind: REPORT_KIND_BATCH CreateAccessKey: description: Request to create a new access key content: application/json: schema: type: object description: Defines the attributes required to create a new access key properties: is_active: type: boolean description: Indicates whether the newly created access key should be enabled immediately example: true name: type: string description: Human-readable label that helps distinguish this access key example: Developer Access Key required: - is_active - name examples: Create AccessKey: value: is_active: true name: Developer Access Key UpdateAccessKey: description: Request to update an existing access key content: application/json: schema: type: object description: Fields that can be modified on an existing access key properties: is_active: type: boolean description: Toggle indicating whether the key should be active example: false name: type: string description: Updated label for the access key example: Updated Access Key examples: Disable AccessKey: value: is_active: false Change AccessKey Name: value: name: Updated Access Key AccountInfoRequest: description: Optional body parameters for account info lookups. content: application/json: schema: type: object description: Additional filters to supply when resolving account information. properties: iban: type: string description: IBAN to fetch account information for; optional when alias parameters are supplied. example: PK91ALFH0005001007079203 with_title_fetch: type: boolean description: When true, include account title details in the response. example: true examples: AccountInfoBody: value: iban: PK91ALFH0005001007079203 with_title_fetch: true CreateMerchant: description: Request to create a merchant linked to an aggregator content: application/json: schema: type: object description: Merchant creation payload specifying identifiers and pricing configuration properties: merchant_external_id: type: string description: Client-supplied identifier that remains stable across Safepay integrations iban: type: string description: Settlement IBAN used for Raast payouts name: type: string description: Merchant display name enabled: type: boolean description: Indicates whether the merchant should be active immediately after creation raast_merchant_id: type: string description: Identifier of the previously onboarded Raast merchant to associate rate_card: type: object description: Rate configuration Safepay applies to Raast transactions properties: ratecard_kind: $ref: "#/components/schemas/RateCardKind" fixed_rate: type: integer description: Fixed per-transaction fee in paisa when using a fixed rate card variable_rate: type: number description: Percentage fee applied to the transaction amount tax_region: type: string description: Region for which the tax rate applies tax_rate: type: number description: Applicable tax rate expressed as a fraction (e.g., 0.1 for 10%) sales_tax_withholding: type: number description: Sales tax withholding rate applied to the transaction (fractional value) income_tax_withholding: type: number description: Income tax withholding rate applied to the transaction (fractional value) required: - ratecard_kind - tax_rate required: - merchant_external_id - iban - name - raast_merchant_id - rate_card examples: Create Merchant: value: merchant_external_id: sec_0c3de397-441f-471f-bcd7-b6d948e1c307 iban: PK62ABPA0010000222380013 name: TestingMerchant enabled: true raast_merchant_id: mer_eb2f5757-c0e4-4eb4-ad4b-2f4b671a84e2 rate_card: ratecard_kind: RateCardKind_fixed variable_rate: 0.0215 fixed_rate: 2900 tax_rate: 0.1 tax_region: Punjab sales_tax_withholding: 0.10 income_tax_withholding: 0.02 UpdateMerchant: description: Request to update an existing aggregator merchant content: application/json: schema: type: object description: Fields that can be modified for an existing aggregator merchant properties: name: type: string description: Merchant display name enabled: type: boolean description: Indicates whether the merchant should be active for Raast payments iban: type: string description: Settlement IBAN used for Raast payouts rate_card: type: object description: Rate configuration Safepay applies to the merchant's Raast transactions properties: ratecard_kind: $ref: "#/components/schemas/RateCardKind" fixed_rate: type: integer description: Fixed per-transaction fee in paisa variable_rate: type: number description: Fractional fee applied to the transaction amount tax_region: type: string description: Region where the tax rate applies tax_rate: type: number description: Applicable tax rate expressed as a fraction (e.g., 0.1 for 10%) sales_tax_withholding: type: number description: Sales tax withholding rate applied to the transaction (fractional value) income_tax_withholding: type: number description: Income tax withholding rate applied to the transaction (fractional value) examples: Update Merchant: value: name: NSH merchant enabled: true iban: PK85HABB0002157901170103 rate_card: ratecard_kind: RateCardKind_fixed variable_rate: 0.0215 fixed_rate: 2900 tax_rate: 0.1 tax_region: Punjab sales_tax_withholding: 0.10 income_tax_withholding: 0.02 CreatePayment: description: Request to create an RTP Now or RTP Later content: application/json: schema: oneOf: - $ref: "#/components/schemas/CreateRtpWithRaastId" - $ref: "#/components/schemas/CreateRtpWithIban" - $ref: "#/components/schemas/CreateRtpWithVaultToken" examples: Create RTP Now with Raast Alias: value: request_id: "c69aa27b-7b42-448b-af73-963bef1c5e42" amount: 94000 debitor_raast_id: "03202296111" aggregator_merchant_identifier: am_d7fd05ea-8613-4038-afd7-4275f29110f5 order_id: order_raast_id type: RTP_NOW expiry_in_minutes: 100 Create RTP Now with IBAN: value: request_id: "7a1b5307-4fe2-41a7-8bde-55c17de88f3d" amount: 32000 debitor_iban: PK89SCBL0000001234651601 aggregator_merchant_identifier: am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30 order_id: order_now_iban type: RTP_NOW expiry_in_minutes: 45 Create RTP Later with Vault Token: value: request_id: "3f7392b4-78c4-47a5-9fbc-9c74fc021970" amount: 22000 debitor_vault_token: lock_441d2a6f-5aea-4e0e-a7c8-48cae1273e66 aggregator_merchant_identifier: am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30 order_id: order_paylater_token type: RTP_LATER expiry_in_days: 7 CreatePayout: description: Request to initiate a payout content: application/json: schema: type: object description: Payout initiation payload properties: request_id: type: string description: Unique identifier supplied by the client to ensure idempotency amount: type: string description: Amount to credit in PKR, expressed as a string to preserve formatting creditor_iban: type: string description: Destination IBAN that receives the payout required: - request_id - amount - creditor_iban examples: Create Payout: value: request_id: d44940a1-663b-4d92-91e7-65438e4bf80b amount: "200" creditor_iban: PK25ALFH0216001008658216 CreateRefund: description: Request to create Refund content: application/json: schema: type: object properties: request_id: type: string payment_id: type: string amount: type: integer reason: type: string enum: - TechnicalProblem - DuplicatePayment addtl_info: type: string debitor_iban: type: string required: - request_id - payment_id - amount - reason - debitor_iban examples: Create Refund: value: request_id: "9af69842-3011-4d6b-98d0-c3de1caa96d3" payment_id: pm_54b6bcee-aa58-454d-aed9-ce97d6bdd797 amount: 500 reason: TechnicalProblem addtl_info: "" debitor_iban: PK12ALFH0031001006540005 CreateQRCode: description: Request to create a dynamic or static QR code content: application/json: schema: type: object description: Parameters accepted when generating a QR code properties: type: type: string description: QR code type to create; accepts STATIC or DYNAMIC aggregator_merchant_identifier: type: string description: Identifier of the aggregator merchant the QR code belongs to request_id: type: string description: Optional idempotency key provided by the client order_id: type: string description: Merchant-supplied order reference for dynamic QR codes amount: type: integer description: Optional amount to embed in the QR code for dynamic payments expiry_in_minutes: type: integer description: Optional expiry window in minutes for dynamic QR codes; defaults to 180 when omitted required: - type - aggregator_merchant_identifier examples: Create Static QR Code: value: type: STATIC aggregator_merchant_identifier: am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30 Create Dynamic QR Code: value: type: DYNAMIC aggregator_merchant_identifier: am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30 order_id: "033301" request_id: "749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30" amount: 1200 expiry_in_minutes: 180 CreateWebhook: description: Request to create a webhook endpoint content: application/json: schema: type: object description: Parameters for creating a webhook endpoint properties: url: type: string description: The URL where webhook events will be sent example: https://github.com/HasCold description: type: string description: Optional description for the webhook endpoint example: this is testing url endpoint event_types: type: array description: List of event types to subscribe to items: type: string example: [ "payment.created", "payment.completed", "refund.completed", "refund.created", "settlement.processing", "settlement.completed", ] enabled: type: boolean description: Whether the webhook endpoint should be enabled immediately example: true required: - url - event_types examples: Create Webhook: value: url: https://github.com/HasCold description: this is testing url endpoint event_types: ["payment.created"] enabled: true UpdateWebhook: description: Request to update a webhook endpoint content: application/json: schema: type: object description: Parameters for the webhook modification properties: url: type: string description: The URL where webhook events will be sent example: https://github.com/HasCold description: type: string description: Optional description for the webhook endpoint example: this is testing url endpoint event_types: type: array description: List of event types to subscribe to items: type: string example: ["payment.created", "payment.refunded"] enabled: type: boolean example: true examples: Update Webhook: value: url: https://github.com/HasCold description: this is testing url endpoint event_types: ["payment.created", "payment.refunded"] enabled: true responses: ListSettlementBatchesResponse: description: Paginated list of settlement batches. content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: batches: type: array items: $ref: "#/components/schemas/SettlementBatch" next_cursor: type: string example: "65" count: $ref: "#/components/schemas/SettlementListCount" examples: SettlementBatchesListed: value: api_version: v1 data: batches: - id: "200" token: sb_1328a110-2cf5-4e13-993e-55792ec6b76c file_name: "" date: "1970-01-01T00:00:00Z" status: BATCH_COMPLETED version: 1 created_by_job_id: job_76b08225-5372-46db-9acb-086ac9c2f7d6 partner_id: partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8 created_at: "2026-04-13T11:30:02Z" next_cursor: "65" count: filtered_count: "36" total_count: "36" ReadSettlementBatchResponse: description: Settlement batch details including artifacts and charge snapshot. content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: settlement_batch: $ref: "#/components/schemas/SettlementBatch" examples: SettlementBatchRead: value: api_version: v1 data: settlement_batch: id: "200" token: sb_1328a110-2cf5-4e13-993e-55792ec6b76c file_name: "" date: "1970-01-01T00:00:00Z" status: BATCH_COMPLETED version: 1 created_by_job_id: job_76b08225-5372-46db-9acb-086ac9c2f7d6 partner_id: partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8 artifacts: - id: "21" batch_id: sb_1328a110-2cf5-4e13-993e-55792ec6b76c artifact_type: BATCH_ARTIFACT_TYPE_SETTLEMENT_FILE file_name: CEP Safepay 20260723113002 sb_1328a110-2cf5-4e13-993e-55792ec6b76c.xls s3_key: settlement-batches/partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8/sb_1328a110-2cf5-4e13-993e-55792ec6b76c/CEP Safepay 20260723113002 sb_1328a110-2cf5-4e13-993e-55792ec6b76c.xls presigned_url: https://example-bucket.s3.amazonaws.com/settlement-batches/... created_at: "2026-07-23T11:30:06Z" charge_snapshot: id: "8" batch_id: sb_1328a110-2cf5-4e13-993e-55792ec6b76c gross_amount: "8100" net_amount: "7814" fee_amount: "39" sales_tax_on_fee_amount: "4" sales_tax_withholding_amount: "162" income_tax_withholding_amount: "81" digital_tax_amount: "0" created_at: "2026-07-23T11:30:06Z" created_at: "2026-04-13T11:30:02Z" ListSettlementTransactionsResponse: description: Paginated list of settlement payouts or general transactions. content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: settlement_transactions: type: array items: $ref: "#/components/schemas/SettlementTransaction" transactions: type: array items: $ref: "#/components/schemas/SettlementOpsTransaction" next_cursor: type: string example: "49" count: $ref: "#/components/schemas/SettlementListCount" examples: SettlementTransactionsListed: value: api_version: v1 data: settlement_transactions: - id: "49" token: stxn_75549797-f2c6-421d-8dd7-ce39995534b8 settlement_batch_id: sb_1328a110-2cf5-4e13-993e-55792ec6b76c aggregator_id: agg_8fd114c0-1364-4953-8773-62551397ffe1 aggregator_merchant_id: am_7c9594a6-962d-49c7-94e9-64d9cf285969 raast_merchant_id: mer_e1a38d10-0064-4d7b-a700-f4ba483efb05 status: SETTLEMENT_TXN_POSTED attempt: 1 gross_amount: "300" fee_amount: "0" net_amount: "294" sales_tax_on_fee_amount: "0" sales_tax_withholding_amount: "4" income_tax_withholding_amount: "2" digital_tax_amount: "0" debitor_account_id: acct_f72d1825-31cc-43a2-a7f6-4463443a1c46 creditor_account_id: acct_7f073fa9-e248-4f96-8e7c-99ddcd282124 failure_reason: "" created_at: "2026-04-13T11:30:02Z" updated_at: "2026-04-13T11:30:04Z" transactions: [] next_cursor: "49" count: filtered_count: "1" total_count: "1" ReadSettlementOpsTransactionResponse: description: Settlement payout or general transaction details depending on the id prefix. content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: settlement_transaction: $ref: "#/components/schemas/SettlementTransaction" transactions: $ref: "#/components/schemas/SettlementOpsTransaction" examples: SettlementTransactionRead: summary: Settlement transaction (`stxn_`) value: api_version: v1 data: settlement_transaction: id: "13" token: stxn_d646b075-f62b-49f7-ab0f-7df161a6fc0b settlement_batch_id: sb_8ea56b1e-dc96-4751-9ca6-3bcc47e9a5c2 aggregator_id: agg_8fd114c0-1364-4953-8773-62551397ffe1 aggregator_merchant_id: am_7c9594a6-962d-49c7-94e9-64d9cf285969 raast_merchant_id: mer_e1a38d10-0064-4d7b-a700-f4ba483efb05 status: SETTLEMENT_TXN_POSTED attempt: 1 gross_amount: "2000" fee_amount: "10" net_amount: "1929" sales_tax_on_fee_amount: "1" sales_tax_withholding_amount: "40" income_tax_withholding_amount: "20" digital_tax_amount: "0" debitor_account_id: acct_f72d1825-31cc-43a2-a7f6-4463443a1c46 creditor_account_id: acct_7f073fa9-e248-4f96-8e7c-99ddcd282124 failure_reason: "" created_at: "2026-02-06T16:30:02Z" updated_at: "2026-02-06T16:30:04Z" GeneralTransactionRead: summary: General transaction (`txn_`) value: api_version: v1 data: transactions: id: "160" token: txn_8ffa984c-f0cb-4835-8eee-89c9ca673dad payment_id: pm_e950c9fc-9532-4f4b-aa4c-d39b8f2619c6 refund_id: null transaction_type: TT_PAYMENT payment_type: DYNAMIC_QR status: TXN_SETTLEMENT_CONFIRMED aggregator_id: agg_8fd114c0-1364-4953-8773-62551397ffe1 aggregator_name: Safepay Aggregator aggregator_merchant_id: am_7c9594a6-962d-49c7-94e9-64d9cf285969 aggregator_merchant_name: Safepay Merchant raast_merchant_id: mer_e1a38d10-0064-4d7b-a700-f4ba483efb05 raast_merchant_name: Safepay Merchant raast_merchant_ntn: "4669740" raast_merchant_province: Sindh gross_amount: "100" currency: PKR fee_amount: "0" net_amount: "97" sales_tax_on_fee_amount: "0" sales_tax_withholding_amount: "2" income_tax_withholding_amount: "1" digital_tax_amount: "0" latest_batch_id: sb_1328a110-2cf5-4e13-993e-55792ec6b76c partner_id: partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8 created_at: "2026-04-13T06:33:35Z" updated_at: "2026-04-13T11:30:04Z" ListSettlementBatchTransactionsResponse: description: Paginated list of transactions linked to a settlement batch. content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: settlement_transactions: type: array items: $ref: "#/components/schemas/SettlementTransaction" transactions: type: array items: $ref: "#/components/schemas/SettlementOpsTransaction" next_cursor: type: string example: "158" count: $ref: "#/components/schemas/SettlementListCount" examples: BatchGeneralTransactionsListed: value: api_version: v1 data: settlement_transactions: [] transactions: - id: "160" token: txn_8ffa984c-f0cb-4835-8eee-89c9ca673dad payment_id: pm_e950c9fc-9532-4f4b-aa4c-d39b8f2619c6 refund_id: null transaction_type: TT_PAYMENT payment_type: DYNAMIC_QR status: TXN_SETTLEMENT_CONFIRMED aggregator_id: agg_8fd114c0-1364-4953-8773-62551397ffe1 aggregator_name: Safepay Aggregator aggregator_merchant_id: am_7c9594a6-962d-49c7-94e9-64d9cf285969 aggregator_merchant_name: Safepay Merchant raast_merchant_id: mer_e1a38d10-0064-4d7b-a700-f4ba483efb05 raast_merchant_name: Safepay Merchant raast_merchant_ntn: "4669740" raast_merchant_province: Sindh gross_amount: "100" currency: PKR fee_amount: "0" net_amount: "97" sales_tax_on_fee_amount: "0" sales_tax_withholding_amount: "2" income_tax_withholding_amount: "1" digital_tax_amount: "0" latest_batch_id: sb_1328a110-2cf5-4e13-993e-55792ec6b76c partner_id: partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8 created_at: "2026-04-13T06:33:35Z" updated_at: "2026-04-13T11:30:04Z" next_cursor: "158" count: filtered_count: "3" total_count: "3" ListSettlementSnapshotsResponse: description: Paginated list of settlement snapshots for a batch. content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: settlement_snapshots: type: array items: $ref: "#/components/schemas/SettlementSnapshot" next_cursor: type: string example: "44" count: $ref: "#/components/schemas/SettlementListCount" examples: SettlementSnapshotsListed: value: api_version: v1 data: settlement_snapshots: - id: "44" batch_id: sb_1328a110-2cf5-4e13-993e-55792ec6b76c settlement_transaction_id: stxn_9d5bd7bd-863a-487f-944c-f15d30d9bbc5 merchant_id: mer_ce6df98c-cdde-48bf-bc32-464cecac2ee3 aggregator_id: agg_b49985f2-e099-412e-8eb2-98756059cc0d iban: PK36SCBL0000001123456702 account_title: OPTIVOLVE DIGITAL gross_amount: "7900" net_amount: "7620" fee_amount: "39" sales_tax_on_fee_amount: "4" sales_tax_withholding_amount: "158" income_tax_withholding_amount: "79" digital_tax_amount: "0" currency: PKR created_at: "2026-07-23T11:30:06Z" next_cursor: "44" count: filtered_count: "1" total_count: "5" ListSettlementJobRunsResponse: description: Paginated list of settlement-engine job runs. content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: job_run: type: array items: $ref: "#/components/schemas/SettlementJobRun" next_cursor: type: string example: "42" count: $ref: "#/components/schemas/SettlementListCount" examples: SettlementJobRunsListed: value: api_version: v1 data: job_run: - id: "42" token: job_76b08225-5372-46db-9acb-086ac9c2f7d6 job_type: LEDGER_SETTLER_JOB status: JOB_STATUS_SUCCESS started_at: "2026-04-13T11:30:00Z" ended_at: "2026-04-13T11:30:04Z" error_message: "" created_at: "2026-04-13T11:30:00Z" next_cursor: "42" count: filtered_count: "1" total_count: "3" CreateSettlementReportExportResponse: description: Settlement report export job created successfully. headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: report_export: $ref: "#/components/schemas/SettlementReportExport" examples: SettlementReportExportCreated: value: api_version: v1 data: report_export: id: "55" token: rpt_e71265de-6699-4a02-b99b-b985edb9b915 settlement_batch_id: sb_6eb80843-eb2b-4df2-b85f-25d50f03d2a1 merchant_id: "" kind: REPORT_KIND_SEED status: REPORT_STATUS_SEEDED attempts: 1 error_message: "" s3_key: "" record_count: "0" file_size: "0" started_at: "2026-04-03T11:30:09Z" finished_at: null created_at: "2026-04-03T11:30:04Z" updated_at: "2026-04-03T11:30:09Z" partner_id: partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8 version: 0 ReadSettlementReportExportResponse: description: Settlement report export job details. headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: report_export: $ref: "#/components/schemas/SettlementReportExport" signed_url: type: string description: Pre-signed URL for downloading the generated report file. examples: SettlementReportExportRead: value: api_version: v1 data: report_export: id: "58" token: rpt_7670f587-0396-4939-ba4b-585ca67983a2 settlement_batch_id: sb_6eb80843-eb2b-4df2-b85f-25d50f03d2a1 merchant_id: mer_0e4b3a32-754b-483a-9c85-80581dbef4cf kind: REPORT_KIND_MERCHANT status: REPORT_STATUS_SUCCEEDED attempts: 1 error_message: "" s3_key: reports/partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8/sb_6eb80843-eb2b-4df2-b85f-25d50f03d2a1/mer_0e4b3a32-754b-483a-9c85-80581dbef4cf/merchant-settlement-report-1775215823-v1.csv record_count: "2" file_size: "1234" started_at: "2026-04-03T11:30:24Z" finished_at: "2026-04-03T11:30:24Z" created_at: "2026-04-03T11:30:09Z" updated_at: "2026-04-03T11:30:24Z" partner_id: partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8 version: 1 signed_url: https://raast-settlement-reports.s3.us-east-1.amazonaws.com/reports/partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8/sb_6eb80843-eb2b-4df2-b85f-25d50f03d2a1/mer_0e4b3a32-754b-483a-9c85-80581dbef4cf/merchant-settlement-report-1775215823-v1.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-SignedHeaders=host&X-Amz-Signature=example ListSettlementReportExportsResponse: description: Paginated list of settlement report export jobs. headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: report_exports: type: array items: $ref: "#/components/schemas/SettlementReportExport" count: type: string example: "4" examples: SettlementReportExportsListed: value: api_version: v1 data: report_exports: - id: "56" token: rpt_528221c6-d6ff-421f-a67e-73bae7451743 settlement_batch_id: sb_6eb80843-eb2b-4df2-b85f-25d50f03d2a1 merchant_id: "" kind: REPORT_KIND_BATCH status: REPORT_STATUS_SUCCEEDED attempts: 1 error_message: "" s3_key: reports/partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8/sb_6eb80843-eb2b-4df2-b85f-25d50f03d2a1/batch/batch-settlement-report-1775215813-v1.csv record_count: "5" file_size: "2508" started_at: "2026-04-03T11:30:14Z" finished_at: "2026-04-03T11:30:14Z" created_at: "2026-04-03T11:30:09Z" updated_at: "2026-04-03T11:30:14Z" partner_id: partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8 version: 1 - id: "58" token: rpt_7670f587-0396-4939-ba4b-585ca67983a2 settlement_batch_id: sb_6eb80843-eb2b-4df2-b85f-25d50f03d2a1 merchant_id: mer_0e4b3a32-754b-483a-9c85-80581dbef4cf kind: REPORT_KIND_MERCHANT status: REPORT_STATUS_SUCCEEDED attempts: 1 error_message: "" s3_key: reports/partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8/sb_6eb80843-eb2b-4df2-b85f-25d50f03d2a1/mer_0e4b3a32-754b-483a-9c85-80581dbef4cf/merchant-settlement-report-1775215823-v1.csv record_count: "2" file_size: "1234" started_at: "2026-04-03T11:30:24Z" finished_at: "2026-04-03T11:30:24Z" created_at: "2026-04-03T11:30:09Z" updated_at: "2026-04-03T11:30:24Z" partner_id: partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8 version: 1 - id: "57" token: rpt_48cc48c6-2088-4fa7-a790-007a1c4e2ac3 settlement_batch_id: sb_6eb80843-eb2b-4df2-b85f-25d50f03d2a1 merchant_id: mer_ce6df98c-cdde-48bf-bc32-464cecac2ee3 kind: REPORT_KIND_MERCHANT status: REPORT_STATUS_SUCCEEDED attempts: 1 error_message: "" s3_key: reports/partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8/sb_6eb80843-eb2b-4df2-b85f-25d50f03d2a1/mer_ce6df98c-cdde-48bf-bc32-464cecac2ee3/merchant-settlement-report-1775215818-v1.csv record_count: "3" file_size: "1666" started_at: "2026-04-03T11:30:19Z" finished_at: "2026-04-03T11:30:19Z" created_at: "2026-04-03T11:30:09Z" updated_at: "2026-04-03T11:30:19Z" partner_id: partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8 version: 1 - id: "55" token: rpt_e71265de-6699-4a02-b99b-b985edb9b915 settlement_batch_id: sb_6eb80843-eb2b-4df2-b85f-25d50f03d2a1 merchant_id: "" kind: REPORT_KIND_SEED status: REPORT_STATUS_SEEDED attempts: 1 error_message: "" s3_key: "" record_count: "0" file_size: "0" started_at: "2026-04-03T11:30:09Z" finished_at: null created_at: "2026-04-03T11:30:04Z" updated_at: "2026-04-03T11:30:09Z" partner_id: partner_37e414c3-c0cc-4541-9bea-ab5a22964bd8 version: 0 count: "4" StandardSuccess: description: Successful operation headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: $ref: "#/components/schemas/StandardResponse" EmptySuccess: description: Successful operation headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object description: Empty payload structure returned for successful operations without additional data example: {} BadRequest: description: Bad request headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/ErrorResponse" - type: object properties: code: example: error.bad_request message: example: Invalid request parameters Unauthorized: description: Unauthorized headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: $ref: "#/components/schemas/ApiErrorEnvelope" examples: Unauthorized: value: api_version: v1 error: code: error.unauthorized_access message: partner access key is required in request header NotFound: description: Resource not found headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/ErrorResponse" - type: object properties: code: example: error.not_found message: example: Requested resource not found Conflict: description: Resource conflict headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/ErrorResponse" - type: object properties: code: example: error.conflict message: example: Resource already exists InternalError: description: Internal server error response headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: $ref: "#/components/schemas/ApiErrorEnvelope" examples: InternalServerError: value: api_version: v1 error: code: error.internal_server_error message: rpc error code Internal desc = something went wrong NotAcceptable: description: Not Acceptable headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/ErrorResponse" - type: object properties: code: example: error.request_not_acceptable message: example: already activated AggregatorResponse: description: This response contains details of an aggregator headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: description: Aggregator resource found for the supplied identifier $ref: "#/components/schemas/Aggregator" examples: AggregatorFound: value: api_version: v1 data: id: "2" token: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c bank_account_id: acc_c03a57cb-a616-42a7-b1dc-de473217a558 name: DLocal is_active: true is_super: true vault_enabled: true bank_account: id: "11" token: acc_c03a57cb-a616-42a7-b1dc-de473217a558 vault_token: lock_464309f2-572f-493f-8272-e503277b06fd title: JFIZG iban: PK85HABB0002157901170103 redacted_iban: PK85HABB************0103 hashed_iban: MioWSkE1a8HST07eqMVnfz/zZIzPFqhKGMIjDTOjPWc= servicer: HABBPKKARTG bank: "" depositor_id: dep_31b1166f-de14-4e66-ba4a-2a321ca55a77 owner: raast kind: 5 version: v1 created_at: "2025-03-13T09:12:35Z" updated_at: "2025-12-04T13:22:23Z" keys: - id: "2" token: ak_fa66e6f5-cd88-4d8a-8fe7-0eb1898d20a3 key_id: key_452442dc-d6b3-4cbb-bcc6-8781ef2d3498 aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e is_active: true name: Staging key secret: 18108aad30da06075e6f02fab3166926827538363842185faf6e3e694ea5d481 created_at: "2025-03-13T09:12:51Z" updated_at: "2025-03-13T09:12:51Z" - id: "4" token: ak_da8f1c10-346a-4be8-895a-b6187a9a9662 key_id: key_28d69595-4ae4-4645-b9d8-300fa5211845 aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e is_active: true name: prod key secret: 23052bb4602992643b8cd3aaee10a1054a5b071a2ecd3bf2e39ba5072ad3f4cd created_at: "2025-05-23T10:02:26Z" updated_at: "2025-08-05T12:51:05Z" created_at: "2025-03-13T09:12:34Z" updated_at: "2025-12-04T15:39:33Z" ListAccessKeysResponse: description: This response contains a paginated list of access keys linked to an aggregator headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object description: Paginated collection of access keys properties: count: type: integer example: 1 description: Total number of access keys keys: type: array description: List of access keys items: $ref: "#/components/schemas/AccessKey" examples: AccessKeysListed: value: api_version: v1 data: count: 1 keys: - id: ak_da8f1c10-346a-4be8-895a-b6187a9a9662 token: ak_tok_fede37a6 key_id: key_live_e111f1c10 aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e is_active: true name: Primary Production Key secret: sk_live_uMPN7cX2b1 created_at: 2025-05-19T11:19:12Z updated_at: 2025-06-25T12:29:14Z CreateAccessKeyResponse: description: This response contains details of an access key headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: description: Newly created access key resource $ref: "#/components/schemas/AccessKey" examples: AccessKeyCreated: value: api_version: v1 data: id: ak_cf0f7821-32f5-4c66-8e86-0d5e2bb8b6b9 token: ak_tok_b758ad9a key_id: key_live_a31b23f0 aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e is_active: true name: Developer Access Key secret: sk_live_GZc5k9mT0n created_at: 2025-05-19T11:19:12Z updated_at: 2025-05-19T11:19:12Z UpdateAccessKeyResponse: description: This response contains details of an access key headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/AccessKey" RotateAccessKeyResponse: description: This response contains details of an access key headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/AccessKey" TitleFetchResponse: description: This response contains account title details fetched from Raast headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/TitleFetchResult" examples: Title Fetch: value: api_version: v1 data: statusCode: 0 acctitle: "Title-1 1007079203" acctype: Account Title Fetch V2: value: api_version: v1 data: statusCode: 0 acctitle: "Title-1 1007079203" acctype: Account iban: PK91ALFH0005001007079203 AliasTitleFetchResponse: description: This response contains account title details fetched from Raast for an alias headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/AccountInfo" examples: Alias Title Fetch: value: api_version: v1 data: iban: "PK62ABPA0010000222380218" type: "ALIAS_TYPE_UNSPECIFIED" currency: "PKR" servicer_member_id: "SAFEPAYZ" name: "Raast-Saphir-Merch" is_default: true dba: "The best business 101" mcc: "9032" account_title: "" account_type: "" AccountInfoResponse: description: This response contains Raast account information details headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/AccountInfo" examples: Account Info: value: api_version: v1 data: iban: PK91ALFH0005001007079203 type: CAS_CONST_UNSPECIFIED currency: PKR servicer_member_id: ALFHPKKA name: MIRZA is_default: false dba: "" mcc: "" account_title: Title-1 1007079203 account_type: Account CreatePayoutResponse: description: This response contains details of a payout request headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/Payment" examples: Create Payout: value: api_version: v1 data: id: "44" token: pm_2a8c2cfc-e61d-431e-a850-f1808405ca07 aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e aggregator_merchant_id: "" qr_code_id: "" order_id: "" type: PAYOUT amount: "200" status: P_INITIATED uetr: 3335131b-b26c-41c6-a089-a3b4905dcc68 trace_reference: 2005867c-752f-430f-8619-a4c998423e3d msg_id: QAI8456FZ5NOR5H6ITEVK2U2NCD7POCSKQS instr_id: cb865267aec142d389f3ff728bb2492a end_to_end_id: 3335131bb26c41c6a089a3b4905dcc68 pmt_inf_id: "" request_id: d4659c62-2c4a-4e60-8dfa-cd504bf50cca msg_created_at: "2025-10-02 11:03:11.041" expires_at: "1970-01-01T00:00:00Z" created_at: "2025-10-02T06:03:11Z" updated_at: "2025-10-02T06:03:11Z" txn_logs: - id: "35" type: TLT_PAYMENT payment_id: pm_2a8c2cfc-e61d-431e-a850-f1808405ca07 status: P_INITIATED refund_id: "" settlement_id: "" txn_desc: "" addtl_info: "" token: txnlog_b9679d70-8874-459b-ad55-28180c53f0b1 timestamp: "2025-10-02T06:03:11Z" iso_msg_type: pain.013.001.09 payment_parties: - id: "87" token: pp_6a71861c-2e6a-4355-957e-0b6d8e4d9a06 role: ROLE_DEBITOR payment_id: pm_2a8c2cfc-e61d-431e-a850-f1808405ca07 bank_account_id: acc_c03a57cb-a616-42a7-b1dc-de473217a558 bank_account: id: "11" token: acc_c03a57cb-a616-42a7-b1dc-de473217a558 vault_token: lock_464309f2-572f-493f-8272-e503277b06fd title: SYED MUHAMMAD HAQANI iban: "" redacted_iban: PK84HABB************8594 hashed_iban: TAQswoYYIJaiPH15TAS5+tnFe7yDOK0kWP2wgSXwi7k= servicer: HABBPKKARTG bank: "" created_at: "2025-03-13T09:12:35Z" updated_at: "2025-03-13T09:12:35Z" created_at: "2025-10-02T06:03:11Z" updated_at: "2025-10-02T06:03:11Z" - id: "88" token: pp_42dd9241-794b-4fad-b4c2-ca8d88ce8ca6 role: ROLE_CREDITOR payment_id: pm_2a8c2cfc-e61d-431e-a850-f1808405ca07 bank_account_id: acc_9fd8d208-0e51-4869-87ea-12bbfc3a3ad6 bank_account: id: "81" token: acc_9fd8d208-0e51-4869-87ea-12bbfc3a3ad6 vault_token: lock_124456f6-3e1d-4f31-8baa-ea914ed365f0 title: Title-1 1008658216 iban: "" redacted_iban: PK25ALFH************8216 hashed_iban: 7zWv4dnBcoTKS4/dyrbMSWlFKVuwNWVkVlKmeRiu7Us= servicer: ALFHPKKA bank: "" created_at: "2025-09-22T09:42:41Z" updated_at: "2025-09-22T09:42:41Z" created_at: "2025-10-02T06:03:11Z" updated_at: "2025-10-02T06:03:11Z" qr_code: null aggregator_merchant: null refunds: [] settlement: null CreateMerchantResponse: description: This response contains details of a merchant headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/Merchant" examples: Create Merchant: value: api_version: v1 data: id: "0" token: am_d7fd05ea-8613-4038-afd7-4275f29110f5 name: TestingMerchant aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e merchant_id: mer_eb2f5757-c0e4-4eb4-ad4b-2f4b671a84e2 merchant_external_id: sec_0c3de397-441f-471f-bcd7-b6d948e1c307 bank_account_id: acc_a17a478a-f7cd-448b-9753-5729a6f237ad enabled: true created_at: "2025-05-21T09:36:42.586176361Z" updated_at: "2025-05-21T09:36:42.586185862Z" raast_merchant: id: "0" token: mer_eb2f5757-c0e4-4eb4-ad4b-2f4b671a84e2 partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c raast_record_id: "480776" status: Inactive uid_type: NTN uid_value: "33225247890431" name: TestHasMerchant document_type: NTN document_number: "33225247890431" address_details: country: PK city: Lahore state_province_region: Punjab address_line: h193c1 saddiq contact_details: mobile_number: "+9233330226445" email: testing1702@gmail.com additional_details: dba: The best business 001 mcc: "3434" lat: "" long: "" additional_details_private: {} created_at: "2025-05-21T09:36:40.660619343Z" updated_at: "2025-05-21T09:36:40.660619733Z" rate_card: id: "0" token: mrc_859bf970-6178-48c4-a801-014d027a9fe8 aggregator_merchant_id: am_d7fd05ea-8613-4038-afd7-4275f29110f5 connector_id: conn_eec2d68c-b72a-4f84-82ff-a7d4b3ebaa21 rate_card_id: rc_d0680a67-e8bc-4a39-a7c1-ee9998346f17 created_at: "2025-05-21T09:36:42.586189872Z" updated_at: "2025-05-21T09:36:42.586190032Z" tax_rate: 0 ListMerchantsResponse: description: This response contains a paginated list of merchants linked to an aggregator headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: merchants: type: array description: List of merchants returned for the requested page items: $ref: "#/components/schemas/Merchant" count: type: string description: Total number of merchants matching the filters applied example: "2" examples: List Merchants: value: api_version: v1 data: merchants: - id: "39" token: am_c1460543-4a10-473c-b60b-60218326d1b1 name: test co type1 aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e merchant_id: mer_eb2f5757-c0e4-4eb4-ad4b-2f4b671a84e2 merchant_external_id: sec_0c3de397-441f-471f-bcd7-b6d948e1c307 bank_account_id: acc_a17a478a-f7cd-448b-9753-5729a6f237ad enabled: false created_at: "2025-07-24T07:11:31Z" updated_at: "2025-07-25T06:31:25Z" - id: "44" token: am_d7fd05ea-8613-4038-afd7-4275f29110f5 name: TestingMerchant aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e merchant_id: mer_eb2f5757-c0e4-4eb4-ad4b-2f4b671a84e2 merchant_external_id: sec_0c3de397-441f-471f-bcd7-b6d948e1c307 bank_account_id: acc_a17a478a-f7cd-448b-9753-5729a6f237ad enabled: true created_at: "2025-05-21T09:36:42.586176361Z" updated_at: "2025-05-21T09:36:42.586185862Z" count: "2" FindRaastMerchantResponse: description: This response contains a single Raast merchant record headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/RaastMerchant" examples: FindRaastMerchantSecretKey: $ref: "#/components/examples/FindRaastMerchantSecretKey" ListRaastMerchantsResponse: description: This response contains Raast merchant directory records headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: merchants: type: array description: Collection of Raast merchants visible to the aggregator items: $ref: "#/components/schemas/RaastMerchant" count: type: string description: Total number of Raast merchants matching the filter examples: ListRaastMerchantsSecretKey: $ref: "#/components/examples/ListRaastMerchantsSecretKey" FindMerchantResponse: description: This response contains details of a merchant headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/Merchant" examples: Find Merchant: $ref: "#/components/examples/FindMerchant" UpdateMerchantsResponse: description: This response contains details of a merchant headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/Merchant" examples: Update Merchant: value: api_version: v1 data: id: "4" token: am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30 name: Lazer Sports aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e merchant_id: mer_dd0aa205-5b38-4691-bf1e-d30524c5be97 merchant_external_id: sec_0e84768c-048e-4946-9066-ea199fec7722 bank_account_id: acc_c03a57cb-a616-42a7-b1dc-de473217a558 enabled: true created_at: "2025-03-13T09:13:25Z" updated_at: "2025-06-03T11:44:56Z" raast_merchant: id: "4" token: mer_dd0aa205-5b38-4691-bf1e-d30524c5be97 partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c raast_record_id: "478619" status: Inactive uid_type: NTN uid_value: "4220111082020" name: Lazer Sports document_type: NTN document_number: "4220111082026" address_details: country: PK city: Karachi state_province_region: Sindh address_line: Federal.B. Area contact_details: mobile_number: "+923001234926" email: testingbyHas@gesafepay.com additional_details: dba: The best business 001 mcc: "5633" lat: "" long: "" additional_details_private: {} created_at: "2025-03-13T09:13:23Z" updated_at: "2025-06-03T11:44:56Z" rate_card: id: "23" token: mrc_50f44cfa-7fc4-4111-82db-84233aeb7d04 aggregator_merchant_id: am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30 connector_id: conn_c05caf8c-1f8d-4e58-bcfd-833531500693 rate_card_id: rc_4a61062c-c3a7-4dee-8199-f122eb9d90d3 ratecard_kind: RateCardKind_fixed created_at: "2025-03-13T09:13:23Z" updated_at: "2025-06-03T11:44:57Z" fixed_rate: "40000" tax_rate: 0 tax_region: "" CreatePaymentResponse: description: Response envelope returned after a payment request is accepted. headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/PaymentCreationResult" examples: PaymentCreated: value: api_version: v1 data: message: RTP created successfully token: pm_f531c5eb-5c49-40d6-8ac5-012cfd1b24c1 msg_id: IG2Y50ORB7BE2OLEW0HDVJUIP9QGTL1V6WS trace_reference: aa22cc9b-3f55-4613-86cf-9641f11902d1 uetr: 8df9cc1f-77b2-47e4-9a8b-a3050bee6972 status: P_REJECTED order_id: NewPayNow1 created_at: "2025-06-26T10:58:17Z" ListPaymentsResponse: description: Paginated list of payments linked to a merchant headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object description: Paginated payment collection payload. properties: count: type: string example: "605" description: Total number of payments matching the supplied filters. payments: type: array description: List of payments matching the supplied filters. items: $ref: "#/components/schemas/Payment" examples: PaymentsListing: value: api_version: v1 data: payments: - id: "644" token: pm_f37a10dd-c530-4d86-8483-be473e820578 aggregator_merchant_id: am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30 order_id: has_3320 type: DYNAMIC_QR amount: "250" status: P_REJECTED uetr: e3391812-f9f5-4feb-bd6d-60698e9b662f trace_reference: ce08b498-376c-41dd-b32b-f814441c4507 msg_id: FE0PMU5HHKKPF4S7PLR20M8HKBYI57WAUV5 pmt_inf_id: 9545TGYRG0F6DCQEF2ZH7UCOCU57FUNYDL9 request_id: 6a049190-3595-47cb-8603-7e310c3adb15 expires_at: "2025-06-27T06:47:34Z" created_at: "2025-06-27T06:45:35Z" updated_at: "2025-06-27T06:48:33Z" - id: "643" token: pm_49707018-026f-4159-8b1a-da0e3b482cbb aggregator_merchant_id: am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30 order_id: order03330 type: RTP_LATER amount: "22000" status: P_INITIATED uetr: 8fe838bb-57f7-4488-8198-b7b240eac83c trace_reference: 5041299c-c5bd-4ac0-b3f8-b6131f15c55f msg_id: 54QMCJLI7UATICTM1MZYPXESGMJ5O5TXUSX pmt_inf_id: LWMEZ7RUGR92H0TJKMUSKOCC381NK9Z2K8C request_id: 8f20f196-e1c9-46b7-9b41-67f17baa7438 expires_at: "2025-07-03T11:21:23Z" created_at: "2025-06-26T11:21:23Z" updated_at: "2025-06-26T11:21:23Z" count: "605" FindPaymentResponse: description: This response contains details of a payment headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/Payment" examples: PaymentFound: value: api_version: v1 data: id: "644" token: pm_f37a10dd-c530-4d86-8483-be473e820578 aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e aggregator_merchant_id: am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30 qr_code_id: qr_503d916b-9ad5-44aa-8d41-1ad656882f7f order_id: has_3320 type: DYNAMIC_QR amount: "250" status: P_REJECTED uetr: e3391812-f9f5-4feb-bd6d-60698e9b662f trace_reference: ce08b498-376c-41dd-b32b-f814441c4507 msg_id: FE0PMU5HHKKPF4S7PLR20M8HKBYI57WAUV5 instr_id: INSTR-88921 end_to_end_id: E2E-09771234 pmt_inf_id: 9545TGYRG0F6DCQEF2ZH7UCOCU57FUNYDL9 request_id: 6a049190-3595-47cb-8603-7e310c3adb15 msg_created_at: "2025-06-27T06:45:35Z" expires_at: "2025-06-27T06:47:34Z" created_at: "2025-06-27T06:45:35Z" updated_at: "2025-06-27T06:48:33Z" txn_logs: - id: "2980" type: PAYMENT_STATUS payment_id: "644" status: P_REJECTED refund_id: rfd_0f4a653e-cc5c-4fe3-9f3c-5b2ec518de66 settlement_id: stl_1b9f5df3-ae17-4e56-9c58-0f0c594dfbf4 txn_desc: Payment rejected by beneficiary bank. addtl_info: OTP verification failed at issuer bank. token: log_b2cb6f9b-4960-4b58-b0f4-91a2c0d1c177 timestamp: "2025-06-27T06:48:33Z" iso_msg_type: pacs.002 debitor: null qr_code: id: "148" token: qr_3b4a02f2-4e7b-4de1-90a6-0213767b7b8b aggregator_merchant_id: am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30 type: DYNAMIC code: "00020101021226370012PKSAFEPAKISTAN0117PM_f37a10dd" terminal_label: TL-839201 reference_label: RL-3242 is_deleted: false created_at: "2025-06-20T05:44:11Z" aggregator_merchant: id: "92" token: am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30 name: Lazer Sports aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e merchant_id: mer_2cab1524-805d-4a09-8e51-924ddf3f43ea merchant_external_id: lazersports-001 bank_account_id: ba_cda15b62-26cc-4ae2-aa4b-4173846c1f18 enabled: true created_at: "2025-06-10T07:14:03Z" updated_at: "2025-06-27T06:48:33Z" raast_merchant: id: "501" token: rm_b8a45764-3100-4e1e-90fa-3f918a8dac5d partner_id: partner_4321 raast_record_id: RAAST123456 status: Active uid_type: NTN uid_value: "1234567-8" name: Lazer Sports Pvt Ltd document_type: NTN document_number: 1234567-8 address_details: country: PK city: Karachi state_province_region: Sindh address_line: 221B Baker Street contact_details: mobile_number: "+923001112233" email: contact@lazersports.pk additional_details: dba: Lazer Sports mcc: "5411" lat: "24.8607" long: "67.0011" additional_details_private: {} created_at: "2025-04-01T08:21:55Z" updated_at: "2025-06-15T11:12:45Z" refunds: [] settlement: null CreateRefundResponse: description: This response contains details of a refund headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/Refund" ListRefundsResponse: description: This response contains a paginated list of refunds linked to a payment headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: count: type: integer example: 1 description: Total number of refunds keys: type: array description: List of refunds items: $ref: "#/components/schemas/Refund" FindRefundResponse: description: This response contains details of a refund headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/Refund" examples: RefundFound: value: api_version: v1 data: id: "1" token: "rfd_2dd0b5e5-ee12-4ff9-b76d-ef915ea496f3" payment_id: "pm_54b6bcee-aa58-454d-aed9-ce97d6bdd797" amount: "500" type: "FULL_REFUND" reason: "TechnicalProblem" addtl_info: "Cancelation due to technical problem." status: "R_FAILED" trace_reference: "f8cdffe4-cdf1-4f1a-a509-5c2fdfa95809" msg_id: "F3CJ6HG8UPVYPQBBN286T86Y988MUF95TXQ" return_id: "F3CJ6HG8UPVYPQBBN286T86Y988MUF95TXQ" request_id: "ad16c519-a18c-493c-a402-f3bf4cb7f3c1" msg_created_at: "2025-05-20 16:10:53." settle_at: null created_at: "2025-05-20T11:10:53Z" updated_at: "2025-05-20T11:10:54Z" CreateQRCodeResponse: description: This response contains details of a QR Code headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/QRCode" examples: QRCodeCreated: value: api_version: v1 data: id: "4" token: qr_4076ad61-75cf-44a3-97a1-b66643ea3bf2 aggregator_merchant_id: am_be454a50-7612-4dc6-a97e-284ebbe7ae93 type: DYNAMIC code: "0002010102122876003285bc899c1dd443e3b3beb24631aef0930108SAFEPAYZ0224PK08ALFH00050010086764445207343434353035865406100.005802PK5921Timeless Designs Code6006Lahore62130509order12348476003285bc899c1dd443e3b3beb24631aef09301367b165d5f-01df-4bfe-81b4-bef010df9" terminal_label: "" reference_label: "" is_deleted: false created_at: "2025-04-28T10:26:48Z" ListQRCodesResponse: description: This response contains a paginated list of QR Codes linked to a merchant headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: qr_codes: type: array description: List of QR codes returned in the result set items: $ref: "#/components/schemas/QRCode" count: type: string description: Total number of QR codes matching the filters example: "7" examples: QRCodeList: value: api_version: v1 data: qr_codes: - id: "4" token: qr_4076ad61-75cf-44a3-97a1-b66643ea3bf2 aggregator_merchant_id: am_be454a50-7612-4dc6-a97e-284ebbe7ae93 type: DYNAMIC code: "0002010102122876003285bc899c1dd443e3b3beb24631aef0930108SAFEPAYZ0224PK08ALFH00050010086764445207343434353035865406100.005802PK5921Timeless Designs Code6006Lahore62130509order12348476003285bc899c1dd443e3b3beb24631aef09301367b165d5f-01df-4bfe-81b4-bef010df9" terminal_label: "" reference_label: "" is_deleted: false created_at: "2025-04-28T10:26:48Z" count: "7" FindQRCodeResponse: description: This response contains details of a QR Code headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object description: Container for the requested QR code resource. properties: qr_code: $ref: "#/components/schemas/QRCodeDetailed" required: - qr_code examples: StaticQR: $ref: "#/components/examples/FindQRStatic" DynamicQR: $ref: "#/components/examples/FindQRDynamic" ListPaymentsForQRCodeResponse: description: This response returns the dynamic QR payments for the requested QR code. headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object description: Container for the payments returned for the QR code. properties: payments: type: array description: Payments referencing the QR code. items: $ref: "#/components/schemas/Payment" count: type: string description: Total number of payments matching the filters example: "7" required: - payments required: - data examples: QRPayments: $ref: "#/components/examples/ListQRPayments" ListAliasResponse: description: This response contains a paginated list of aliases headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: alias: type: array description: List of aliases returned in the result set items: $ref: "#/components/schemas/Alias" count: type: string description: Total number of aliases matching the filters example: "4" examples: AliasList: value: api_version: v1 data: alias: - id: "5" token: als_3b5bbe1d-350e-4a33-9b0d-63386f87a328 merchant_id: mer_553dad9b-3984-4131-8842-84983e922351 alias_type: TILL_CODE alias_value: "541661038" status: Active start_date: "2026-01-06" expiration_date: "2036-01-06" opening_date: "2026-01-06" closing_date: "2036-01-06" created_at: "2026-01-06T09:27:14Z" updated_at: "2026-01-06T09:27:14Z" alias_record_id: "464449" count: "4" FindAliasResponse: description: This response contains details of an alias headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/Alias" examples: AliasFound: value: api_version: v1 data: id: "2" token: als_962c42c4-06a1-482f-a227-970453f29eb9 merchant_id: mer_63b32978-8af7-41b8-88fc-d027be766f77 aggregator_merchant_id: am_01fa1fd6-d8aa-47c7-a4c3-a1ac0a76ae36 alias_type: TILL_CODE alias_value: "542185757" status: Active start_date: "2025-08-20" expiration_date: "2035-08-20" opening_date: "2025-08-20" closing_date: "2035-08-20" created_at: "2025-08-20T09:47:27Z" updated_at: "2025-08-25T11:46:52Z" alias_record_id: "448589" FindAggregatorLedgerAccountResponse: description: This response contains details of an external aggregator ledger account headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/LedgerAccount" examples: AggregatorLedgerAccountFound: value: api_version: v1 data: id: "3" token: acct_a4a2ecaa-5d14-4330-970b-89c0d5c30934 account_type: ACCT_AGGREGATOR account_name: DLocal normal_balance: SIDE_CREDIT balance: "0" currency: PKR running_balance: "0" vault_token: lock_81f9c5db-3e7b-47f1-80b6-a1de8a762de8 bank_acct_id: acc_ff3555cc-149a-4883-9945-401170d0480d external_partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c external_aggregator_id: agg_10951914-7e84-40e9-9693-19a22c8ede89 external_merchant_id: "" created_at: "2025-10-26T21:39:39Z" updated_at: "2025-12-16T18:39:17Z" FindMerchantLedgerAccountResponse: description: This response contains details of an external merchant ledger account headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/LedgerAccount" examples: MerchantLedgerAccountFound: value: api_version: v1 data: id: "47" token: acct_9f23cbf6-8645-4599-b677-85f83175c3f2 account_type: ACCT_MERCHANT account_name: "Ali Aggre-Merch" normal_balance: SIDE_CREDIT balance: "1060" currency: PKR running_balance: "0" vault_token: lock_25d98436-1eea-4d0b-a9df-8f124631b25a bank_acct_id: acc_831f36c0-97d2-4bd2-ae36-e36025f48ef4 external_partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c external_aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e external_merchant_id: am_27211e51-3e1e-4462-b0a5-138e62d265e6 created_at: "2026-01-06T09:28:11Z" updated_at: "2026-01-06T09:28:11Z" CreateWebhookResponse: description: This response contains details of a Webhook headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: endpoint: $ref: "#/components/schemas/Webhook" secret: type: string example: "9sU3KVM5iQYZsxt40st1nkJsvbyuLnquB3Re1Q7k08w=" required: - endpoint - secret examples: WebhookCreated: value: api_version: v1 data: endpoint: token: wh_f52d84b4-a140-4a3a-b707-80644232e926 aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e url: https://github.com/HasCold description: this is testing url endpoint enabled: true event_filter_json: '["payment.created"]' created_at: "2025-12-02T12:48:35.416597859Z" updated_at: "2025-12-02T12:48:35.416597859Z" secret: "9sU3KVM5iQYZsxt40st1nkJsvbyuLnquB3Re1Q7k08w=" secret_version: 1 secret_rotated_at: "2025-12-02T12:48:35.416597859Z" secret: "9sU3KVM5iQYZsxt40st1nkJsvbyuLnquB3Re1Q7k08w=" UpdateWebhookResponse: description: This response contains details of a Webhook headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: endpoint: $ref: "#/components/schemas/Webhook" required: - endpoint examples: WebhookUpdated: value: api_version: v1 data: endpoint: token: wh_f52d84b4-a140-4a3a-b707-80644232e926 aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e url: https://github.com/HasCold description: this is the testing url enabled: true event_filter_json: '["payment.created","payment.authorized"]' created_at: "2025-12-02T12:48:35Z" updated_at: "2025-12-02T12:53:10.338063178Z" secret: "9sU3KVM5iQYZsxt40st1nkJsvbyuLnquB3Re1Q7k08w=" secret_version: 1 secret_rotated_at: "2025-12-02T12:48:35Z" RotateWebhookResponse: description: This response contains details of a Webhook headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: endpoint: $ref: "#/components/schemas/Webhook" secret: type: string description: The rotated webhook secret rotated_at: type: string format: date-time description: Timestamp when the secret was rotated required: - endpoint - secret - rotated_at examples: WebhookRotated: value: api_version: v1 data: endpoint: token: wh_f52d84b4-a140-4a3a-b707-80644232e926 aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e url: https://github.com/HasCold description: this is the testing url enabled: true event_filter_json: '["payment.created","payment.authorized"]' created_at: "2025-12-02T12:48:35Z" updated_at: "2025-12-03T08:45:13.869665886Z" secret: "s3UvEYcNaKdLD0pOCEOjy0e6XMszyuj/DIFEJRwIkHA=" secret_version: 3 secret_rotated_at: "2025-12-03T08:45:13.867701713Z" secret: "s3UvEYcNaKdLD0pOCEOjy0e6XMszyuj/DIFEJRwIkHA=" rotated_at: "2025-12-03T08:45:13.867701713Z" FindWebhookDeliveryResponse: description: This response contains details of a webhook delivery headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: $ref: "#/components/schemas/WebhookDelivery" required: - data examples: WebhookDeliveryFound: value: api_version: v1 data: token: wh_7f3c2d10 endpoint_token: wh_ep_02c9b78d aggregator_id: agg_b12f8c30 event_id: evt_8aa12f type: payment.succeeded payload_json: '{"id":"evt_8aa12f","object":"event"}' status: WD_DELIVERED attempts: 2 last_error: "" next_attempt_at: "2025-12-15T09:05:00Z" created_at: "2025-12-15T09:00:00Z" delivered_at: "2025-12-15T09:00:04Z" FindWebhookResponse: description: This response contains details of a Webhook headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object properties: endpoint: $ref: "#/components/schemas/Webhook" required: - endpoint examples: WebhookFound: value: api_version: v1 data: endpoint: token: wh_f52d84b4-a140-4a3a-b707-80644232e926 aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e url: https://github.com/HasCold description: this is the testing url enabled: true event_filter_json: '["payment.created","payment.authorized"]' created_at: "2025-12-02T12:48:35Z" updated_at: "2025-12-02T12:53:10.338063178Z" secret: "9sU3KVM5iQYZsxt40st1nkJsvbyuLnquB3Re1Q7k08w=" secret_version: 1 secret_rotated_at: "2025-12-02T12:48:35Z" ListWebhookResponse: description: This response contains a paginated list of webhook endpoints headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object description: Paginated collection of webhook endpoints properties: endpoints: type: array description: List of webhook endpoints returned in the result set items: $ref: "#/components/schemas/Webhook" count: type: string example: "1" required: - endpoints - count examples: WebhookList: value: api_version: v1 data: endpoints: - token: wh_f52d84b4-a140-4a3a-b707-80644232e926 aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e url: https://github.com/HasCold description: this is the testing url enabled: true event_filter_json: '["payment.created","payment.authorized"]' created_at: "2025-12-02T12:48:35Z" updated_at: "2025-12-02T12:53:10Z" secret: "9sU3KVM5iQYZsxt40st1nkJsvbyuLnquB3Re1Q7k08w=" secret_version: 1 secret_rotated_at: "2025-12-02T12:48:35Z" count: "1" ListWebhookDeliveryResponse: description: This response contains a paginated list of webhook deliveries. headers: Content-Length: $ref: "#/components/headers/ContentLengthHeader" Date: $ref: "#/components/headers/DateHeader" content: application/json: schema: allOf: - $ref: "#/components/schemas/StandardResponse" - type: object properties: data: type: object description: Paginated collection of webhook deliveries properties: deliveries: type: array description: List of webhook deliveries returned in the result set items: $ref: "#/components/schemas/WebhookDelivery" count: type: string example: "1" required: - deliveries - count examples: WebhookDeliveryList: value: api_version: v1 data: deliveries: - token: whd_f35737a8-60d0-4d62-8259-9cade007570a endpoint_token: wh_6b849c6f-c091-4ad3-b7a9-de06415c6db3 aggregator_id: agg_7f500b19-a5e4-4410-b334-5653367ebdf6 event_id: txnlog_5246fdcc-6c86-49bb-9da2-aa38262e0291 type: payment.rejected status: WD_DEAD attempts: 0 last_error: "status 422" next_attempt_at: "2025-12-17T14:30:03Z" created_at: "2025-12-17T14:30:02Z" delivered_at: null - token: whd_3c67553a-54ff-4bf7-a2a4-a3db233fd4d8 endpoint_token: wh_6b849c6f-c091-4ad3-b7a9-de06415c6db3 aggregator_id: agg_7f500b19-a5e4-4410-b334-5653367ebdf6 event_id: txnlog_1a574d66-9bdf-48ae-a858-802951c46705 type: payment.completed status: WD_DEAD attempts: 0 last_error: "status 422" next_attempt_at: "2025-12-17T12:00:48Z" created_at: "2025-12-17T12:00:47Z" delivered_at: null - token: whd_5521cdb9-fe09-4fa4-a63b-0c3637af7810 endpoint_token: wh_6b849c6f-c091-4ad3-b7a9-de06415c6db3 aggregator_id: agg_7f500b19-a5e4-4410-b334-5653367ebdf6 event_id: txnlog_9b62b0e1-4493-45cd-a55d-11c37d60e6d2 type: payment.created status: WD_DEAD attempts: 0 last_error: "status 422" next_attempt_at: "2025-12-17T12:00:48Z" created_at: "2025-12-17T12:00:46Z" delivered_at: null count: "10" examples: FindQRStatic: description: Static QR code response example value: api_version: v1 data: qr_code: id: "47" token: qr_e46d5205-1e40-4d5f-943c-af90bd0d5670 aggregator_merchant_id: am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30 type: STATIC code: "00020101021128760032749fe6ce91f94f6a9df2ec6ae9f75a300108SAFEPAYZ0224PK84HABB01640300501285945204563353035865802PK5912Lazer Sports6007Karachi62480520D19DKFNMVCT2M8CERIJ00720D19DKFNMVCT2M8CERIIG89360032e46d52051e404d5f943caf90bd0d567063040DCD" terminal_label: D19DKFNMVCT2M8CERIIG reference_label: D19DKFNMVCT2M8CERIJ0 is_deleted: false created_at: "2025-06-18T15:24:46Z" code_details: payload_format_indicator: "01" point_of_initiation_method: "11" merchant_category_code: "5633" transaction_currency: "586" transaction_amount: "" country_code: PK merchant_name: Lazer Sports merchant_city: Karachi postal_code: "" tip_or_convenience_indicator: "" convenience_fixed_fee: "" convenience_percentage_fee: "" crc: "0DCD" additional_data_field_template: bill_number: "" store_label: "" loyalty_label: "" customer_label: "" reference_label: D19DKFNMVCT2M8CERIJ0 terminal_label: D19DKFNMVCT2M8CERIIG transaction_purpose: "" additional_consumer_request: "" country_code: "" rfu_for_emvco: [] payment_system_specific: [] merchant_information_language_template: null merchant_account_information: - tag: "28" value: globally_unique_identifier: tag: "00" value: "749fe6ce91f94f6a9df2ec6ae9f75a30" payment_network_specific: - tag: "01" value: SAFEPAYZ - tag: "02" value: PK84HABB0164030050128594 rfu_for_emvco: [] unreserved_templates: - tag: "89" value: globally_unique_identifier: tag: "00" value: e46d52051e404d5f943caf90bd0d5670 context_specific_data: [] FindQRDynamic: description: Dynamic QR code response example value: api_version: v1 data: qr_code: id: "58" token: qr_7775775d-d4ba-4db9-ab92-2b9f252b0813 aggregator_merchant_id: am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30 type: DYNAMIC code: "00020101021228760032b8319f0295b746968f99477bc0eaf3390108SAFEPAYZ0224PK84HABB016403005012859452045633530358654040.015802PK5912Lazer Sports6007Karachi62100506DQR10089360032b4a6d0a71a9a42e58793ae9acb9b19ac84760032b8319f0295b746968f99477bc0eaf3390136b4a6d0a7-1a9a-42e5-8793-ae9acb9b19ac63040870" terminal_label: "" reference_label: "" is_deleted: false created_at: "2025-06-23T06:47:08Z" code_details: payload_format_indicator: "01" point_of_initiation_method: "12" merchant_category_code: "5633" transaction_currency: "586" transaction_amount: "0.01" country_code: PK merchant_name: Lazer Sports merchant_city: Karachi postal_code: "" tip_or_convenience_indicator: "" convenience_fixed_fee: "" convenience_percentage_fee: "" crc: "0870" additional_data_field_template: bill_number: "" store_label: "" loyalty_label: "" customer_label: "" reference_label: DQR100 terminal_label: "" transaction_purpose: "" additional_consumer_request: "" country_code: "" rfu_for_emvco: [] payment_system_specific: [] merchant_information_language_template: null merchant_account_information: - tag: "28" value: globally_unique_identifier: tag: "00" value: b8319f0295b746968f99477bc0eaf339 payment_network_specific: - tag: "01" value: SAFEPAYZ - tag: "02" value: PK84HABB0164030050128594 rfu_for_emvco: [] unreserved_templates: - tag: "89" value: globally_unique_identifier: tag: "00" value: b4a6d0a71a9a42e58793ae9acb9b19ac context_specific_data: [] - tag: "84" value: globally_unique_identifier: tag: "00" value: b8319f0295b746968f99477bc0eaf339 context_specific_data: - tag: "01" value: b4a6d0a7-1a9a-42e5-8793-ae9acb9b19ac FindMerchant: description: Aggregator merchant lookup response example value: api_version: v1 data: id: "4" token: am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30 name: Lazer Sports aggregator_id: agg_2288490a-2176-4de5-b373-0ffb6f8e2e6e merchant_id: mer_dd0aa205-5b38-4691-bf1e-d30524c5be97 merchant_external_id: sec_0e84768c-048e-4946-9066-ea199fec7722 bank_account_id: acc_c03a57cb-a616-42a7-b1dc-de473217a558 enabled: true created_at: "2025-03-13T09:13:25Z" updated_at: "2025-06-03T11:44:56Z" bank_account: id: "11" token: acc_c03a57cb-a616-42a7-b1dc-de473217a558 vault_token: lock_464309f2-572f-493f-8272-e503277b06fd title: SYED MUHAMMAD HAQANI iban: PK84HABB0164030050128594 redacted_iban: PK84HABB************8594 hashed_iban: TAQswoYYIJaiPH15TAS5+tnFe7yDOK0kWP2wgSXwi7k= servicer: HABBPKKARTG bank: "" depositor_id: dep_31b1166f-de14-4e66-ba4a-2a321ca55a77 owner: raast kind: 5 version: v1 created_at: "2025-03-13T09:12:35Z" updated_at: "2025-03-13T09:12:35Z" raast_merchant: id: "4" token: mer_dd0aa205-5b38-4691-bf1e-d30524c5be97 partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c raast_record_id: "478619" status: Inactive uid_type: NTN uid_value: "4220111082020" name: Lazer Sports document_type: NTN document_number: "4220111082026" address_details: country: PK city: Karachi state_province_region: Sindh address_line: Federal.B. Area contact_details: mobile_number: "+923001234926" email: testingbyHas@gesafepay.com additional_details: dba: The best business 001 mcc: "5633" lat: "" long: "" additional_details_private: {} created_at: "2025-03-13T09:13:23Z" updated_at: "2025-06-03T11:44:56Z" rate_card: id: "23" token: mrc_50f44cfa-7fc4-4111-82db-84233aeb7d04 aggregator_merchant_id: am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30 connector_id: conn_c05caf8c-1f8d-4e58-bcfd-833531500693 rate_card_id: rc_4a61062c-c3a7-4dee-8199-f122eb9d90d3 ratecard_kind: RateCardKind_fixed created_at: "2025-03-13T09:13:23Z" updated_at: "2025-06-03T11:44:57Z" fixed_rate: "40000" tax_rate: 0 tax_region: "" ListQRPayments: description: Example response when listing payments tied to a QR code value: api_version: v1 data: payments: - id: "631" token: pm_3442e2b7-caec-4d63-bbed-f443aa9b8237 aggregator_merchant_id: am_749fe6ce-91f9-4f6a-9df2-ec6ae9f75a30 qr_code_id: qr_d47b3462-4208-40f1-9994-e7bf8b8a16d8 order_id: SCB200 type: DYNAMIC_QR amount: "20000" status: P_REJECTED uetr: a66171ef-b247-4cdf-971e-886d45d2b9a0 trace_reference: 90c4831d-e6d7-491e-a5f9-5f92c7cd1073 msg_id: H1KMBBKXMARBF3EEP5HATG27BHIAZ3GIH2J instr_id: 1b548b244d094b83b30e0791367bc7ce end_to_end_id: a66171efb2474cdf971e886d45d2b9a0 pmt_inf_id: WLJAG10SD4YYFQTQQ2XPJAV8OIG0NAPJR62 request_id: 144bf8a6-9c20-4082-805f-fe2648860db5 msg_created_at: "2025-06-26 08:32:42." expires_at: "2025-06-26T11:32:42Z" created_at: "2025-06-26T08:32:42Z" updated_at: "2025-06-26T11:33:57Z" txn_logs: [] debitor: null qr_code: null aggregator_merchant: null refunds: [] settlement: null FindRaastMerchantSecretKey: description: Example response when reading a Raast merchant using the secret key header value: api_version: v1 data: id: "32" token: mer_2cab1524-805d-4a09-8e51-924ddf3f43ea partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c raast_record_id: "483177" status: Active uid_type: NTN uid_value: "33225247896001" name: Raast-Saphir-Merch document_type: NTN document_number: "33225247896001" address_details: country: PK city: Karachi state_province_region: Sindh address_line: h193c1 street contact_details: mobile_number: "+9233330226445" email: sapphire.bus@gmail.com additional_details: dba: The best business 101 mcc: "9032" lat: "" long: "" additional_details_private: {} created_at: "2025-09-12T07:06:06Z" updated_at: "2025-09-12T10:46:06Z" ListRaastMerchantsSecretKey: description: Example response when listing Raast merchants with the secret key header value: api_version: v1 data: merchants: - id: "32" token: mer_2cab1524-805d-4a09-8e51-924ddf3f43ea partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c raast_record_id: "483177" status: Active uid_type: NTN uid_value: "33225247896001" name: Raast-Saphir-Merch document_type: NTN document_number: "33225247896001" address_details: country: PK city: Karachi state_province_region: Sindh address_line: h193c1 street contact_details: mobile_number: "+9233330226445" email: sapphire.bus@gmail.com additional_details: dba: The best business 101 mcc: "9032" lat: "" long: "" additional_details_private: {} created_at: "2025-09-12T07:06:06Z" updated_at: "2025-09-12T10:46:06Z" - id: "31" token: mer_68d6a9d0-525e-4d53-9050-b8ee7bb58a59 partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c raast_record_id: "483174" status: Inactive uid_type: NTN uid_value: "33225247890479" name: Hel-Saphire document_type: NTN document_number: "33225247890479" address_details: country: PK city: Karachi state_province_region: Sindh address_line: h193c1 street contact_details: mobile_number: "+9233330226445" email: testing1702@gmail.com additional_details: dba: The best business 200 mcc: "0030" lat: "" long: "" additional_details_private: {} created_at: "2025-09-12T06:25:31Z" updated_at: "2025-09-12T06:25:31Z" - id: "30" token: mer_dccb8cd9-3b5d-473d-a12e-71816f009f14 partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c raast_record_id: "" status: "" uid_type: NTN uid_value: "33225247890509" name: Blue Wave document_type: NTN document_number: "33225247890509" address_details: country: PK city: Karachi state_province_region: Punjab address_line: h193c1 street contact_details: mobile_number: "+9233330224921" email: testing.dev@gmail.com additional_details: dba: The best business 201 mcc: "0030" lat: "" long: "" additional_details_private: {} created_at: "2025-09-11T09:58:19Z" updated_at: "2025-09-11T09:58:19Z" - id: "29" token: mer_2e741c64-e205-4efb-ac49-7388bb991c28 partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c raast_record_id: "483008" status: Active uid_type: NTN uid_value: "33225247890212" name: Express document_type: NTN document_number: "33225247890212" address_details: country: PK city: Karachi state_province_region: Sindh-1 address_line: Block-11 Federal.B. Area contact_details: mobile_number: "+923001234302" email: testing1702@gmail.com additional_details: dba: The best business 200 mcc: "5490" lat: "" long: "" additional_details_private: {} created_at: "2025-09-04T08:18:21Z" updated_at: "2025-09-10T05:58:27Z" - id: "28" token: mer_c95a9e5b-7626-468a-b06b-1ebc92fb0290 partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c raast_record_id: "483007" status: Active uid_type: NTN uid_value: "33225247890499" name: Saphire document_type: NTN document_number: "33225247890499" address_details: country: PK city: Karachi state_province_region: Sindh address_line: h193c1 street contact_details: mobile_number: "+9233330226445" email: testing1702@gmail.com additional_details: dba: The best business 200 mcc: "0030" lat: "" long: "" additional_details_private: {} created_at: "2025-09-04T07:18:03Z" updated_at: "2025-09-04T08:04:45Z" - id: "27" token: mer_fa5e8121-1b60-4b8f-969f-8e9d2594df74 partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c raast_record_id: "482975" status: Active uid_type: NTN uid_value: "33225244890211" name: SFPY RAAST document_type: NTN document_number: "33225244890211" address_details: country: PK city: Karachi state_province_region: Sindh address_line: Also somewhere over there contact_details: mobile_number: "+9233330226445" email: suleman.shishmahal@gmail.com additional_details: dba: Testing SPFY RAAST mcc: "3434" lat: "" long: "" additional_details_private: {} created_at: "2025-09-02T08:16:56Z" updated_at: "2025-09-03T11:07:07Z" - id: "26" token: mer_47a61ae8-c5a8-4734-b73a-421ce42b3dc6 partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c raast_record_id: "482953" status: Active uid_type: NTN uid_value: "33225247840432" name: Safepay RAAST MR document_type: NTN document_number: "33225247840432" address_details: country: PK city: Karachi state_province_region: Sindh address_line: Somewhere over there contact_details: mobile_number: "+9233330226445" email: sshishmahal@getsafepay.com additional_details: dba: Safepay RAAST mcc: "3434" lat: "" long: "" additional_details_private: {} created_at: "2025-09-02T05:28:30Z" updated_at: "2025-09-02T05:34:00Z" - id: "25" token: mer_63b32978-8af7-41b8-88fc-d027be766f77 partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c raast_record_id: "482791" status: Active uid_type: NTN uid_value: "33225247899613" name: fat_merchant document_type: NTN document_number: "33225247899613" address_details: country: PK city: Karachi state_province_region: Sindh address_line: random street contact_details: mobile_number: "+9233330226892" email: fat.dev@gmail.com additional_details: dba: The business 890 mcc: "5865" lat: "" long: "" additional_details_private: {} created_at: "2025-08-20T09:08:49Z" updated_at: "2025-08-20T09:09:16Z" - id: "24" token: mer_d5de390d-93c6-4f4d-b77e-112b080be2e8 partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c raast_record_id: "482757" status: Active uid_type: NTN uid_value: "33225247899907" name: ssh_merchant document_type: NTN document_number: "33225247899907" address_details: country: PK city: Karachi state_province_region: Sindh address_line: random street contact_details: mobile_number: "+9233330226892" email: ssh.dev@gmail.com additional_details: dba: The business 009 mcc: "5865" lat: "" long: "" additional_details_private: {} created_at: "2025-08-18T10:40:48Z" updated_at: "2025-08-28T09:09:06Z" - id: "23" token: mer_5c31f8a9-2720-4f7a-9eb3-57241cfed288 partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c raast_record_id: "482591" status: Active uid_type: NTN uid_value: "33225247892403" name: rashid_merchant document_type: NTN document_number: "33225247892403" address_details: country: PK city: Karachi state_province_region: Sindh address_line: random street contact_details: mobile_number: "+9233330226007" email: rashid.dev@gmail.com additional_details: dba: The business 110 mcc: "5879" lat: "" long: "" additional_details_private: {} created_at: "2025-08-08T11:09:51Z" updated_at: "2025-08-11T10:26:32Z" count: "27" tags: - name: Aggregators - name: Access Keys - name: Merchants - name: Raast Merchants - name: Payments - name: Refunds - name: QRs - name: Utilities - name: Aliases - name: Ledgers - name: Webhooks - name: Settlement Operations - name: Settlement Reports