openapi: 3.1.0 info: title: Raast Wire version: 1.0.0 description: "" servers: - url: https://dev.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: get: tags: - Raast Merchants summary: List Raast Merchants description: Retrieve Raast merchant records accessible to the aggregator security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - name: limit in: query required: false description: Maximum number of Raast merchants to return example: 10 schema: type: string - name: offset in: query required: false description: Cursor offset for pagination example: 0 schema: type: string - name: status in: query required: false description: Filter Raast merchants by onboarding status schema: type: string enum: - Active - Suspended example: Active - name: names in: query required: false description: Filter by comma-separated list of Raast merchant names example: Lazer Sports,Testing Merchant schema: type: string responses: "200": $ref: "#/components/responses/ListRaastMerchantsResponse" "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: [] parameters: - $ref: "#/components/parameters/AggregatorSecretKeyHeader" 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: - $ref: "#/components/parameters/AggregatorSecretKeyHeader" - 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 responses: "200": $ref: "#/components/responses/ListPaymentsResponse" /v1/aggregators/{raast-aggregator-id}/payments/{payment-id}: get: tags: - Payments summary: Find Payment security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/PaymentIdParam" responses: "200": $ref: "#/components/responses/FindPaymentResponse" /v1/aggregators/{raast-aggregator-id}/payout: post: tags: - Payments summary: Initiate Payout description: Initiate a Raast payout to credit a beneficiary IBAN security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" 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: post: tags: - Refunds summary: Create Refund parameters: - $ref: "#/components/parameters/AggregatorIdParam" responses: "200": $ref: "#/components/responses/CreateRefundResponse" requestBody: $ref: "#/components/requestBodies/CreateRefund" security: - apiKey: [] get: tags: - Refunds summary: List Refunds 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_ids in: query required: false example: pm_2288490a schema: type: string - name: direction in: query required: false example: DESC schema: type: string enum: - ASC - DESC - $ref: "#/components/parameters/AggregatorIdParam" responses: "200": $ref: "#/components/responses/ListRefundsResponse" "500": $ref: "#/components/responses/InternalError" /v1/aggregators/{raast-aggregator-id}/refunds/{refund-id}: get: tags: - Refunds summary: Find Refund security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/RefundIdParam" responses: "200": $ref: "#/components/responses/FindRefundResponse" "500": $ref: "#/components/responses/InternalError" /v1/aggregators/{raast-aggregator-id}/qrs: post: tags: - QR Codes summary: Create QR security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" responses: "200": $ref: "#/components/responses/CreateQRCodeResponse" requestBody: $ref: "#/components/requestBodies/CreateQRCode" get: tags: - QR Codes summary: List QR Codes security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - name: type in: query required: false example: STATIC schema: type: string enum: - STATIC - DYNAMIC - name: limit in: query required: false example: 10 schema: type: string - name: offset in: query required: false example: 0 schema: type: string responses: "200": $ref: "#/components/responses/ListQRCodesResponse" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}: get: tags: - QR Codes summary: Find QR security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/QRIdParam" responses: "200": $ref: "#/components/responses/FindQRCodeResponse" "401": $ref: "#/components/responses/Unauthorized" delete: tags: - QR Codes summary: Delete QR Codes security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/QRIdParam" responses: "200": $ref: "#/components/responses/StandardSuccess" "400": $ref: "#/components/responses/BadRequest" /v1/aggregators/{raast-aggregator-id}/qrs/{qr-id}/payments: get: tags: - QR Codes summary: List payments security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - $ref: "#/components/parameters/QRIdParam" - name: limit in: query required: false example: 10 schema: type: string - name: offset in: query required: false example: 0 schema: type: string responses: "200": $ref: "#/components/responses/ListPaymentsForQRCodeResponse" /v1/aggregators/{raast-aggregator-id}/title-fetch: get: tags: - Utlities summary: Title Fetch description: Retrieve account title metadata for a Raast IBAN security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - name: iban in: query required: true description: IBAN to fetch the registered account title for schema: type: string example: PK46MPBL0101017140572181 responses: "200": $ref: "#/components/responses/TitleFetchResponse" "401": $ref: "#/components/responses/Unauthorized" /v1/aggregators/{raast-aggregator-id}/account-info: get: tags: - Utlities summary: Read Account Info description: Retrieve Raast account metadata using an IBAN or alias lookup security: - apiKey: [] parameters: - $ref: "#/components/parameters/AggregatorIdParam" - name: iban in: query required: false description: IBAN to fetch account information for; optional when alias parameters are supplied schema: type: string example: PK91ALFH0005001007079203 - name: with_title_fetch in: query required: false description: When true, include account title details in the response schema: type: boolean example: true - 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 - name: alias_value in: query required: false description: Alias value to resolve; must be provided when alias_type is supplied schema: type: string example: 03472840476 responses: "200": $ref: "#/components/responses/AccountInfoResponse" "401": $ref: "#/components/responses/Unauthorized" 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 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 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 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 schemas: 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 IBAN acctype: type: string description: Classification of the account tied to the IBAN 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 vault_enabled: type: boolean description: Specifies if Safepay vault features are enabled for the aggregator example: true 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 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 created_at: $ref: "#/components/schemas/Timestamp" updated_at: $ref: "#/components/schemas/Timestamp" 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 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 properties: 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 code_details: $ref: "#/components/schemas/EMVCoDetails" created_at: $ref: "#/components/schemas/Timestamp" expired_at: $ref: "#/components/schemas/Timestamp" requestBodies: 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 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: type: string description: Pricing strategy type that controls how the rate card is evaluated enum: - fixed fixed_rate: type: integer description: Fixed per-transaction fee in paisa when using a fixed rate card tax_rate: type: number description: Applicable tax rate expressed as a fraction (e.g., 0.1 for 10%) required: - ratecard_kind - fixed_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: fixed fixed_rate: 3000 tax_rate: 0.1 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: fixed_rate: type: integer description: Fixed per-transaction fee in paisa tax_rate: type: number description: Applicable tax rate expressed as a fraction (e.g., 0.1 for 10%) tax_region: type: string description: Region where the tax rate applies variable_rate: type: number description: Fractional fee applied to the transaction amount examples: Update Merchant: value: name: NSH merchant enabled: true iban: PK85HABB0002157901170103 rate_card: fixed_rate: 4000 tax_rate: 0.1 tax_region: "" variable_rate: 0.029 CreatePayment: description: Request to create an RTP Now or RTP Later content: application/json: schema: type: object description: RTP creation payload encapsulating amount, merchant, and debitor details. 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 debitor_raast_id: type: string description: Raast alias for the debitor (for example, a mobile number). debitor_vault_token: type: string description: Token referencing a stored debitor payment instrument in the vault. debitor_iban: type: string description: Debitor IBAN for direct account routing. required: - request_id - amount - aggregator_merchant_identifier - order_id - type oneOf: - required: - debitor_raast_id - required: - debitor_vault_token - required: - debitor_iban 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 an RTP Now or RTP Later content: application/json: schema: type: object properties: request_id: type: string payment_id: type: string amount: type: integer reason: type: string 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 properties: type: type: string aggregator_merchant_identifier: type: string request_id: type: string order_id: type: string amount: type: integer 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 responses: 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 properties: message: example: success 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: token: agg_tok_2b42c4d0 partner_id: partner_123456 bank_account_id: ba_2cab1524-805d-4a09-8e51-924ddf3f43ea name: Example Aggregator is_active: true vault_enabled: true 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-25T06:17:59Z created_at: 2025-04-01T08:00:00Z updated_at: 2025-04-15T09:30:00Z 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 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" 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: List Raast Merchants: value: api_version: v1 data: merchants: - id: "4" token: mer_dd0aa205-5b38-4691-bf1e-d30524c5be97 partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c raast_record_id: "478619" status: Suspended 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-09-02T06:15:35Z" - id: "3" token: mer_94e3e994-1479-4dee-a2f0-9d3f14c5ca7e partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c raast_record_id: "478477" status: Active uid_type: NTN uid_value: "4220111082025" name: Lazer Sports document_type: NTN document_number: "4220111082025" address_details: country: PK city: Karachi state_province_region: Karachi address_line: Saima royal residency contact_details: mobile_number: "+923001234567" email: ausmani@gesafepay.com additional_details: dba: The best business 001 mcc: "5613" lat: "" long: "" additional_details_private: {} created_at: "2025-03-05T09:32:13Z" updated_at: "2025-03-05T09:32:26Z" count: "2" 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" 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: "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" raast_merchant: id: "10" token: mer_eb2f5757-c0e4-4eb4-ad4b-2f4b671a84e2 partner_id: partner_ed4f0480-36c8-4a5a-8cd4-381bc4d83f2c raast_record_id: "480776" status: Active 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:41Z" updated_at: "2025-07-24T07:07:13Z" rate_card: id: "39" token: mrc_20d3f00e-6e1a-4aa6-bb1c-d9a12afb95b6 aggregator_merchant_id: am_c1460543-4a10-473c-b60b-60218326d1b1 connector_id: conn_af8e9b08-85f3-48f8-845d-23362e51c7b9 rate_card_id: rc_8a9fd9cf-f054-4c5e-bd77-7410f876edb7 created_at: "2025-07-24T07:11:31Z" updated_at: "2025-07-24T07:11:31Z" tax_rate: 0 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" 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" 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" 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: count: type: integer example: 1 description: Total number of QR Codes keys: type: array description: List of QR Codes items: $ref: "#/components/schemas/QRCode" 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: $ref: "#/components/schemas/QRCodeDetailed" ListPaymentsForQRCodeResponse: description: This response contains a paginated list of payments linked to 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 properties: count: type: integer example: 1 description: Total number of payments keys: type: array description: List of payments items: $ref: "#/components/schemas/Payment" tags: - name: Aggregators - name: Access Keys - name: Merchants - name: Raast Merchants - name: Payments - name: Refunds - name: QR Codes - name: Utlities