openapi: 3.0.2 info: title: Gateway Services description: >- Self onboarding services for merchants to register on the platform, create wallets, and perform withdrawals or payouts to their designated settlement and external beneficiary accounts. contact: name: Standards & Developer Hub url: https://tts.sandbox.developer.citi.com/citiconnect/ email: developer-support@citi.com version: 1.0.0 servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices description: production gateway url - url: https://sandbox.b2b.api.icg.citi.com/citiconnect/sb/gatewayservices description: sbox url tags: - name: MerchantCreation description: Merchant onboarding and management operations - name: File description: File management - name: Certification description: KYC certification submission and retrieval - name: Rfi description: Request for Information operations - name: Wallet description: Wallet management and balance operations - name: LinkAccount description: Account linkage operations for external payments - name: Payment description: Payout and payment query operations - name: Fx description: FX Rate Inquiry - name: Reporting description: Transaction and balance reporting operations security: - oAuth2: - /authenticationservices/v1 paths: /merchants/v1/onboard: post: tags: - MerchantCreation summary: Create merchant description: >- This endpoint allows you to create or onboard a merchant on the Payment Service Provider platform, validate onboarding data, and receive a merchant identifier for downstream service requests. operationId: merchantCreation servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Idempotency-Id' - $ref: '#/components/parameters/Country-Code' requestBody: required: true description: >- This request body contains the necessary merchant details for creating a new merchant entity in PSP. content: application/json: schema: $ref: '#/components/schemas/Merchant-Onboarding-Request' examples: Merchant-Creation-For-Enterprise-Request: $ref: >- #/components/examples/Merchant-Creation-For-Enterprise-Request-Example responses: '200': description: >- This response body will return the unique identifier for the newly created merchant along with status. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' content: application/json: schema: $ref: '#/components/schemas/Merchant-Onboarding-Response' examples: merchant_creation_success_response: $ref: >- #/components/examples/Merchant-Creation-Success-Response-Example '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '409': $ref: '#/components/responses/Conflict' '415': $ref: '#/components/responses/Unsupported-Media-Type' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 get: summary: Get Merchant ID description: >- Use the partner user ID on your platform to look up the merchant ID on the payment service provider platform (the merchant_id returned when you create a merchant). operationId: getMerchantId servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - MerchantCreation parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Country-Code' - $ref: '#/components/parameters/Partner-User-Id' responses: '200': description: Merchant ID retrieved successfully. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' content: application/json: schema: $ref: '#/components/schemas/Get-Merchant-Onboarding' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 /merchants/v1/documents/upload: post: tags: - File summary: Documents upload for verification description: >- This endpoint is where you securely upload files to send to payment service provider, including KYC and KYB documentation to support customer verification. operationId: fileUpload servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Idempotency-Id' - $ref: '#/components/parameters/Merchant-Id' - $ref: '#/components/parameters/Country-Code' requestBody: required: true description: >- Multipart file upload allows client to send files (e.g., images, documents) as part of a request. The request content type must be multipart/form-data. Supported formats are image/png, image/jpeg, image/jpg, image/bmp, application/pdf. Supported file size <10000000 bytes. Client should pass single file per request content: multipart/form-data: schema: title: Upload-Document-Request type: object required: - file properties: file: type: string format: binary description: The file to upload maxLength: 10000000 additionalProperties: false encoding: file: contentType: image/png, image/jpeg, image/jpg, image/bmp, application/pdf. headers: Content-Length: schema: type: integer maximum: 10000000 responses: '200': description: Merchant ID creation Response headers: apim-guid: $ref: '#/components/headers/Apim-Guid' content: application/json: schema: $ref: '#/components/schemas/File-Upload-Response' examples: File-Upload-Positive-Response: $ref: '#/components/examples/File-Upload-Positive-Response-Example' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '409': $ref: '#/components/responses/Conflict' '415': $ref: '#/components/responses/Unsupported-Media-Type' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' deprecated: false security: - oAuth2: - /authenticationservices/v1 /merchants/v1/documents/download: post: summary: File Download description: >- Retrieve secure download links for previously uploaded merchant files by providing one or more file identifiers, allowing clients to fetch supported documents in a controlled and traceable manner. operationId: downloadFile servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - File parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Country-Code' - $ref: '#/components/parameters/Merchant-Id' requestBody: content: application/json: schema: title: Download-Document-Request type: object properties: file_ids: type: array minItems: 1 maxItems: 25 items: type: string maxLength: 128 description: >- File ID returned by PingPong at upload. List file ids to get download links for multiple files in one call. required: - file_ids example: file_ids: - N1234567891011121314151620 - N1234567891011121314151621 - N1234567891011121314151622 responses: '200': description: File downloaded successfully. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' content: application/json: schema: $ref: '#/components/schemas/File-Download-Response' examples: File-Download-Response-Example: $ref: '#/components/examples/File-Download-Response-Example' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '415': $ref: '#/components/responses/Unsupported-Media-Type' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' deprecated: false security: - oAuth2: - /authenticationservices/v1 /merchants/v1/certification: post: summary: Submit Certification description: >- This endpoint allows you to submit certification information to verify a merchant or update existing KYC details, and trigger review workflows required for compliance and account readiness. operationId: submitCertification servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - Certification parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Idempotency-Id' - $ref: '#/components/parameters/Country-Code' - $ref: '#/components/parameters/Merchant-Id' - $ref: '#/components/parameters/Operation' requestBody: required: true description: Request body for the certification request. content: application/json: schema: $ref: '#/components/schemas/Certification-Request' examples: Certification-Request: $ref: '#/components/examples/Certification-Request' Certification-Request-CN: $ref: '#/components/examples/Certification-Request-Cn' Certification-Request-HK: $ref: '#/components/examples/Certification-Request-Hk' responses: '200': description: Certification request accepted for processing. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' content: application/json: schema: $ref: '#/components/schemas/Sync-Response' examples: Certification-Save-Acknowledgement: $ref: '#/components/examples/Certification-Save-Acknowledgement' Certification-Submit-Acknowledgement: $ref: '#/components/examples/Certification-Submit-Acknowledgement' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '409': $ref: '#/components/responses/Conflict' '415': $ref: '#/components/responses/Unsupported-Media-Type' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 callbacks: certification-webhook: '{$notificationURL}': post: summary: Certification Webhook description: >- Webhook notification for certification status updates. Pushes updates of the KYC certification request. operationId: certificationWebhook parameters: - $ref: '#/components/parameters/Event-Type' - $ref: '#/components/parameters/Event-Name' - $ref: '#/components/parameters/Apim-Guid' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Webhook-Certification' examples: Certification-Approved-Webhook-Example: $ref: >- #/components/examples/Certification-Approved-Webhook-Example Certification-Declined-Webhook-Example: $ref: >- #/components/examples/Certification-Declined-Webhook-Example Certification-Rfi-Pending-Webhook-Example: $ref: >- #/components/examples/Certification-Rfi-Pending-Webhook-Example responses: '200': description: Webhook received successfully. rfi: '{$notificationURL}': post: operationId: rfiNotification summary: Request for Information (RFI) Notification Webhook description: This webhook pushes notifications of Request for Information. tags: - RFI Webhook parameters: - $ref: '#/components/parameters/Event-Type' - $ref: '#/components/parameters/Event-Name' - $ref: '#/components/parameters/Apim-Guid' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RFI-Notification' examples: rfi-notification-example: $ref: '#/components/examples/RFI-Notification-Example' responses: '200': description: Webhook received successfully. get: summary: Get Certification description: >- Check the status of a merchant's KYC review using the merchant_id returned during onboarding, including progress indicators, review outcomes, and required follow-up actions when applicable. operationId: getCertification servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - Certification parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Country-Code' - $ref: '#/components/parameters/Merchant-Id' responses: '200': description: Certification details retrieved successfully. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' content: application/json: schema: $ref: '#/components/schemas/Get-Certification-Response' examples: Get-Certification: $ref: '#/components/examples/Get-Certification' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 /merchants/v1/wallets/activation: post: summary: Activate wallet for virtual accounts description: >- Use this endpoint to apply for Virtual Accounts (VAs) to start sending/receiving funds. You can only apply for VAs when the kyc_status of your account is APPROVED. operationId: activateWallet servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - Wallet parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Idempotency-Id' - $ref: '#/components/parameters/Merchant-Id' - $ref: '#/components/parameters/Country-Code' requestBody: required: true description: >- This section holds the request parameters for virtual account activation. content: application/json: schema: $ref: '#/components/schemas/Wallet-Activation-Request' examples: wallet-activation-request: $ref: '#/components/examples/Wallet-Activation-Request-Example' responses: '200': description: >- This section holds the successful response for virtual account activation. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' content: application/json: schema: $ref: '#/components/schemas/Sync-Response' examples: wallet-activation-response: $ref: '#/components/examples/Wallet-Activation-Response-Example' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '409': $ref: '#/components/responses/Conflict' '415': $ref: '#/components/responses/Unsupported-Media-Type' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 callbacks: walletActivationWebhook: '{$notificationURL}': post: summary: Wallet activation webhook notification description: >- Webhook notification sent when a wallet activation status changes. operationId: walletActivationWebhookNotification tags: - Wallet parameters: - $ref: '#/components/parameters/Event-Type' - $ref: '#/components/parameters/Event-Name' - $ref: '#/components/parameters/Apim-Guid' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Webhook-Wallet-Activation' examples: Wallet-Activation-Available-Webhook-Example: $ref: >- #/components/examples/Wallet-Activation-Available-Webhook-Example Wallet-Activation-Closed-Webhook-Example: $ref: >- #/components/examples/Wallet-Activation-Closed-Webhook-Example wallet-activation-Declined-webhook: $ref: >- #/components/examples/Wallet-Activation-Declined-Webhook-Example responses: '200': description: Webhook received successfully. /merchants/v1/wallets/balances: get: summary: Get wallet balances description: > Retrieve available and related wallet account balance information for the specified merchant and account filters, enabling reconciliation, reporting, and operational funding decisions. operationId: getWalletBalances servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - Wallet parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Merchant-Id' - $ref: '#/components/parameters/Currency-Code' - $ref: '#/components/parameters/Country-Code' - $ref: '#/components/parameters/Virtual-Account-Id' responses: '200': description: This section holds the virtual balances. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' content: application/json: schema: $ref: '#/components/schemas/Get-Wallet-Balances' examples: get-wallet-balances-response: $ref: '#/components/examples/Get-Wallet-Balances-Response-Example' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 /merchants/v1/wallets: get: summary: Get wallet status description: >- Check the status of virtual accounts using the virtual_account_id returned from wallet activation, and review account state details needed to determine operational readiness and lifecycle stage. operationId: getWallet servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - Wallet parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Merchant-Id' - $ref: '#/components/parameters/Country-Code' - $ref: '#/components/parameters/Virtual-Account-Id' responses: '200': description: >- This section holds the successful response for virtual account status inquiry. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' content: application/json: schema: $ref: '#/components/schemas/Get-Wallet-Activation-Response' examples: get-wallet-response: $ref: '#/components/examples/Get-Wallet-Response-Example' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 /merchants/v1/link-accounts: post: summary: Link external account for payments description: >- Use this endpoint to verify an external creditor account and receive a creditor_id for successfully validated beneficiaries, so the account can be used in subsequent payout transactions. operationId: linkAccount servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - LinkAccount parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Merchant-Id' - $ref: '#/components/parameters/Idempotency-Id' - $ref: '#/components/parameters/Country-Code' requestBody: required: true description: This section holds the request parameters used to verify the Creditor. content: application/json: schema: $ref: '#/components/schemas/Link-Account-Request' examples: account-linkage-request: $ref: '#/components/examples/Account-Linkage-Request-Example' Account-Linkage-Request-Example-HK: $ref: '#/components/examples/Account-Linkage-Request-Example-HK' Account-Linkage-Request-Example-CN: $ref: '#/components/examples/Account-Linkage-Request-Example-CN' responses: '200': description: >- This section holds the successful response for creditor verification. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' content: application/json: schema: $ref: '#/components/schemas/Sync-Response' examples: account-linkage-response: $ref: '#/components/examples/Account-Linkage-Response-Example' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '409': $ref: '#/components/responses/Conflict' '415': $ref: '#/components/responses/Unsupported-Media-Type' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 callbacks: accountLinkageWebhook: '{$notificationURL}': description: >- This endpoint used to push the status notification for creditor verification. post: summary: Account linkage webhook notification description: >- Webhook notification sent when an account linkage status changes. This callback is triggered for status updates on linked accounts. operationId: accountLinkageWebhookNotification tags: - Account-Linkage parameters: - $ref: '#/components/parameters/Event-Type' - $ref: '#/components/parameters/Event-Name' - $ref: '#/components/parameters/Apim-Guid' requestBody: description: >- This section holds the request parameters for creditor verification notification. required: true content: application/json: schema: $ref: '#/components/schemas/Webhook-Link-Account' examples: Account-Linkage-Available-Webhook-Example: $ref: >- #/components/examples/Account-Linkage-Available-Webhook-Example Account-Linkage-Declined-Webhook-Example: $ref: >- #/components/examples/Account-Linkage-Declined-Webhook-Example responses: '200': description: Webhook received successfully. get: summary: Get linked account details description: >- You can use this to check the status of the creditor. Creditor must be verified and have an 'AVAILABLE' status before sending external payments. operationId: getLinkedAccount servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - LinkAccount parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Merchant-Id' - $ref: '#/components/parameters/Country-Code' - $ref: '#/components/parameters/Creditor-Id' - $ref: '#/components/parameters/Creditor-Partner-User-Id' - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Page-No' responses: '200': description: >- This section holds the successful response for creditor verification inquiry. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' Pagination-Metadata: description: >- This header contains a JSON object with details about the response. The full schema is available in the 'Pagination-Metadata' schema section below schema: $ref: '#/components/schemas/Pagination-Metadata' content: application/json: schema: $ref: '#/components/schemas/Get-Link-Account-Response' examples: get-account-linkage-response: $ref: '#/components/examples/Get-Account-Linkage-Response-Example' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 /merchants/v1/fx-rate: post: summary: FX Query description: >- You can use this to get fx rate to be used for transaction. The latest rate you get is valid for 5 minutes , during which time you can use this rate to transaction operationId: fxQuery servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - Fx parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Idempotency-Id' - $ref: '#/components/parameters/Merchant-Id' - $ref: '#/components/parameters/Country-Code' requestBody: description: This section holds the request parameters for FX Rate Inquiry. required: true content: application/json: schema: $ref: '#/components/schemas/Fx-Query-Request' examples: fxquery-request: $ref: '#/components/examples/Fx-Query-Request-Example' responses: '200': description: FX Query completed successfully. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' content: application/json: schema: $ref: '#/components/schemas/Fx-Query-Response' examples: success-response: $ref: '#/components/examples/Fx-Query-Success-Example' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '409': $ref: '#/components/responses/Conflict' '415': $ref: '#/components/responses/Unsupported-Media-Type' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 /merchants/v1/payments: post: summary: Create Payment description: >- Make a payment from your account held with Citi to a virtual account held with Citi or from the virtual account held with Citi to an external bank account. Virtual account must be in "AVAILABLE" status. operationId: createPayout servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - Payment parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Idempotency-Id' - $ref: '#/components/parameters/Country-Code' - $ref: '#/components/parameters/Optional-Merchant-Id' - $ref: '#/components/parameters/Wallet-Payment' requestBody: x-skip-validation: true required: true description: This section contains the request parameters for payment initiation. content: application/json: schema: $ref: '#/components/schemas/Payment-Request' examples: Payment-To-Wallet-Request: $ref: '#/components/examples/Payment-To-Wallet-Request' Payment-To-External-Request: $ref: '#/components/examples/Payment-To-External-Request' responses: '202': description: Payout request accepted for processing. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' content: application/json: schema: $ref: '#/components/schemas/Payment-Response' examples: Payment-Validation-Success-Example: $ref: '#/components/examples/Payment-Validation-Success-Example' Payment-Validation-Partial-Rejection-Example: $ref: >- #/components/examples/Payment-Validation-Partial-Rejection-Example '400': description: Bad Request content: application/json: schema: title: Payment-Bad-Request-Response oneOf: - $ref: '#/components/schemas/Gateway-Error-Response' - $ref: '#/components/schemas/Service-Error-Response' - $ref: '#/components/schemas/Payment-Response' examples: Payment-Validation-Full-Rejection-Example: $ref: >- #/components/examples/Payment-Validation-Full-Rejection-Example '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '409': $ref: '#/components/responses/Conflict' '415': $ref: '#/components/responses/Unsupported-Media-Type' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 callbacks: payout-webhook: '{$notificationURL}': post: summary: Payout Webhook description: Webhook notification for payment status updates. operationId: payoutWebhook parameters: - $ref: '#/components/parameters/Event-Type' - $ref: '#/components/parameters/Event-Name' - $ref: '#/components/parameters/Apim-Guid' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Webhook-Payment-Request' examples: Payment-To-Wallet-Rejected-Webhook: $ref: >- #/components/examples/Payment-To-Wallet-Rejected-Webhook Payment-To-External-Rejected-Webhook: $ref: >- #/components/examples/Payment-To-External-Rejected-Webhook Payment-To-Wallet-Success-Webhook: $ref: >- #/components/examples/Payment-To-Wallet-Success-Webhook Payment-To-External-Success-Webhook: $ref: >- #/components/examples/Payment-To-External-Success-Webhook responses: '200': description: Webhook received successfully. inbound-payment: '{$notificationURL}': post: operationId: inboundPaymentNotification summary: Inbound Payment Notification Webhook description: >- This webhook pushes notifications for the payment received in your virtual account. tags: - Inbound Webhook parameters: - $ref: '#/components/parameters/Event-Type' - $ref: '#/components/parameters/Event-Name' - $ref: '#/components/parameters/Apim-Guid' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Inbound-Payment-Notification' examples: inbound-payment-example: $ref: >- #/components/examples/Inbound-Payment-Notification-Example responses: '200': description: Webhook received successfully. get: summary: Get Payment description: >- Query the status and detailed attributes of a payment using supported identifiers, including processing state, settlement outcomes, and reference information needed for reconciliation and customer support. operationId: getPayment tags: - Payment servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Country-Code' - $ref: '#/components/parameters/Optional-Merchant-Id' - $ref: '#/components/parameters/Uetr' - $ref: '#/components/parameters/End-To-End-Id' responses: '200': description: Payment details retrieved successfully. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' content: application/json: schema: $ref: '#/components/schemas/Get-Payment-Response' examples: Get-Payment-To-Wallet: $ref: '#/components/examples/Get-Payment-To-Wallet' Get-Payment-To-External: $ref: '#/components/examples/Get-Payment-To-External' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' deprecated: false security: - oAuth2: - /authenticationservices/v1 /merchants/v1/rfi: post: summary: RFI Response description: >- Allows you to respond to the RFI request with answers. This API allows you to reply to either a single or multiple questions in one call, depending on how you choose to respond. operationId: saveRfiResponse servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - Rfi parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Country-Code' - $ref: '#/components/parameters/Merchant-Id' - $ref: '#/components/parameters/Idempotency-Id' requestBody: description: This section holds the request parameters for RFI. required: true content: application/json: schema: $ref: '#/components/schemas/Rfi-Save-Request' examples: Rfi-Response: $ref: '#/components/examples/Rfi-Response' responses: '200': description: RFI response accepted for processing. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' content: application/json: schema: $ref: '#/components/schemas/Rfi-Save-Response' examples: Rfi-Response-Acknowledgement: $ref: '#/components/examples/Rfi-Response-Acknowledgement' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '409': $ref: '#/components/responses/Conflict' '415': $ref: '#/components/responses/Unsupported-Media-Type' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 get: summary: RFI Query description: >- Retrieves details of single RFI using the given RFI ID or returns a list of RFIs raised for your account. operationId: queryRfi servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - Rfi parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Country-Code' - $ref: '#/components/parameters/Merchant-Id' - $ref: '#/components/parameters/Rfi-Id' - $ref: '#/components/parameters/Type' - $ref: '#/components/parameters/From-Date' - $ref: '#/components/parameters/To-Date' - $ref: '#/components/parameters/Page-No' - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Rfi-Status' responses: '200': description: RFI details retrieved successfully. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' Pagination-Metadata: description: >- This header contains a JSON object with details about the response. The full schema is available in the 'Pagination-Metadata' schema section below schema: $ref: '#/components/schemas/Pagination-Metadata' content: application/json: schema: $ref: '#/components/schemas/Rfi-Query-Response' examples: Get-Rfi: $ref: '#/components/examples/Get-Rfi' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 /merchants/v1/rfi/submit: post: summary: RFI Submit description: >- Allows you to submit an RFI. After submitting status will be updated to CLOSED. CLOSED means the submission of replies is now disabled. operationId: submitRfiResponse servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - Rfi parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Country-Code' - $ref: '#/components/parameters/Idempotency-Id' - $ref: '#/components/parameters/Merchant-Id' requestBody: description: This section holds the request parameters for RFI Submit. required: true content: application/json: schema: $ref: '#/components/schemas/Rfi-Submit-Request' examples: Rfi-Submit: $ref: '#/components/examples/Rfi-Submit' responses: '200': description: RFI submitted successfully for processing. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' content: application/json: schema: $ref: '#/components/schemas/Rfi-Submit-Response' examples: Rfi-Submit-Acknowledgement: $ref: '#/components/examples/Rfi-Submit-Acknowledgement' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '409': $ref: '#/components/responses/Conflict' '415': $ref: '#/components/responses/Unsupported-Media-Type' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 /merchants/v1/transactions: get: summary: Transaction Reporting description: >- Retrieves list and details of transactions, suitable for reporting purposes such as ledgers, finance Operations and analytics. operationId: getTransactions servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - Reporting parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Country-Code' - $ref: '#/components/parameters/Merchant-Id' - $ref: '#/components/parameters/From-Date-Time' - $ref: '#/components/parameters/To-Date-Time' - $ref: '#/components/parameters/Page-No' - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Uetr' - $ref: '#/components/parameters/Payment-Type' - $ref: '#/components/parameters/Reporting-Status' responses: '200': description: Transaction report retrieved successfully. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' Pagination-Metadata: description: >- This header contains a JSON object with details about the response. The full schema is available in the 'Pagination-Metadata' schema section below schema: $ref: '#/components/schemas/Pagination-Metadata' content: application/json: schema: $ref: '#/components/schemas/Transaction-Report-Response' examples: Transaction-Report: $ref: '#/components/examples/Transaction-Report' Transaction-Report-For-WITHDRAW-&-INBOUND: $ref: >- #/components/examples/Transaction-Report-For-WITHDRAW-INBOUND Transaction-Report-For-PAYOUT: $ref: '#/components/examples/Transaction-Report-For-PAYOUT' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 /merchants/v1/balance-report: get: summary: Balance Report description: >- This helps financial reconciliation, enabling tracking of opening and closing balances for a period, along with updated running balances following each transaction. This report helps you track changes to your account balance and reconcile the balance whenever required. operationId: getBalanceReport servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - Reporting parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Country-Code' - $ref: '#/components/parameters/Merchant-Id' - $ref: '#/components/parameters/From-Date-Time' - $ref: '#/components/parameters/To-Date-Time' - $ref: '#/components/parameters/Page-No' - $ref: '#/components/parameters/Limit' - $ref: '#/components/parameters/Uetr' - $ref: '#/components/parameters/Currency-Code' - $ref: '#/components/parameters/Virtual-Account-Id' responses: '200': description: Balance report retrieved successfully. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' Pagination-Metadata: description: >- This header contains a JSON object with details about the response. The full schema is available in the 'Pagination-Metadata' schema section below schema: $ref: '#/components/schemas/Pagination-Metadata' content: application/json: schema: $ref: '#/components/schemas/Balance-Report-Response' examples: Balance-Report: $ref: '#/components/examples/Balance-Report' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 components: securitySchemes: oAuth2: type: oauth2 flows: clientCredentials: tokenUrl: https://b2b.api.icg.citi.com/authenticationservices/v3/oauth/token scopes: /authenticationservices/v1: Access to marketplace management APIs headers: Apim-Guid: description: >- Unique system generated reference number generated by Citi. Refer to this number in case of any discrepancy reporting to a Citi representative. schema: type: string maxLength: 128 minLength: 1 title: Apim-Guid required: true example: na-apimgwgtds04~4a98cbc5-d813-4e65-bc81-d70f0f87f6ec parameters: Client-Id: in: query name: client_id description: >- Your unique identification, same as the identification you use for OAuth token generation, Citi shared with you during your CitiConnect API onboarding. schema: type: string title: Client-Id example: 6d3cf821-db6d-496d-bec0-064a362e9c31 minimum: 1 maximum: 128 required: true Apim-Guid: in: header name: Apim-Guid description: >- Unique system generated reference number generated by Citi. Refer to this number in case of any discrepancy reporting to a Citi representative. schema: type: string maxLength: 128 minLength: 1 title: Apim-Guid required: true example: na-apimgwgtds04~4a98cbc5-d813-4e65-bc81-d70f0f87f6ec Optional-Merchant-Id: in: header name: Merchant-Id description: >- CITI generated Merchant ID during merchant creation. It is mandatory for payment to external. schema: type: string title: Merchant-Id minLength: 1 maxLength: 36 example: ec689822-9864-4c4d-9d68-22246762901 Merchant-Id: in: header name: Merchant-Id description: CITI generated Merchant ID during merchant creation. schema: type: string title: Merchant-Id minLength: 1 maxLength: 36 example: ec689822-9864-4c4d-9d68-22246762901 required: true Idempotency-Id: in: header name: Idempotency-Id description: >- Your unique identification for a POST request - Maximum length is 128. -CitiConnect API responds with an error (HTTP status 4XX) if your POST request idempotency identification value is a duplicate across a recent history of idempotency identifications in Citi's database. - If you don't receive any response (HTTP status 2XX, 4XX or 5XX) from Citi to your POST request and you wish to retry, reinitiate your request with the same idempotency identification to prevent accidental duplicate payment. schema: type: string title: Idempotency-Id minLength: 1 maxLength: 128 example: a44cbb606de4edb9a7a123414bba3bb required: true Country-Code: in: header name: Country-Code description: Marketplace's country code. schema: pattern: ^[A-Z]{2,2}$ type: string title: Country-Code example: US required: true Virtual-Account-Id: name: virtual_account_id in: query description: The unique ID returned when you call wallet activation. schema: type: string title: virtual_account_id minLength: 1 maxLength: 36 example: R200801012359590001 Creditor-Id: name: creditor_id in: query description: The unique creditor identifier returned when you call link account. schema: type: string title: creditor_id minLength: 1 maxLength: 36 example: R202501080950209789 Creditor-Partner-User-Id: name: creditor_partner_user_id in: query description: The unique creditor identifier of your system. schema: type: string title: creditor_partner_user_id minLength: 1 maxLength: 50 example: P298UI839KADY381 Event-Type: name: Event-Type in: header required: true description: >- Type of event (e.g., CERTIFICATION, WALLET_ACTIVATION, LINK_ACCOUNT, PAYMENT, INBOUND, RFI). schema: type: string title: event-type minLength: 1 maxLength: 64 example: Webhook Event-Name: name: Event-Name in: header description: Name of event (e.g., PAYOUT, PAYIN). schema: type: string title: event-name minLength: 1 maxLength: 64 example: Payout Currency-Code: name: currency_code in: query required: false description: Query the balance for a specific currency code. schema: type: string title: currency_code pattern: ^[A-Z]{3}$ example: USD Partner-User-Id: name: partner_user_id in: query required: true description: The unique seller identifier of your system. schema: type: string title: partner_user_id minLength: 1 maxLength: 50 example: PartnerUserID1234 Limit: name: limit in: query required: false description: Number of results per page (default- 50). schema: type: integer title: limit minimum: 1 maximum: 100 default: 50 Page-No: name: page_no in: query required: false description: Page number (default- 1). schema: type: integer title: page_no minimum: 1 maximum: 5000 default: 1 Uetr: name: uetr required: false in: query description: The unique payment identifier assigned during payment initiation. schema: type: string title: uetr minLength: 1 maxLength: 36 End-To-End-Id: name: end_to_end_id in: query required: false description: >- The unique payment identifier from your system. If the request is for payment to wallet, this field should contain maximum 16 character. schema: type: string title: end_to_end_id minLength: 1 maxLength: 35 From-Date-Time: name: from_date_time in: query required: false description: >- The start date for the requested period. Pattern: YYYY-MM-DDTHH:mm:ssZ. When from_date_time is used to_date_time is required and the supported range should be 1 year. schema: type: string title: from_date_time format: date-time example: '2024-03-17T10:30:00Z' To-Date-Time: name: to_date_time in: query required: false description: 'The end date for the requested period. Pattern: YYYY-MM-DDTHH:mm:ssZ' schema: type: string title: to_date_time format: date-time example: '2024-03-17T10:30:00Z' From-Date: name: from_date in: query required: false description: 'The start date for the requested period. Pattern: YYYY-MM-DD' schema: type: string title: from_date format: date example: '2024-03-17' To-Date: name: to_date in: query required: false description: 'The end date for the requested period. Pattern: YYYY-MM-DD' schema: type: string title: to_date format: date example: '2024-03-17' Payment-Type: name: payment_type in: query required: false description: 'Transaction type filter. Supported values: INBOUND, PAYOUT.' schema: type: array title: payment_type items: type: string enum: - INBOUND - PAYOUT - WITHDRAW Reporting-Status: name: status in: query required: false description: 'Transaction status filter. Supported values: PENDING, SUCCESS, REJECTED.' schema: type: array title: status items: type: string enum: - PENDING - SUCCESS - REJECTED Rfi-Id: name: rfi_id in: query required: false description: RFI unique id. schema: type: string title: rfi_id minLength: 1 maxLength: 128 Type: name: type in: query required: false description: List of RFI types. Currently supports KYC, RECIPIENT. schema: type: string title: type minLength: 1 maxLength: 64 Rfi-Status: name: status in: query required: false description: List of RFI status values to filter by. schema: type: string title: status minLength: 1 maxLength: 64 Operation: name: Operation in: header required: true description: Operation to indicate which functionality to be invoked. schema: type: string title: Operation enum: - SAVE - SUBMIT example: SAVE Wallet-Payment: name: Wallet-Payment in: header required: true description: Indicates whether this is a wallet payment. Y or N. schema: type: string title: Wallet-Payment enum: - 'Y' - 'N' example: 'N' schemas: Gateway-Error-Response: type: object title: GatewayErrorResponse required: - httpCode - httpMessage - moreInformation properties: httpCode: type: string maxLength: 3 description: Numeric HTTP Staus code title: httpCode httpMessage: type: string maxLength: 128 description: HTTP error message title: httpMessage example: Bad Request moreInformation: type: string maxLength: 128 description: HTTP error message title: moreInformation example: please provide valid value for request Service-Error-Response: title: ServiceErrorResponse type: object required: - ref_id - error_details properties: ref_id: type: string maxLength: 120 description: Unique ID for the Transaction title: ref_id example: 444d0f3f-4x55-7g99-8b2c-0cf2a921a5ab error_details: type: array description: List of error details title: error_details items: $ref: '#/components/schemas/Error-Detail' Error-Detail: type: object title: ErrorDetail properties: issue: type: string minLength: 1 maxLength: 200 description: more details about the issue title: issue example: property emailAddress is mandatory and it cannot be empty action: type: string maxLength: 350 description: corrective action to be taken to resolve above issue title: action example: please provide valid value for property emailAddress code: type: string minLength: 1 maxLength: 64 description: unique code representing the issue title: code example: VC00010 Merchant-Onboarding-Request: title: MerchantOnboardingRequest description: Request parameters for Merchant Onboarding Request. allOf: - $ref: '#/components/schemas/Common-Merchant-Onboarding-Request' - type: object required: - partner_user_id properties: partner_user_id: $ref: '#/components/schemas/Partner-User-Id' Get-Merchant-Onboarding: title: GetMerchantOnboarding description: Response for Get Merchant Onboarding. allOf: - $ref: '#/components/schemas/Common-Merchant-Onboarding-Request' - type: object required: - merchant_id properties: merchant_id: $ref: '#/components/schemas/Merchant-Id' Common-Merchant-Onboarding-Request: title: CommonMerchantOnboardingRequest description: Request parameters for Merchant Onboarding Request. type: object required: - contact_number - contact_prefix - email properties: contact_number: type: string description: Contact number of the merchant. title: contact number minLength: 1 maxLength: 32 example: '9234567890' contact_prefix: type: string description: Country code of the contact number. title: contact_prefix minLength: 1 maxLength: 32 example: '+91' email: type: string description: >- The email address of the merchant. It should always be in lower case. title: email minLength: 1 maxLength: 64 example: abc@yahoo.com Merchant-Onboarding-Response: title: MerchantOnboardingResponse description: Response parameters for Merchant Onboarding Response. type: object properties: merchant_id: $ref: '#/components/schemas/Merchant-Id' status_details: $ref: '#/components/schemas/Status-Details' Status-Details: title: StatusDetails description: Status Details. type: object properties: status: $ref: '#/components/schemas/Status' message: $ref: '#/components/schemas/Message' File-Upload-Response: title: FileUploadResponse description: Response parameters for file upload. type: object properties: file_id: $ref: '#/components/schemas/File-Id' created_time: $ref: '#/components/schemas/Created-Time' status_details: $ref: '#/components/schemas/Status-Details' File-Download-Response: title: FileDownloadResponse type: array description: Response for file download. items: $ref: '#/components/schemas/File-Download' File-Download: title: FileDownload type: object description: File download details. properties: file_id: $ref: '#/components/schemas/File-Id' file_download_link: type: string title: file_download_link description: >- File link for downloading the file. The link is valid for 15 minutes and can be used only once. minLength: 1 maxLength: 256 example: https://pingpongx.com/ File-Id: type: string description: Unique identifier for the document uploaded. title: file_id minLength: 1 maxLength: 128 example: '112213' Created-Time: type: string format: date-time description: Date and time of the file created. Pattern YYYY-MM-DDTHH:mm:ssZ title: created_time example: '2026-01-06T10:56:25Z' Merchant-Id: type: string description: >- Unique identifier generated by Citi for each seller. Seller to use this id for the further functional calls. title: merchant_id minLength: 1 maxLength: 36 example: ec689822-9864-4c4d-9d68-222467627901 Partner-User-Id: type: string description: Partner user identifier for seller from your system. title: partner_user_id minLength: 1 maxLength: 50 example: '1323436' Status: type: string description: Status of the request. title: status minLength: 1 maxLength: 64 Message: type: string description: Description of the status. title: message minLength: 1 maxLength: 500 example: Request is in-progress Business-Address: title: BusinessAddress type: object description: Address information for company. properties: street_name: type: string title: street_name minLength: 1 maxLength: 200 description: Street name. Required for CHINA and HONGKONG. example: Schillerstrasse 23 postal_code: type: string title: postal_code minLength: 1 maxLength: 16 description: Postal code or ZIP code. Required for CHINA and HONGKONG. example: '999077' city: type: string title: city minLength: 1 maxLength: 200 description: City name. Required for CHINA and HONGKONG. example: Ras Al Khaimah district: type: string title: district minLength: 1 maxLength: 200 description: District name. Required for CHINA and HONGKONG. example: district1111 state: type: string title: state minLength: 1 maxLength: 200 description: State or province name. Required for CHINA and HONGKONG. example: Ras al Khaymah Document: title: Document type: object description: >- Document information for KYC validation including document type, sub-type, and file reference. required: - type properties: type: type: string title: type description: >- Type of identity document (ID).
certificate_of_registration is applicable for CHINA.
certificate_of_incorporation and business_registration are applicable for HONGKONG. enum: - CERTIFICATE_OF_REGISTRATION - CERTIFICATE_OF_INCORPORATION - BUSINESS_REGISTRATION - SHARE_STRUCTURE - COMPANY_CONSTITUTION_OR_ANNUAL_REPORT - ARTICLE_OF_ASSOCIATION - UBO_DECLARATION - PARTNERSHIP_MINUTES_OF_MEETING - PARTNERSHIP_DEED - CERTIFICATE_OF_INCUMBENCY - INDONESIA_MINISTRY_OFFICIAL_APPROVAL_PROOF - OFFICE_PHOTO - PROOF_OF_ADDRESS - BANK_ACCOUNT_PROOF - BUSINESS_URL_OWNERSHIP example: CERTIFICATE_OF_REGISTRATION sub_type: type: string title: sub_type description: Applicable only if the type is certificate_of_registration. enum: - ACRA - GST - MSME - CERTIFICATE_OF_REGISTRATION example: ACRA number: type: string title: number minLength: 1 maxLength: 128 description: >- Document ID number.
required if type is certificate_of_registration for CHINA.
required if type are certificate_of_incorporation and business_registration for HONGKONG. example: DE123456789 file_id: $ref: '#/components/schemas/File-Id' Person-Document: title: PersonDocument type: object description: Document information for business person KYC validation. required: - type - sub_type properties: type: type: string title: type description: >- Type of identity document (ID). Provide details for one primary identity document (CHINESE_RESIDENT_IDENTITY_CARD, NATIONAL_OR_STATE_ID, PASSPORT, DRIVERS_LICENSE, RESIDENCE_PERMIT, TAX_ID, PROOF_OF_AGE_CARD, MY_NUMBER_CARD, MAINLAND_TRAVEL_PERMIT), optionally supplemented by AUTHORISED_LETTER, PROOF_OF_ADDRESS, or HAND_HOLD_PHOTO if required.
AUTHORISED_LETTER is required if the role is AUTHORISED_PERSON
NATIONAL_OR_STATE_ID, PASSPORT, RESIDENCE_PERMIT, MAINLAND_TRAVEL_PERMIT are applicable for CHINA.
NATIONAL_OR_STATE_ID, PASSPORT, RESIDENCE_PERMIT, CHINESE_RESIDENT_IDENTITY_CARD, MAINLAND_TRAVEL_PERMIT are applicable for HONGHONG. enum: - CHINESE_RESIDENT_IDENTITY_CARD - NATIONAL_OR_STATE_ID - PASSPORT - DRIVERS_LICENSE - RESIDENCE_PERMIT - TAX_ID - PROOF_OF_AGE_CARD - MY_NUMBER_CARD - MAINLAND_TRAVEL_PERMIT - AUTHORISED_LETTER - PROOF_OF_ADDRESS - HAND_HOLD_PHOTO example: NATIONAL_OR_STATE_ID sub_type: type: string title: sub_type description: >- Applicable for all id type other than PASSPORT. Front and Back both sub_type is applicable for CN and HK. When BACK is used, number, expiry_date, issue_date, issuing_authority are not required. enum: - FRONT - BACK example: FRONT number: type: string title: number minLength: 1 maxLength: 128 description: Document ID number. Required for CHINA and HONGKONG. example: ID123456789 expiry_date: allOf: - $ref: '#/components/schemas/Common-Date' title: expiry_date description: >- The expiry date of the ID document; format yyyy-mm-dd. Fill in 9999-12-31 if there is no expiry date. Required for CHINA and HONGKONG. issue_date: allOf: - $ref: '#/components/schemas/Common-Date' title: issue_date description: >- Issuing date of the ID document; format yyyy-mm-dd. Required for CHINA and HONGKONG. issuing_authority: type: string title: issuing_authority minLength: 1 maxLength: 2048 description: >- Issuing authority of merchant's identity document. Required for CHINA and HONGKONG. example: Government of China file_id: $ref: '#/components/schemas/File-Id' Business-Person-Address: title: BusinessPersonAddress description: Business person address information. allOf: - $ref: '#/components/schemas/Business-Address' - type: object title: Business-Person-Address properties: country_code: allOf: - $ref: '#/components/schemas/Country-Code' title: country_code description: Country code. Required for CHINA and HONGKONG. Country-Code: type: string title: country_code pattern: ^[A-Z]{2,2}$ description: Country code. example: CN Common-Date: type: string title: date format: date description: Date in ISO 8601 (YYYY-MM-DD). example: '1975-03-07' Birth-Details: title: BirthDetails type: object description: Birth information of the business person. properties: date: allOf: - $ref: '#/components/schemas/Common-Date' title: date description: ISO 8601 (YYYY-MM-DD), birth_date is required for CN and HK. country_code: allOf: - $ref: '#/components/schemas/Country-Code' title: country_code description: Country code. state: type: string title: state minLength: 1 maxLength: 2048 description: State (province of birth). example: beijing Personal-Details: title: Personal-Details type: object description: This section contains the name details. properties: first_name: type: string title: first_name minLength: 1 maxLength: 64 description: Business person's first name in English. Required for CN and HK. example: Hongbo first_name_in_local_language: type: string title: first_name_in_local_language minLength: 1 maxLength: 64 description: >- Business person's first name in local language. Required for CN and HK. example: first name middle_name: type: string title: middle_name minLength: 1 maxLength: 64 description: Business person's middle name in English. Optional for CN and HK. example: s middle_name_in_local_language: type: string title: middle_name_in_local_language minLength: 1 maxLength: 64 description: >- Business person's middle name in local language. Optional for CN and HK. example: middle name last_name: type: string title: last_name minLength: 1 maxLength: 64 description: Business person's last name in English. Required for CN and HK. example: Lin last_name_in_local_language: type: string title: last_name_in_local_language minLength: 1 maxLength: 64 description: >- Business person's full name in local language. Required for CN and HK. example: last name Business-Person: title: BusinessPerson description: Business person details for KYC certification. allOf: - $ref: '#/components/schemas/Personal-Details' - type: object properties: role: type: string title: role description: >- Role of business person. Required for both CHINA and HONGKONG.
UBO, DIRECTOR_CONTROL_PERSON_OR_LEGAL_REP, AGENT_OR_AUTHORISED_PERSON are applicable for CHINA.
UBO, DIRECTOR_CONTROL_PERSON_OR_LEGAL_REP, AGENT_OR_AUTHORISED_PERSON are applicable for HONGKONG.
For the limitation on the number of business persons-
UBO - 4 maximum across all regions (as UBO is defined as shareholding above 25%).
Legal rep/Director - 1 for CN (only one legal rep per CN law) and up to 25 directors for HK.
Agent - 1, as there can only be 1 agent. enum: - OWNER_OR_OPERATOR - PARTNER - UBO - DIRECTOR_CONTROL_PERSON_OR_LEGAL_REP - AGENT_OR_AUTHORISED_PERSON example: AGENT_OR_AUTHORISED_PERSON alias: type: string title: alias minLength: 1 maxLength: 2048 description: Business person's alias name. example: Hongbo nationality: type: string title: nationality description: Business person's nationality. Required for CHINA and HONGKONG. example: CN pattern: ^[A-Z]{2,2}$ gender: type: string title: gender description: Business person's gender. enum: - MALE - FEMALE example: MALE birth_details: $ref: '#/components/schemas/Birth-Details' address: $ref: '#/components/schemas/Business-Person-Address' tax_id_number: type: string title: tax_id_number minLength: 1 maxLength: 128 description: Tax id number. example: tax123456 business_title: type: string title: business_title minLength: 1 maxLength: 2048 description: Business title. example: Director documents: type: array description: List of documents title: documents items: $ref: '#/components/schemas/Person-Document' Business: title: Business type: object description: Detailed information of the business for certification. required: - name properties: name: allOf: - $ref: '#/components/schemas/Name' - description: >- The full legal name of the business in English. Required for CN and HK. example: payment service provider name_in_local_language: type: string title: name_in_local_language minLength: 1 maxLength: 128 description: >- The full legal name of the business in the local language. Required for CN and HK. example: payment service provider establishment_date: allOf: - $ref: '#/components/schemas/Common-Date' title: establishment_date description: Company establishment date. Required for CN and HK. license_expiry_date: allOf: - $ref: '#/components/schemas/Common-Date' title: license_expiry_date description: >- Expiry date of company license; format yyyy-mm-dd. Fill in 9999-12-31 for a long-term license. Required for CN. For HK, this is expiry date of business registration. address: $ref: '#/components/schemas/Business-Address' products_and_services_category: type: string title: products_and_services_category description: Products and services category. Required for CN and HK. example: KC02001008 minLength: 1 maxLength: 20 tax_id_type: type: string title: tax_id_type description: Tax id type. enum: - EIN - SSN - VAT - TIN - UTR example: VAT tax_id_number: type: string title: tax_id_number minLength: 1 maxLength: 128 description: Tax id number. example: tax_id_number1111 account_usage: type: array title: account_usage description: List of account usage. Required for CN and HK. items: $ref: '#/components/schemas/Account-Usage' minItems: 1 maxItems: 25 description: type: string title: description minLength: 1 maxLength: 2048 description: >- Description of the business. This is one of the three ways of proving the business. example: Selling products or purchasing raw materials on online platforms website: type: string title: website minLength: 1 maxLength: 2048 description: Website URL. This is one of the three ways of proving the business. example: http://www.company.cn business_proof_file_id: allOf: - $ref: '#/components/schemas/File-Id' title: business_proof_file_id description: File ID for a screenshot of the business website/dashboards. example: N1234567891011121314151622 documents: type: array title: documents description: List of documents. items: $ref: '#/components/schemas/Document' business_persons: type: array title: business_persons description: List of business person. items: $ref: '#/components/schemas/Business-Person' Account-Usage: type: string title: account_usage description: >- Description of merchant's business purpose of using PSP account. Required for CN and HK. example: ONLINE_MARKETPLACE_TRADING Certification-Request: title: CertificationRequest description: >- Request body for submitting certification information for KYC verification. allOf: - $ref: '#/components/schemas/Certification-Common-Details' - type: object title: Certification-Request required: - country_code - merchant_ack - business Certification-Common-Details: title: CertificationCommonDetails type: object description: Certification details. properties: country_code: allOf: - $ref: '#/components/schemas/Country-Code' title: country_code description: Country code. merchant_ack: type: string title: merchant_ack description: >- Has the merchant signed the payment service provider service terms? YES or NO. enum: - 'YES' - 'NO' example: 'YES' business: $ref: '#/components/schemas/Business' Webhook-Certification: title: WebhookCertification description: Notification for certification status updates. allOf: - $ref: '#/components/schemas/Common-Error-Response' - type: object properties: business_name: type: string title: business_name minLength: 1 maxLength: 256 description: Business name in English. example: business name business_name_in_local_language: type: string title: business_name_in_local_language minLength: 1 maxLength: 64 description: Business name in local language. example: business name in local Get-Certification-Response: title: GetCertificationResponse description: >- Response body for retrieving certification details including KYC status and business information. allOf: - $ref: '#/components/schemas/Certification-Common-Details' - type: object title: Get-Certification-Response properties: status: allOf: - $ref: '#/components/schemas/Status' title: status description: >- The status of the certification. Allowed values PENDING_SAVED, PENDING_SUBMITTED, APPROVED, DECLINED, RFI_PENDING. message: type: string title: message minLength: 1 maxLength: 500 description: Description of certification status. example: KYC approved merchant_type: $ref: '#/components/schemas/Merchant-Type' product_code: type: string title: product_code description: Product code. Currently supports PAYMENT_CORE and ACQ_ONLINE. minLength: 1 maxLength: 15 example: PAYMENT_CORE Wallet-Activation-Request: title: WalletActivationRequest type: object description: Notification for wallet activation status update. required: - currency_code - bank_country_code properties: currency_code: allOf: - $ref: '#/components/schemas/Currency-Code' title: currency_code description: The currency code for the virtual account. example: USD bank_country_code: allOf: - $ref: '#/components/schemas/Country-Code' title: bank_country_code description: The country code of the bank issuing the virtual account. Sync-Response: title: SyncResponse type: object description: Acknowledgement. properties: status_details: $ref: '#/components/schemas/Status-Details' Virtual-Account: title: VirtualAccount type: object description: This field contains the detailed information of account. properties: type: type: string title: type description: Account type. enum: - SAVINGS - CURRENT - CHECKING example: CHECKING iban: type: string title: iban description: EU international bank account number. minLength: 1 maxLength: 32 example: SE1498203030437006071356 holder_name: type: string title: holder_name description: >- Account holder's name. Normally equal to your account name. Note that some banks may return payment service provider in this field. minLength: 1 maxLength: 256 example: Carol Parisian currency_code: allOf: - $ref: '#/components/schemas/Currency-Code' title: currency_code description: Account currency code. example: HNL Bank: title: Bank type: object description: This field contains the detailed information of bank. properties: name: allOf: - $ref: '#/components/schemas/Name' - description: Bank name. minLength: 1 maxLength: 255 example: CITI Bank HongKong Branch code: type: string title: code description: Domestic bank code in the bank_location. minLength: 1 maxLength: 32 example: '37' branch_number: type: string title: branch_number description: Domestic branch code/ associate bank number in the bank_location. minLength: 1 maxLength: 32 example: '690' city: type: string title: city description: The city where the bank is located. minLength: 1 maxLength: 128 example: South Devyn address_line: type: string title: address_line description: The bank's detailed address. minLength: 1 maxLength: 256 example: Apt. 883 postal_code: type: string title: postal_code description: Bank's postal or ZIP code. minLength: 1 maxLength: 16 example: '605826' country_code: allOf: - $ref: '#/components/schemas/Country-Code' title: country_code description: Country code. routing_number: type: string title: routing_number description: North American bank code. minLength: 1 maxLength: 64 example: '687869237' swift_code: type: string title: swift_code description: SWIFT code. minLength: 1 maxLength: 64 example: BETFSJGNJ8F sort_code: type: string title: sort_code description: UK bank sort code (6 digits). minLength: 1 maxLength: 32 example: '430391' Webhook-Wallet-Activation: title: WebhookWalletActivation description: Wallet activation notification for the status update. allOf: - $ref: '#/components/schemas/Wallet-Activation' - $ref: '#/components/schemas/Common-Error-Response' - type: object title: Webhook-Wallet-Activation Webhook-Error-Response: title: WebhookErrorResponse description: Details of error in the request. allOf: - $ref: '#/components/schemas/Common-Error-Response' - type: object properties: error_details: type: array description: List of error details title: error_details items: $ref: '#/components/schemas/Error-Detail' Common-Error-Response: title: CommonErrorResponse description: Details of error in the request. type: object properties: merchant_id: $ref: '#/components/schemas/Merchant-Id' status: allOf: - $ref: '#/components/schemas/Status' description: >- Status description.
Certification Webhook - Allowed values are APPROVED, DECLINED, RFI_PENDING.
Wallet Activation Webhook - Allowed values are AVAILABLE - account is available to be used; DECLINED - account application rejected; SUSPENDED - account is frozen; CLOSED - account is no longer available.
Link Account Webhook - Allowed values are AVAILABLE and DECLINED
Payment Webhook - Allowed values are SUCCESS, REJECTED.
Inbound Webhook - Allowed values is SUCCESS.
Transaction Reporting - PENDING, SUCCESS, REJECTED. message: $ref: '#/components/schemas/Message' Virtual-Account-Id: type: string title: Virtual-Account-Id description: Account ID for a specific virtual account. minLength: 1 maxLength: 36 example: R200801012359590001 Wallet-Activation: title: WalletActivation type: object description: >- Response body containing wallet activation details and virtual account information. properties: virtual_account_id: $ref: '#/components/schemas/Virtual-Account-Id' virtual_account_number: type: string title: virtual_account_number description: Bank account number. minLength: 1 maxLength: 64 example: '38879371' account: $ref: '#/components/schemas/Virtual-Account' bank: $ref: '#/components/schemas/Bank' Get-Wallet-Activation: title: GetWalletActivation description: >- Response body containing wallet activation details and virtual account information. allOf: - $ref: '#/components/schemas/Wallet-Activation' - type: object properties: status: allOf: - $ref: '#/components/schemas/Status' title: status description: >- The status of wallet activation. PENDING - account is pending; AVAILABLE - account is available to be used; DECLINED - account application rejected; SUSPENDED - account is frozen; CLOSED - account is no longer available. message: $ref: '#/components/schemas/Message' Get-Wallet-Activation-Response: title: GetWalletActivationResponse description: Response body containing wallet and virtual account information. type: array items: $ref: '#/components/schemas/Get-Wallet-Activation' Get-Wallet-Balances: title: GetWalletBalances type: array description: Response body containing wallet balance information. items: $ref: '#/components/schemas/Wallet-Balance-Item' Wallet-Balance-Item: title: WalletBalanceItem type: object description: Balance information for a single account. properties: virtual_account_id: $ref: '#/components/schemas/Virtual-Account-Id' account_type: type: string title: account_type description: Either BALANCE_ACCOUNT or TEMP_ACCOUNT. enum: - BALANCE_ACCOUNT - TEMP_ACCOUNT example: BALANCE_ACCOUNT currency_code: allOf: - $ref: '#/components/schemas/Currency-Code' title: currency_code description: Currency of the balance. example: USD available_amount: allOf: - $ref: '#/components/schemas/Amount' title: available_amount description: Balance of the account and currency. Amount: type: number title: amount description: Amount in currency. minimum: 0.01 maximum: 10000000000000 example: 1000 Currency-Code: type: string title: currency_code description: The currency code in the transaction. pattern: ^[A-Z]{3}$ example: USD Link-Account-Request: title: LinkAccountRequest type: object description: Request body for linking an external account for payments. required: - creditor_account - creditor_bank - creditor properties: creditor_account: $ref: '#/components/schemas/Creditor-Account' creditor_bank: $ref: '#/components/schemas/Creditor-Bank' creditor: $ref: '#/components/schemas/Creditor' file_id: $ref: '#/components/schemas/File-Id' Creditor-Id: type: string title: creditor_id description: The unique creditor identifier assigned by payment service provider. minLength: 1 maxLength: 36 example: R202501080950209789 Get-Link-Account-Response: title: GetLinkAccountResponse description: Response body containing linked account details. type: array items: $ref: '#/components/schemas/Creditor-Detail' Creditor-Detail: title: CreditorDetail type: object description: Response body containing creditor's details. properties: creditor_id: $ref: '#/components/schemas/Creditor-Id' status: allOf: - $ref: '#/components/schemas/Status' title: status description: The status of creditor validation. PENDING; AVAILABLE; DECLINED message: $ref: '#/components/schemas/Message' created_time: $ref: '#/components/schemas/Created-Time' creditor_account: $ref: '#/components/schemas/Get-Creditor-Account' creditor_bank: $ref: '#/components/schemas/Get-Creditor-Bank' creditor: $ref: '#/components/schemas/Get-Creditor' file_id: $ref: '#/components/schemas/File-Id' Webhook-Link-Account: title: WebhookLinkAccount description: Notification for Link account for the status update. allOf: - $ref: '#/components/schemas/Common-Error-Response' - type: object title: Webhook-Link-Account properties: creditor_id: $ref: '#/components/schemas/Creditor-Id' Get-Creditor-Account: title: GetCreditorAccount description: This section contains the details information of bank. allOf: - $ref: '#/components/schemas/Creditor-Account-Details' - type: object title: Get-Creditor-Account properties: type: type: string title: type description: Type of the bank. minLength: 1 maxLength: 64 example: CHECKING Creditor-Account: title: CreditorAccount description: Creditor Account. allOf: - $ref: '#/components/schemas/Creditor-Account-Details' - type: object title: Creditor-Account' required: - holder_type - number - name - currency_code Creditor-Account-Details: title: CreditorAccountDetails type: object description: This section contains the details information of account. properties: holder_type: type: string title: holder_type description: The type of account holder. enum: - PERSONAL - COMPANY example: PERSONAL holder_contact_number: type: string title: holder_contact_number description: The full contact number, including the country code if mobile. minLength: 1 maxLength: 32 example: 007 3700 7457 number: type: string title: number description: Unique account number. minLength: 1 maxLength: 64 example: '703912345678' name: allOf: - $ref: '#/components/schemas/Name' - description: Name of the account. example: SHASHANK VIJAYSHANKAR TIWARI currency_code: allOf: - $ref: '#/components/schemas/Currency-Code' title: currency_code description: Currency of the account (3-character ISO code). example: INR iban: type: string title: iban description: >- International Bank Account Number (IBAN). IBAN is not applicable for CN and HK. minLength: 1 maxLength: 32 example: HU58711204120061837086422231 document_type: type: string title: document_type description: >- Type of identity document (ID). One of the following 00 Chinese national ID card 01 Chinese residence permit 02 Passport 03 ID card of Hong Kong, Macao or Taiwan 04 Residence permit of Hong Kong, Macao and Taiwan 05 Hong Kong and Macao travel permit 06 Other national ID card 07 Other residence permit enum: - CHINESE_NATIONAL_ID_CARD - CHINESE_RESIDENCE_PERMIT - PASSPORT - ID_CARD_OF_HONGKONG_MACAO_OR_TAIWAN - RESIDENCE_PERMIT_OF_HONGKONG_MACAO_AND_TAIWAN - HONGKONG_AND_MACAO_TRAVEL_PERMIT - OTHER_NATIONAL_ID_CARD - OTHER_RESIDENCE_PERMIT example: CHINESE_RESIDENCE_PERMIT document_number: type: string title: document_number description: Account holder's ID number. minLength: 1 maxLength: 64 example: CS8899966 Get-Creditor-Bank: title: GetCreditorBank description: This section contains the details information of bank. allOf: - $ref: '#/components/schemas/Creditor-Bank-Details' - type: object title: Get-Creditor-Bank properties: type: type: string title: type description: Type of the bank. minLength: 1 maxLength: 64 example: RECIPIENT BANK address: $ref: '#/components/schemas/Address-Details' Creditor-Bank: title: CreditorBank description: Creditor Bank. allOf: - $ref: '#/components/schemas/Creditor-Bank-Details' - type: object title: Creditor-Bank required: - name - address properties: address: $ref: '#/components/schemas/Address' Creditor-Bank-Details: title: CreditorBankDetails type: object description: This section contains the details information of bank. properties: name: allOf: - $ref: '#/components/schemas/Name' - description: Name of the bank. minLength: 1 maxLength: 256 example: BANK OF BARODA code: type: string title: code description: Bank code. minLength: 1 maxLength: 32 example: '6' branch_name: type: string title: branch_name description: Branch name where the account is held. minLength: 1 maxLength: 128 example: THANE BRANCH branch_number: type: string title: branch_number description: Branch code where the account is held. minLength: 1 maxLength: 32 example: '391' swift_code: type: string title: swift_code description: SWIFT BIC (Bank Identifier Code). minLength: 1 maxLength: 64 example: CITIINHFXXX routing_number: type: string title: routing_number description: Routing code. minLength: 1 maxLength: 64 example: '6391' ifsc_code: type: string title: ifsc_code description: Indian Financial System Code (IFSC). minLength: 1 maxLength: 64 example: HDFC0000001 sort_code: type: string title: sort_code description: Sort code. minLength: 1 maxLength: 32 example: '87' Address: title: Address description: Address/ allOf: - $ref: '#/components/schemas/Address-Details' - type: object title: Address-Details required: - country_code - city - state Address-Details: title: AddressDetails type: object description: Address information for the bank. properties: city: type: string title: city description: City. minLength: 1 maxLength: 128 example: THANE state: type: string title: state description: State. minLength: 1 maxLength: 128 example: MAHARASHTRA country_code: allOf: - $ref: '#/components/schemas/Country-Code' title: country_code description: Country code. address_line: type: string title: address_line description: Detailed address of the bank. minLength: 1 maxLength: 256 example: SUMAN HEIGHTS LODHA HERITAGR NAVNEET NAGAR MAHARASHTRA THANE INDIA Creditor: title: Creditor description: This section contains the details information of creditor. allOf: - $ref: '#/components/schemas/Common-Creditor' - type: object title: Common-Creditor required: - type - name - address properties: creditor_partner_user_id: $ref: '#/components/schemas/Partner-User-Id' address: $ref: '#/components/schemas/Creditor-Address' Get-Creditor: title: GetCreditor description: This section contains the details information of creditor. allOf: - $ref: '#/components/schemas/Common-Creditor' - type: object title: Get-Creditor properties: address: $ref: '#/components/schemas/Creditor-Address-Details' Common-Creditor: title: CommonCreditor type: object description: This section contains the details information of creditor. properties: type: type: string title: type description: Type of creditor. enum: - '00' example: '00' name: allOf: - $ref: '#/components/schemas/Name' - description: Name of the account. example: SHASHANK VIJAYSHANKAR TIWARI contact_number: type: string title: contact_number description: Full contact number. minLength: 1 maxLength: 32 example: '9876543210' contact_prefix: type: string title: contact_prefix description: International telephone area code. minLength: 1 maxLength: 32 example: '91' email: type: string title: email description: Email address of the merchant. minLength: 1 maxLength: 32 example: abc@pp.com Partial-Address: title: PartialAddress description: Address information for the creditor. type: object properties: street_name: type: string title: street_name description: Street name. minLength: 1 maxLength: 128 example: ROYAL STREET postal_code: type: string title: postal_code description: Postal code. minLength: 1 maxLength: 16 example: '5110' Creditor-Address: title: CreditorAddress description: Address information for the creditor. allOf: - $ref: '#/components/schemas/Address-Details' - $ref: '#/components/schemas/Partial-Address' - type: object title: Creditor-Address required: - country_code - city - state Creditor-Address-Details: title: CreditorAddressDetails description: Address information for the creditor. allOf: - $ref: '#/components/schemas/Address-Details' - $ref: '#/components/schemas/Partial-Address' - type: object title: Creditor-Address-Details Multiple-Currency-Amount: title: FxQuery type: object properties: buy_currency_code: allOf: - $ref: '#/components/schemas/Currency-Code' title: buy_currency_code description: The currency that the client is buying. example: CNH buy_amount: allOf: - $ref: '#/components/schemas/Amount' title: buy_amount description: >- The amount of buy_currency for the transaction. (You ONLY need to define one amount, either buy_amount or sell_amount in a request.) example: 100.11 sell_currency_code: allOf: - $ref: '#/components/schemas/Currency-Code' title: sell_currency_code description: The currency that the client is selling. example: USD sell_amount: allOf: - $ref: '#/components/schemas/Amount' title: sell_amount description: >- The amount of sell_currency for the transaction. (You ONLY need to define one amount, either buy_amount or sell_amount in a request.) example: 80.1 Fx-Query-Request: title: FxQueryRequest allOf: - $ref: '#/components/schemas/Multiple-Currency-Amount' - type: object title: Fx-Query-Request required: - buy_currency_code - sell_currency_code - reference_id - seller_markup properties: seller_markup: type: string title: seller_markup description: Seller markup consists of country code + markup. example: CN-150 reference_id: $ref: '#/components/schemas/Reference-Id' Reference-Id: type: string title: reference_id description: Unique identifier for this request from your system. example: '12456' minLength: 1 maxLength: 120 Fx-Rate-Id: type: string title: fx_rate_id description: >- When you request a guaranteed quote of Instant FX and Reserved FX, the Citi will return a `fx_rate_id`, which is the unique ID only for guaranteed `fx_indi_rate. fx_rate_id is mandatory for other than USD to USD transfer. minLength: 1 maxLength: 64 example: '16098876465273400000' Fx-Rate: type: number title: fx_rate description: >- The indicative FX rate which is for reference only. The number indicates how much units of buy_currency you can get from one unit of sell_currency. Fx-Query-Response: title: FxQueryResponse allOf: - $ref: '#/components/schemas/Multiple-Currency-Amount' - type: object title: Fx-Query-Response required: - buy_currency_code - buy_amount - sell_currency_code - sell_amount - fx_rate - reference_id properties: fx_rate_id: $ref: '#/components/schemas/Fx-Rate-Id' fx_rate: $ref: '#/components/schemas/Fx-Rate' value_date: allOf: - $ref: '#/components/schemas/Common-Date' title: value_date description: >- Settlement date of the FX transaction (yyyy-MM-dd, not required for Instant FX transactions). expiry_time: allOf: - $ref: '#/components/schemas/Created-Time' title: expiry_time description: >- The expiration timestamp of the quote. If the transaction is not executed, the `fx_rate_id` will expire after the date and time. After the expiration timestamp, you should request new fx_rate format : YYYY-MM-DDTHH:mm:ssZ). reference_id: $ref: '#/components/schemas/Reference-Id' Payment-Request: title: PaymentRequest type: object description: >- Request body for creating a payment. Contains the payload with debtor, creditor, and transaction details. required: - payments properties: message_id: allOf: - $ref: '#/components/schemas/Message-Id' description: Unique identifier for bulk payments. Required for payment to wallet. payments: type: array title: payments items: $ref: '#/components/schemas/Payment-Details' Payment-Details: title: PaymentDetails type: object description: Payment details. required: - payment_info properties: debtor: $ref: '#/components/schemas/Payment-Debtor' payment_info: type: array title: payment_info items: $ref: '#/components/schemas/Payment-Info-Details' Partner-User-Reference: title: PartnerUserReference type: string description: Unique reference from seller for each payment. minLength: 1 maxLength: 35 example: PUR1234556567wegry Transaction-Details: title: TransactionDetails type: object description: Transaction details. allOf: - $ref: '#/components/schemas/Common-Transaction' - type: object title: Transaction-Details required: - end_to_end_id - amount - currency_code properties: partner_user_reference: $ref: '#/components/schemas/Partner-User-Reference' equivalent_currency_code: allOf: - $ref: '#/components/schemas/Currency-Code' title: equivalent_currency_code description: >- The currency you use to fund the payment.
Required for payment to external. equivalent_amount: allOf: - $ref: '#/components/schemas/Amount' title: equivalent_amount description: Amount in origin currency. fx_rate_id: allOf: - $ref: '#/components/schemas/Fx-Rate-Id' title: fx_rate_id example: '3885000000000000000' charges_type: type: string title: charges_type description: Charges type. enum: - OUR - SHAR example: SHAR purpose_code: type: string title: purpose_code minLength: 1 maxLength: 50 description: >- Payment purpose code. Required for payment to external parties. Supported values are 1001 (Physical goods), 3003 (Logistics), 3005 (Salary), 3006 (Business/ Commission), 3007 (Family support), 3009 (Rent), 3010 (Tax), 3011 (Property/management fees), 3012 (Water electricity), 3016 (Patent), 3017 (Accounting Service), 3018 (Office Expenses), 3019 (Advertising), 3021 (Transfer to Own Account), 3022 (Warehousing), 3023 (GoodsInsurance), 3024 (AttorneysFee), 3025 (StaffWelfare) example: '1001' file_id: $ref: '#/components/schemas/File-Id' payment_type: $ref: '#/components/schemas/Payment-Type' Method: title: method type: object description: This object contains the payment method and clearing network details. required: - type - method properties: type: type: string title: type description: >- Payment method. Required for payment to external and payment to wallet.
payment to wallet - LOCAL should be used.
payment to external - CROSS_BORDER. enum: - CROSS_BORDER - LOCAL example: CROSS_BORDER method: type: string title: method description: >- ACH, IP, RTGS, DFT, SEPA, BKT, CBFT.
For payment to wallet - value must be BKT
For payment to external - value should be CBFT. enum: - ACH - IP - RTGS - DFT - SEPA - BKT - CBFT example: CBFT country_code: allOf: - $ref: '#/components/schemas/Country-Code' title: country_code description: Country code of the debtor. Payment-Info-Details: title: PaymentInfoDetails type: object description: Payment Information details. required: - transaction - method properties: transaction: $ref: '#/components/schemas/Transaction-Details' creditor: $ref: '#/components/schemas/Payment-Creditor' method: $ref: '#/components/schemas/Method' Payment-Debtor: title: Debtor type: object description: Information pertaining to debtor of the payment. properties: account: $ref: '#/components/schemas/Account' country_code: allOf: - $ref: '#/components/schemas/Country-Code' title: country_code description: Country code where the fund is credited. Reporting-Debtor: title: ReportingDebtor description: Debtor details for reporting. allOf: - $ref: '#/components/schemas/Payment-Debtor' - type: object properties: name: allOf: - $ref: '#/components/schemas/Name' - description: Name of the debtor. Reporting-Creditor: title: ReportingCreditor description: Crediotr details for reporting. allOf: - $ref: '#/components/schemas/Payment-Creditor' - type: object properties: name: allOf: - $ref: '#/components/schemas/Name' - description: Name of the creditor. Name: type: string title: name minLength: 1 maxLength: 128 example: SHASHANK VIJAYSHANKAR TIWARI Payment-Creditor: title: Creditor type: object description: Information pertaining to creditor of the payment. properties: id: type: string title: id minLength: 1 maxLength: 64 description: >- Required when paying into a bank account. creditor_id is returned when you call Link Account endpoint.
Required for payment to external. example: R202501080950209789 account: $ref: '#/components/schemas/Account' Account: title: Account type: object description: Account details. properties: number: type: string title: number description: Account number. example: '456456547' branch_code: type: string title: branch_code description: Branch code which holds the account number. example: VA202501080950209789 virtual_account_id: allOf: - $ref: '#/components/schemas/Virtual-Account-Id' description: >- virtual_account_id received when you call wallet activation endpoint.
Required at creditor side when paying to wallet.
Required at debtor side for payment to external. Transaction: title: Transaction type: object description: Details of the transaction. properties: end_to_end_id: allOf: - $ref: '#/components/schemas/End-To-End-Id' description: >- Unique identifier for the payment. Required when initiating payments (payment to wallet and payment to external). error_details: type: array description: List of error details. title: error_details items: $ref: '#/components/schemas/Error-Detail' Payment-Response: title: PaymentResponse type: object description: >- Response body for payment initiation. Contains the details of the payment. properties: ref_id: type: string minLength: 1 maxLength: 120 description: Unique ID for the Transaction. title: ref_id example: 444d0f3f-4x55-7g99-8b2c-0cf2a921a5ab status: $ref: '#/components/schemas/Status' message: $ref: '#/components/schemas/Message' message_id: $ref: '#/components/schemas/Message-Id' transaction: type: array title: transaction items: $ref: '#/components/schemas/Transaction' Webhook-Payment-Request: title: WebhookPaymentRequest description: Notification for payments to update the status. allOf: - $ref: '#/components/schemas/Webhook-Error-Response' - type: object properties: message_id: $ref: '#/components/schemas/Message-Id' debtor: $ref: '#/components/schemas/Payment-Debtor' creditor: $ref: '#/components/schemas/Payment-Creditor' transaction: $ref: '#/components/schemas/Webhook-Transaction' Webhook-Transaction: title: WebhookTransaction type: object description: Transaction details. allOf: - $ref: '#/components/schemas/Common-Transaction' - type: object title: Webhook-Transaction properties: partner_user_reference: $ref: '#/components/schemas/Partner-User-Reference' uetr: $ref: '#/components/schemas/Uetr' equivalent_currency_code: allOf: - $ref: '#/components/schemas/Currency-Code' title: equivalent_currency_code description: The currency you use to fund the payment. equivalent_amount: allOf: - $ref: '#/components/schemas/Amount' title: equivalent_amount description: Amount in origin currency. charges_currency_code: allOf: - $ref: '#/components/schemas/Currency-Code' title: charges_currency_code description: Charges currency. example: CNH charges_amount: allOf: - $ref: '#/components/schemas/Amount' title: charges_amount description: Charges amount. example: 100.11 fx_rate_id: allOf: - $ref: '#/components/schemas/Fx-Rate-Id' title: fx_rate_id description: Exchange rate ID. example: '3885000000000000000' fx_rate: $ref: '#/components/schemas/Fx-Rate' created_time: $ref: '#/components/schemas/Created-Time' completed_time: $ref: '#/components/schemas/Completed-Time' Message-Id: type: string title: message_id description: >- Unique id from your system for batch. Required for Payment to Wallet (virtual_account credit). example: bulk123 minLength: 1 maxLength: 34 Get-Payment-Response: title: GetPaymentResponse type: object description: Retrieve payments details. properties: message_id: $ref: '#/components/schemas/Message-Id' payments: type: array title: payments description: A list of individual payment details. items: $ref: '#/components/schemas/Get-Payment-Response-Details' Get-Payment-Response-Details: title: GetPaymentResponseDetails type: object description: Get Payment Response Details. properties: debtor: $ref: '#/components/schemas/Payment-Debtor' creditor: $ref: '#/components/schemas/Payment-Creditor' transaction: $ref: '#/components/schemas/Get-Transaction-Detail' status: $ref: '#/components/schemas/Status' message: $ref: '#/components/schemas/Message' error_details: type: array description: List of error details. title: error_details items: $ref: '#/components/schemas/Error-Detail' Get-Transaction-Detail: title: GetTransactionDetail type: object description: Retrieve transaction details. allOf: - $ref: '#/components/schemas/Common-Transaction' - type: object title: Get-Transaction-Detail properties: partner_user_reference: $ref: '#/components/schemas/Partner-User-Reference' uetr: $ref: '#/components/schemas/Uetr' equivalent_currency_code: allOf: - $ref: '#/components/schemas/Currency-Code' title: equivalent_currency_code description: The currency you use to fund the payout. equivalent_amount: allOf: - $ref: '#/components/schemas/Amount' title: equivalent_amount description: Amount in origin currency. charges_currency_code: allOf: - $ref: '#/components/schemas/Currency-Code' title: charges_currency_code description: Charges currency code. example: CNH charges_amount: allOf: - $ref: '#/components/schemas/Amount' title: charges_amount description: Charges amount. example: 100.11 fx_rate: $ref: '#/components/schemas/Fx-Rate' payment_type: $ref: '#/components/schemas/Payment-Type' created_time: $ref: '#/components/schemas/Created-Time' completed_time: $ref: '#/components/schemas/Completed-Time' Rfi-Save-Request: title: RfiSaveRequest type: object description: Request body for responding to an RFI. required: - rfi_id - questions properties: rfi_id: $ref: '#/components/schemas/Rfi-Id' questions: type: array title: questions description: An array of questions to respond to. minItems: 1 maxItems: 100 items: $ref: '#/components/schemas/Questions-Request' Rfi-Save-Response: title: RfiSaveResponse type: object description: Response body for responding to an RFI. properties: rfi_id: $ref: '#/components/schemas/Rfi-Id' status: allOf: - $ref: '#/components/schemas/Status' title: status description: 'RFI status. Possible values: OPEN, CLOSED.' example: OPEN questions: type: array title: questions description: An array of questions to respond to. items: $ref: '#/components/schemas/Questions-Response' Rfi-Id: type: string title: rfi_id minLength: 1 maxLength: 128 description: RFI unique id. Questions-Request: title: QuestionRequest type: object description: A question with response information for RFI submission. required: - question_id - information_request properties: question_id: $ref: '#/components/schemas/Question-Id' information_request: type: array title: information_request description: The information to be responded to. minItems: 1 maxItems: 100 items: $ref: '#/components/schemas/Information-Request' Questions-Response: title: QuestionResponse type: object description: A question with response information for RFI submission. properties: question_id: $ref: '#/components/schemas/Question-Id' information_request: type: array title: information_request description: The information to be responded to. items: $ref: '#/components/schemas/Information-Request-Response' Question-Id: type: string title: question_id minLength: 1 maxLength: 64 description: The unique id for specific question. example: Q123456789 Information-Request: title: InformationRequest description: Information item that needs to be responded to in an RFI. allOf: - $ref: '#/components/schemas/Common-Information-Request' - type: object title: Information-Request required: - information_name Information-Request-Response: title: InformationRequestResponse description: Information item that needs to be responded to in an RFI. allOf: - $ref: '#/components/schemas/Common-Information-Request' - type: object title: Information-Request-Response Common-Information-Request: title: CommonInformationRequest type: object description: Information item that needs to be responded to in an RFI. properties: information_name: $ref: '#/components/schemas/Information-Name' answer: $ref: '#/components/schemas/Answer' Get-Information-Request: title: GetInformationRequest description: Information item that needs to be responded to in an RFI. allOf: - $ref: '#/components/schemas/Common-Information-Request' - type: object title: Get-Information-Request properties: information_type: $ref: '#/components/schemas/Information-Type' Information-Type: type: string title: information_type minLength: 1 maxLength: 32 description: 'Information type: text or file.' Information-Name: type: string title: information_name minLength: 1 maxLength: 64 description: Information name. example: id_doc_front Answer: type: string title: answer minLength: 1 maxLength: 2048 description: The answer for the information request. Rfi-Query-Response: type: array title: RfiQueryResponse description: The information to be responded to. items: $ref: '#/components/schemas/Rfi-Query-Item' Rfi-Query-Item: title: Rfi-Query-Item description: Response containing RFI list and details. allOf: - $ref: '#/components/schemas/Common-Rfi' - type: object properties: questions: type: array title: questions description: List of questions for the RFI. items: $ref: '#/components/schemas/Question' Common-Rfi: title: Common-Rfi type: object description: Response containing RFI list and details. properties: rfi_id: $ref: '#/components/schemas/Rfi-Id' type: type: string title: type minLength: 1 maxLength: 64 description: RFI type. Currently supports KYC, RECIPIENT. status: allOf: - $ref: '#/components/schemas/Status' title: status description: 'RFI status. Possible values: OPEN, CLOSED.' created_time: allOf: - $ref: '#/components/schemas/Created-Time' description: RFI Creation date time in ISO 8601 format. title: created_time expiry_time: allOf: - $ref: '#/components/schemas/Created-Time' description: RFI expiration time in ISO 8601 format. title: expiry_time creditor_id: allOf: - $ref: '#/components/schemas/Creditor-Id' title: creditor_id description: Recipient id (use for RECIPIENT RFI type). Question: title: Questions description: An individual RFI question. allOf: - $ref: '#/components/schemas/Common-Question' - type: object properties: information_request: type: array title: information_request description: The information that needs to be responded to. items: $ref: '#/components/schemas/Get-Information-Request' Common-Question: title: Common-Question type: object description: An individual RFI question. properties: question_id: type: string title: question_id minLength: 1 maxLength: 64 description: The unique id for specific question. example: Q123456789 description_code: type: string title: description_code minLength: 1 maxLength: 64 description: The code for question's description. description_english: type: string title: description_english minLength: 1 maxLength: 2048 description: Question description in English. description_chinese: type: string title: description_chinese minLength: 1 maxLength: 2048 description: Question description in Chinese. certification_source: $ref: '#/components/schemas/Certification-Source' Merchant-Type: type: string title: merchant_type description: Type of merchant. enum: - INDIVIDUAL - ENTERPRISE Certification-Source: title: CertificationSource description: Information related to the KYC source. allOf: - $ref: '#/components/schemas/Personal-Details' - type: object properties: role: type: string title: role description: >- Role of business person. Supported values are OWNER_OR_OPERATOR, PARTNER, UBO, DIRECTOR_CONTROL_PERSON_OR_LEGAL_REP, AGENT_OR_AUTHORISED_PERSON. example: AGENT_OR_AUTHORISED_PERSON merchant_type: $ref: '#/components/schemas/Merchant-Type' Rfi-Submit-Request: title: RfiSubmitRequest type: object description: Request body for submitting an RFI for review. required: - rfi_id properties: rfi_id: $ref: '#/components/schemas/Rfi-Id' Rfi-Submit-Response: title: RfiSubmitResponse type: object description: Response body for RFI Submit. properties: status: allOf: - $ref: '#/components/schemas/Status' title: status description: 'RFI submit status. Possible values: OPEN, CLOSED.' Pagination-Metadata: description: >-
current_page: Current page number
total_pages: Total number of pages available for this request
page_size: The number of records to display per page
has_more: Any more messages or records expected type: object title: Pagination Metadata properties: current_page: description: Current page number type: integer minimum: 1 maximum: 1000 example: 1 title: current_page total_pages: description: Total number of pages available for this request type: integer minimum: 1 maximum: 1000 example: 1 title: total_pages page_size: description: Number of records to display per page type: integer minimum: 1 maximum: 10000 example: 1 title: page_size has_more: description: Any more messages or records expected type: boolean example: true title: has_more example: current_page: 1 total_pages: 10 page_size: 100 has_more: true Uetr: type: string title: uetr description: >- This is a unique payment service provider ID assigned to all individual transactions. minLength: 1 maxLength: 36 example: '202501092053115499258' End-To-End-Id: type: string title: end_to_end_id description: >- The unique payment request ID from your system. If the request is for payment to wallet, this field should contain maximum 16 character and should be in UPPER CASE. minLength: 1 maxLength: 35 example: SM37864746 Balance: type: number title: opening_balance description: Balance. Completed-Time: type: string title: completed_on format: date-time description: The time the transaction was finished. Pattern YYYY-MM-DDTHH:mm:ssZ example: '2026-01-06T11:00:25Z' Balance-Transaction: title: Balance-Transaction type: object description: >- Transaction details for balance reporting including opening and closing balances. properties: virtual_account_id: $ref: '#/components/schemas/Virtual-Account-Id' uetr: $ref: '#/components/schemas/Uetr' end_to_end_id: $ref: '#/components/schemas/End-To-End-Id' opening_balance: allOf: - $ref: '#/components/schemas/Balance' title: opening_balance description: The balance before the transaction. example: 5000 closing_balance: allOf: - $ref: '#/components/schemas/Balance' title: closing_balance description: The balance after the transaction. example: 4000 payment_type: $ref: '#/components/schemas/Reporting-Payment-Type' created_time: allOf: - $ref: '#/components/schemas/Created-Time' title: created_on description: The creation time of the transaction. amount: allOf: - $ref: '#/components/schemas/Amount' title: amount description: The transaction amount. currency_code: allOf: - $ref: '#/components/schemas/Currency-Code' title: currency_code direction: type: string title: direction description: Whether the transaction is a debit or credit. example: debit Balance-Report-Response: title: BalanceReportResponse type: array items: $ref: '#/components/schemas/Balance-Transaction' Payment-Type: type: string title: payment_type description: >- Transaction type. WITHDRAW is applicable only if the payment is USD to CNY to China. enum: - PAYOUT - WITHDRAW example: PAYOUT Reporting-Payment-Type: type: string title: payment_type description: Transaction type. enum: - INBOUND - PAYOUT - WITHDRAW example: INBOUND Common-Transaction: title: CommonTransaction type: object description: Transaction details. properties: end_to_end_id: $ref: '#/components/schemas/End-To-End-Id' currency_code: allOf: - $ref: '#/components/schemas/Currency-Code' title: target_currency_code description: >- The currency that the creditor receives. Required for payment to wallet and payment to external. amount: allOf: - $ref: '#/components/schemas/Amount' title: target_amount description: >- Amount in target currency. Required for payment to wallet and payment to external. payment_details: type: string title: payment_details description: Reference information. minLength: 1 maxLength: 140 example: INV123 Report-Transaction: title: ReportTransaction description: Transaction details for reporting. allOf: - $ref: '#/components/schemas/Common-Error-Response' - type: object properties: debtor: $ref: '#/components/schemas/Reporting-Debtor' creditor: $ref: '#/components/schemas/Reporting-Creditor' transaction: $ref: '#/components/schemas/Report-Transaction-Detail' Report-Transaction-Detail: title: ReportTransactionDetails type: object description: Transaction details for reporting. allOf: - $ref: '#/components/schemas/Common-Transaction' - $ref: '#/components/schemas/Multiple-Currency-Amount' - type: object properties: uetr: $ref: '#/components/schemas/Uetr' fx_rate: $ref: '#/components/schemas/Fx-Rate' payment_type: $ref: '#/components/schemas/Reporting-Payment-Type' created_time: $ref: '#/components/schemas/Created-Time' completed_time: $ref: '#/components/schemas/Completed-Time' Transaction-Report-Response: type: array title: TransactionReportResponse items: $ref: '#/components/schemas/Report-Transaction' Inbound-Payment-Notification: type: object title: Inbound-Payment-Notification description: Inbound payment notification. properties: merchant_id: $ref: '#/components/schemas/Merchant-Id' debtor: $ref: '#/components/schemas/Inbound-Debtor' debtor_bank: $ref: '#/components/schemas/Debtor-Bank' creditor: $ref: '#/components/schemas/Inbound-Creditor' transaction: $ref: '#/components/schemas/Inbound-Transaction' status: allOf: - $ref: '#/components/schemas/Status' description: >- Status of the incoming payments to virtual account. Possible values: SUCCESS, REJECTED. message: $ref: '#/components/schemas/Message' inbound_type: type: string title: inbound_type description: Type of inbound review. example: INBOUND Inbound-Debtor: type: object description: This section contains detailed payor information. allOf: - $ref: '#/components/schemas/Common-Inbound' - type: object title: Inbound-Debtor properties: country_code: type: string title: country_code description: Payer's country. minLength: 1 maxLength: 128 example: CN Debtor-Bank: type: object title: Debtor-Bank description: This section contains detailed payor bank information. properties: name: allOf: - $ref: '#/components/schemas/Name' - description: Bank name of the payer. example: Citi Bank US Common-Inbound: type: object title: Inbound-Common description: This section contains Common details. properties: name: allOf: - $ref: '#/components/schemas/Name' - description: Creditor's name. example: Su Lin account_number: type: string title: account_number description: Account number of the VA receiving funds. minLength: 1 maxLength: 64 example: '78945615' address: type: string title: address description: Recipient's address. example: Schillerstrasse 23 Inbound-Creditor: type: object description: This section contains detailed payee information. allOf: - $ref: '#/components/schemas/Common-Inbound' - type: object title: Inbound-Creditor Inbound-Transaction: type: object title: Transaction description: This section contains detailed transaction information. allOf: - $ref: '#/components/schemas/Common-Transaction' - type: object title: Transaction-Details properties: uetr: $ref: '#/components/schemas/Uetr' RFI-Notification: type: object title: RFI-Notification description: Request for Information (RFI) notification. allOf: - $ref: '#/components/schemas/Common-Rfi' - type: object required: - merchant_id properties: merchant_id: $ref: '#/components/schemas/Merchant-Id' questions: type: array title: questions description: An array of RFI questions items: $ref: '#/components/schemas/RFI-Question' RFI-Question: title: RFI-Question description: >- An individual RFI question with its associated information requests and certification source. allOf: - $ref: '#/components/schemas/Common-Question' - type: object properties: information_request: type: array title: information_request description: The information need to be responded. items: $ref: '#/components/schemas/Information-Request-Webhook' Information-Request-Webhook: type: object title: Information-Request-Webhook description: Information that needs to be responded to for the RFI question. properties: information_name: $ref: '#/components/schemas/Information-Name' information_type: $ref: '#/components/schemas/Information-Type' responses: Bad-Request: description: Bad Request content: application/json: schema: title: Bad-Request-Response oneOf: - $ref: '#/components/schemas/Gateway-Error-Response' - $ref: '#/components/schemas/Service-Error-Response' examples: Bad-Request-Service-Error-Example: $ref: '#/components/examples/Bad-Request-Service-Error-Example' Bad-Request-Gateway-Error-Example: $ref: '#/components/examples/Bad-Request-Gateway-Error-Example' Unauthorized: description: Unauthorized content: application/json: schema: title: Unauthorized-Response oneOf: - $ref: '#/components/schemas/Service-Error-Response' - $ref: '#/components/schemas/Gateway-Error-Response' examples: Unauthorized-Service-Error-Example: $ref: '#/components/examples/Unauthorized-Service-Error-Example' Unauthorized-Gateway-Error-Example: $ref: '#/components/examples/Unauthorized-Gateway-Error-Example' Internal-Server-Error: description: Internal Server Error content: application/json: schema: title: Internal-Server-Error-Response oneOf: - $ref: '#/components/schemas/Gateway-Error-Response' - $ref: '#/components/schemas/Service-Error-Response' examples: Internal-Server-Service-Error-Example: $ref: '#/components/examples/Internal-Server-Service-Error-Example' Internal-Server-Gateway-Error-Example: $ref: '#/components/examples/Internal-Server-Gateway-Error-Example' Not-Found: description: Not Found content: application/json: schema: $ref: '#/components/schemas/Gateway-Error-Response' examples: Not-Found-Gateway-Error-Example: $ref: '#/components/examples/Not-Found-Gateway-Error-Example' Method-Not-Allowed: description: Method Not Allowed content: application/json: schema: title: Method-Not-Allowed-Response oneOf: - $ref: '#/components/schemas/Gateway-Error-Response' - $ref: '#/components/schemas/Service-Error-Response' examples: Method-Not-Allowed-Gateway-Error-Example: $ref: '#/components/examples/Method-Not-Allowed-Gateway-Error-Example' Method-Not-Allowed-Service-Error-Example: $ref: '#/components/examples/Method-Not-Allowed-Service-Error-Example' Unsupported-Media-Type: description: Unsupported Media Type content: application/json: schema: title: Unsupported-Media-Type-Response oneOf: - $ref: '#/components/schemas/Gateway-Error-Response' - $ref: '#/components/schemas/Service-Error-Response' examples: Un-Supported-Media-Type-Gateway-Error-Example: $ref: >- #/components/examples/Un-Supported-Media-Type-Gateway-Error-Example Un-Supported-Media-Type-Service-Error-Example: $ref: >- #/components/examples/Un-Supported-Media-Type-Service-Error-Example Forbidden: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Service-Error-Response' examples: Forbidden-Service-Example: $ref: '#/components/examples/Forbidden-Service-Example' Conflict: description: Conflict content: application/json: schema: $ref: '#/components/schemas/Service-Error-Response' Too-Many-Requests: description: Too Many Requests - Rate limit exceeded. Retry after the specified time. content: application/json: schema: $ref: '#/components/schemas/Gateway-Error-Response' examples: Too-Many-Requests-Gateway-Example: $ref: '#/components/examples/Too-Many-Requests-Gateway-Example' Service-Unavailable: description: >- Service Unavailable - The server is temporarily unable to handle the request. content: application/json: schema: $ref: '#/components/schemas/Gateway-Error-Response' examples: Service-Unavailable-Gateway-Example: $ref: '#/components/examples/Service-Unavailable-Gateway-Example' Gateway-Timeout: description: Gateway Timeout content: application/json: schema: $ref: '#/components/schemas/Gateway-Error-Response' examples: Merchant-Creation-For-Enterprise-Request-Example: value: partner_user_id: '24564524' contact_number: '9234567890' contact_prefix: '91' email: abc@test.com Merchant-Creation-Success-Response-Example: value: merchant_id: ec689822-9864-4c4d-9d68-222467627901 status_details: status: SUCCESS message: Merchant creation is success File-Upload-Positive-Response-Example: value: file_id: '112213' created_time: '2026-01-06T10:56:25Z' status_details: status: SUCCESS message: File upload is success File-Download-Response-Example: value: - file_id: '112213' file_download_link: https://pingpongx.com/ Certification-Request: value: country_code: CN merchant_ack: 'YES' business: name: payment service provider name_in_local_language: payment service provider establishment_date: '1975-03-07' license_expiry_date: '1975-03-07' address: street_name: Schillerstrasse 23 postal_code: '999077' city: Ras Al Khaimah district: district1111 state: Ras al Khaymah products_and_services_category: KC02001008 tax_id_type: VAT tax_id_number: tax_id_number1111 account_usage: - ONLINE_MARKETPLACE_TRADING description: Selling products or purchasing raw materials on online platforms website: http://www.company.cn business_proof_file_id: N1234567891011121314151622 documents: - type: CERTIFICATE_OF_REGISTRATION sub_type: ACRA number: DE123456789 file_id: N1234567891011121314151617 business_persons: - role: AGENT_OR_AUTHORISED_PERSON first_name: Hongbo first_name_in_local_language: first name middle_name: s middle_name_in_local_language: middle name last_name: Lin last_name_in_local_language: last name alias: Hongbo nationality: CN gender: MALE birth_details: date: '1975-03-07' country_code: CN state: beijing address: street_name: Schillerstrasse 23 postal_code: '999077' city: Ras Al Khaimah district: district1111 state: Ras al Khaymah country_code: CN tax_id_number: tax123456 business_title: Director documents: - type: NATIONAL_OR_STATE_ID sub_type: FRONT number: ID123456789 expiry_date: '1975-03-07' issue_date: '1975-03-07' issuing_authority: Government of China file_id: N1234567891011121314151617 Certification-Request-Cn: value: country_code: CN merchant_ack: 'YES' business: name: payment service provider name_in_local_language: payment service provider establishment_date: '1975-03-07' license_expiry_date: '1975-03-07' address: street_name: Schillerstrasse 23 postal_code: '999077' city: Ras Al Khaimah district: district1111 state: Ras al Khaymah products_and_services_category: KC02001008 account_usage: - ONLINE_MARKETPLACE_TRADING documents: - type: CERTIFICATE_OF_REGISTRATION sub_type: CERTIFICATE_OF_REGISTRATION number: DE123456789 file_id: N1234567891011121314151617 business_persons: - role: AGENT_OR_AUTHORISED_PERSON first_name: Hongbo first_name_in_local_language: first name last_name: Lin last_name_in_local_language: last name nationality: CN birth_details: date: '1975-03-07' address: street_name: Schillerstrasse 23 postal_code: '999077' city: Ras Al Khaimah district: district1111 state: Ras al Khaymah country_code: CN documents: - type: NATIONAL_OR_STATE_ID sub_type: FRONT number: ID123456789 expiry_date: '1975-03-07' issue_date: '1975-03-07' issuing_authority: Government of China file_id: N1234567891011121314151617 - type: NATIONAL_OR_STATE_ID sub_type: BACK file_id: N1234567891011121314151617 Certification-Request-Hk: value: country_code: CN merchant_ack: 'YES' business: name: payment service provider name_in_local_language: payment service provider establishment_date: '1975-03-07' license_expiry_date: '1975-03-07' address: street_name: Schillerstrasse 23 postal_code: '999077' city: Ras Al Khaimah district: district1111 state: Ras al Khaymah products_and_services_category: KC02001008 tax_id_type: VAT tax_id_number: tax_id_number1111 account_usage: - ONLINE_MARKETPLACE_TRADING description: Selling products or purchasing raw materials on online platforms website: http://www.company.cn business_proof_file_id: N1234567891011121314151622 documents: - type: CERTIFICATE_OF_REGISTRATION sub_type: ACRA number: DE123456789 file_id: N1234567891011121314151617 business_persons: - role: AGENT_OR_AUTHORISED_PERSON first_name: Hongbo first_name_in_local_language: first name middle_name: s middle_name_in_local_language: middle name last_name: Lin last_name_in_local_language: last name alias: Hongbo nationality: CN gender: MALE birth_details: date: '1975-03-07' country_code: CN state: beijing address: street_name: Schillerstrasse 23 postal_code: '999077' city: Ras Al Khaimah district: district1111 state: Ras al Khaymah country_code: CN tax_id_number: tax123456 business_title: Director documents: - type: NATIONAL_OR_STATE_ID sub_type: FRONT number: ID123456789 expiry_date: '1975-03-07' issue_date: '1975-03-07' issuing_authority: Government of China file_id: N1234567891011121314151617 Certification-Save-Acknowledgement: value: status_details: status: PENDING_SAVED message: Request is accepted and the further processing is in-progress Certification-Submit-Acknowledgement: value: status_details: status: PENDING_SUBMITTED message: Request is accepted and the further processing is in-progress Certification-Approved-Webhook-Example: value: merchant_id: ec689822-9864-4c4d-9d68-222467627901 status: APPROVED message: KYC request is approved business_name: business name business_name_in_local_language: business name in local Certification-Declined-Webhook-Example: value: merchant_id: 99f7f4b6-490c-468b-bd1b-f29310f9ebdd status: DECLINED business_name: company.enterprise.name business_name_in_local_language: 北京科技有限责任公司 message: reject_all Certification-Rfi-Pending-Webhook-Example: value: merchant_id: 27162edf-9429-453e-8289-ddbba0627327 status: RFI_PENDING business_name: company.enterprise.name business_name_in_local_language: 北京科技有限责任公司 message: >- Englishname is not standard-英文名不规范,fm_return_company_certificates_expiration-补充材料_证照过期_企业 Get-Certification: value: country_code: CN merchant_ack: 'YES' business: name: payment service provider name_in_local_language: payment service provider establishment_date: '1975-03-07' license_expiry_date: '1975-03-07' address: street_name: Schillerstrasse 23 postal_code: '999077' city: Ras Al Khaimah district: district1111 state: Ras al Khaymah products_and_services_category: KC02001008 tax_id_type: VAT tax_id_number: tax_id_number1111 account_usage: - ONLINE_MARKETPLACE_TRADING description: Selling products or purchasing raw materials on online platforms website: http://www.company.cn business_proof_file_id: N1234567891011121314151622 documents: - type: CERTIFICATE_OF_REGISTRATION sub_type: ACRA number: DE123456789 file_id: N1234567891011121314151617 business_persons: - role: AGENT_OR_AUTHORISED_PERSON first_name: Hongbo first_name_in_local_language: first name middle_name: s middle_name_in_local_language: middle name last_name: Lin last_name_in_local_language: last name alias: Hongbo nationality: CN gender: MALE birth_details: date: '1975-03-07' country_code: CN state: beijing address: street_name: Schillerstrasse 23 postal_code: '999077' city: Ras Al Khaimah district: district1111 state: Ras al Khaymah country_code: CN tax_id_number: tax123456 business_title: Director documents: - type: NATIONAL_OR_STATE_ID sub_type: FRONT number: ID123456789 expiry_date: '1975-03-07' issue_date: '1975-03-07' issuing_authority: Government of China file_id: N1234567891011121314151617 certification_status: APPROVED message: KYC approved merchant_type: ENTERPRISE product_code: PAYMENT_CORE Wallet-Activation-Request-Example: value: currency_code: USD bank_country_code: US Wallet-Activation-Response-Example: value: status_details: status: PENDING message: >- Request is accepted successfully and wallet activation is in progress Wallet-Activation-Available-Webhook-Example: value: virtual_account_id: 59b746f1-8fcc-4801-8b90-b0204140a462 virtual_account_number: '73380000000304551' account: type: CHECKING holder_name: 北京创新科技有限公司 currency_code: USD bank: name: Citibank code: '006' branch_number: '01' city: New York address_line: 111 Wall Street, New York, New York 10043, United States postal_code: '10043' country_code: US routing_number: '031100209' swift_code: GEOORUMMXXX status: AVAILABLE merchant_id: 205dff66-ff47-4d72-82ac-865dbe909040 Wallet-Activation-Closed-Webhook-Example: value: virtual_account_id: 3e5061de-f232-49f5-bef6-71bcaf6431fb virtual_account_number: '73380000000304607' account: currency_code: USD status: CLOSED message: as CITI requested merchant_id: 91eb2008-bee1-4bb9-84ea-e9f372a76e95 Wallet-Activation-Declined-Webhook-Example: value: virtual_account_id: 3e5061de-f232-49f5-bef6-71bcaf6431fb virtual_account_number: '73380000000304607' account: currency_code: USD status: DECLINED message: as CITI requested merchant_id: 91eb2008-bee1-4bb9-84ea-e9f372a76e95 Get-Wallet-Response-Example: value: - virtual_account_id: R200801012359590001 virtual_account_number: '38879371' virtual_account_status: AVAILABLE message: Virtual account status is available account: type: CHECKING iban: SE1498203030437006071356 holder_name: Carol Parisian currency_code: HNL bank: name: CITI Bank HongKong Branch code: '37' branch_number: '690' city: South Devyn address_line: Apt. 883 postal_code: '605826' country_code: SO routing_number: '687869237' swift_code: BETFSJGNJ8F sort_code: '430391' Get-Wallet-Balances-Response-Example: value: - virtual_account_id: ec689822-9864-4c4d-9d68-222467627901 account_type: BALANCE_ACCOUNT currency_code: USD available_amount: 399.35 Account-Linkage-Request-Example: value: creditor_account: holder_type: PERSONAL holder_contact_number: 007 3700 7457 number: '703912345678' name: SHASHANK VIJAYSHANKAR TIWARI currency_code: INR iban: HU58711204120061837086422231 document_type: CHINESE_RESIDENCE_PERMIT document_number: CS8899966 creditor: type: '00' name: SHASHANK VIJAYSHANKAR TIWARI contact_number: '9876543210' contact_prefix: '91' email: abc@pp.com partner_user_id: P298UI839KADY381 address: city: THANE state: MAHARASHTRA country_code: IN address_line: SUMAN HEIGHTS LODHA HERITAGR NAVNEET NAGAR MAHARASHTRA THANE INDIA street_name: ROYAL STREET postal_code: '5110' creditor_bank: name: BANK OF BARODA code: '6' branch_name: THANE BRANCH branch_number: '391' swift_code: CITIINHFXXX routing_number: '6391' ifsc_code: HDFC0000001 sort_code: '87' address: city: THANE state: MAHARASHTRA country_code: IN address_line: SUMAN HEIGHTS LODHA HERITAGR NAVNEET NAGAR MAHARASHTRA THANE INDIA file_id: 8f7d6e5c-4b3a-2f1d-9e8c-7b6a5d4c3f2e Account-Linkage-Request-Example-HK: value: creditor_account: holder_type: PERSONAL holder_contact_number: 007 3700 7457 number: '4569897132589457' name: 北京科技有限责任公司 currency_code: HKD iban: HU58711204120061837086422231 document_type: CHINESE_NATIONAL_ID_CARD document_number: CS8899966 creditor: type: '00' name: 北京科技有限责任公司 contact_number: '9876542154723210' contact_prefix: '91' email: pingpong@pp.com partner_user_id: ece724af-99de-47a5-867c-c707402ac67e address: city: Wan Chai state: Wan Chai District country_code: HK address_line: 150 Kennedy Road, Wan Chai, Wan Chai District, Hong Kong (HKG). street_name: 150 Kennedy Road postal_code: HKG creditor_bank: name: 北京科技有限责任公司 code: HSBCHKHH branch_name: The Hongkong and Shanghai Banking Corporation Limited branch_number: '053' swift_code: HSBCHKHH053 address: city: Central state: Hong Kong country_code: HK address_line: Central, Hong Kong, HK. file_id: NjSvXYrw3OAyMDI2MDIxMjE1MzExMTkwMjgucG5n.png Account-Linkage-Request-Example-CN: value: creditor_account: holder_type: COMPANY holder_contact_number: 007 3700 7457 number: '7894561523255' name: 北京创新科技有限公司 currency_code: CNY iban: HU58711204120061837086422231 document_type: CHINESE_RESIDENCE_PERMIT document_number: CS8899966 creditor: type: '00' name: SHASHANK VIJAYSHANKAR TIWARI contact_number: '101457856' contact_prefix: '86' email: pingpong@pp.com creditor_partner_user_id: ece724af-99de-47a5-867c-c707402ac67e address: city: Changpingqu Beijing state: Beijing country_code: CN address_line: >- 10 West, Shahedonmendajie, Changpingqu Beijing, 102206 Beijing, CHN. street_name: 10 West, Shahedonmendajie postal_code: '102206' creditor_bank: name: BNP PARIBAS (CHINA) LTD code: BNPACNBJ branch_name: BEIJING BRANCH branch_number: XXX swift_code: BNPACNBJXXX address: city: CHAOYANG DISTRICT, BEIJING state: CHAOYANG DISTRICT, BEIJING country_code: CN address_line: >- BNP PARIBAS (CHINA) LTD (BEIJING BRANCH), UNIT 01-04, 22-26, FLOOR 16, BUILDING 1 JIANGUOMENWAI AVENUE, CHAOYANG DISTRICT, BEIJING, China file_id: NjSvXYrw3OAyMDI2MDIxMjE1MzExMTkwMjgucG5n.png Account-Linkage-Response-Example: value: status_details: status: PENDING message: >- Request received successfully and the further processing is in-progress Account-Linkage-Available-Webhook-Example: value: merchant_id: ClientCustomerID1234 creditor_id: R202501080950209789 status: AVAILABLE message: Creditor is successfully created Account-Linkage-Declined-Webhook-Example: value: merchant_id: 91eb2008-bee1-4bb9-84ea-e9f372a76e95 status: DECLINED creditor_id: ca83c6b2-d357-4dc1-805a-0050e4e10e68 message: 客户要求拒绝 Get-Account-Linkage-Response-Example: value: - creditor_id: R202501080950209789 creditor_status: AVAILABLE message: Request is in-progress created_time: '2026-01-06T10:56:25Z' creditor_account: holder_type: PERSONAL holder_contact_number: 007 3700 7457 number: '703912345678' name: SHASHANK VIJAYSHANKAR TIWARI currency_code: INR iban: HU58711204120061837086422231 document_type: CHINESE_RESIDENCE_PERMIT document_number: CS8899966 type: CHECKING creditor_bank: name: BANK OF BARODA code: '6' branch_name: THANE BRANCH branch_number: '391' swift_code: CITIINHFXXX routing_number: '6391' ifsc_code: HDFC0000001 sort_code: '87' type: RECIPIENT BANK address: city: THANE state: MAHARASHTRA country_code: IN address_line: >- SUMAN HEIGHTS LODHA HERITAGR NAVNEET NAGAR MAHARASHTRA THANE INDIA creditor: type: '00' name: SHASHANK VIJAYSHANKAR TIWARI contact_number: '9876543210' contact_prefix: '91' email: abc@pp.com address: city: THANE state: MAHARASHTRA country_code: IN address_line: >- SUMAN HEIGHTS LODHA HERITAGR NAVNEET NAGAR MAHARASHTRA THANE INDIA street_name: ROYAL STREET postal_code: '5110' file_id: 8f7d6e5c-4b3a-2f1d-9e8c-7b6a5d4c3f2e Fx-Query-Request-Example: summary: Sample FX Query request value: buy_currency_code: CNH buy_amount: 100.11 sell_currency_code: USD sell_amount: 80.1 reference_id: '12456' seller_markup: CN-150 Fx-Query-Success-Example: summary: Sample 200 response value: buy_currency_code: CNH buy_amount: 100.11 sell_currency_code: USD sell_amount: 80.1 value_date: '2025-12-15' fx_rate_id: '16098876465273400000' fx_rate: 7.13909 expiry_time: '2025-08-22T12:00:00Z' reference_id: '12456' Payment-To-Wallet-Request: value: message_id: bulk123 payments: - payment_info: - transaction: partner_user_reference: PUR1234556567wegry end_to_end_id: SM37864746 currency_code: USD amount: 1000 payment_details: INV123 method: type: LOCAL method: BKT creditor: account: virtual_account_id: VA202501080950209789 Payment-To-External-Request: value: payments: - debtor: account: virtual_account_id: VA202501080950209789 payment_info: - transaction: partner_user_reference: PUR1234556567wegry end_to_end_id: SM37864746 equivalent_currency_code: USD currency_code: USD amount: 1000 payment_details: INV123 fx_rate_id: '3885000000000000000' purpose_code: '1001' payment_type: PAYOUT file_id: '112213' method: type: CROSS_BORDER method: CBFT creditor: id: R202501080950209789 Payment-Validation-Success-Example: value: status: PENDING message: Request is in-progress message_id: bulk123 Payment-Validation-Full-Rejection-Example: value: ref_id: 444d0f3f-4x55-7g99-8b2c-0cf2a921a5ab status: REJECTED message: Request is rejected message_id: bulk123 transaction: - end_to_end_id: SM37864746 error_details: - issue: property emailAddress is mandatory and it cannot be empty action: please provide valid value for property emailAddress code: VC00010 Payment-Validation-Partial-Rejection-Example: value: ref_id: 444d0f3f-4x55-7g99-8b2c-0cf2a921a5ab status: PARTIALLY_REJECTED message: Request is partially rejected message_id: bulk123 transaction: - end_to_end_id: SM37864746 error_details: - issue: property emailAddress is mandatory and it cannot be empty action: please provide valid value for property emailAddress code: VC00010 Payment-To-Wallet-Rejected-Webhook: value: message_id: bulk123 debtor: account: number: R202501080950209789 creditor: account: virtual_account_id: VA202501080950209789 transaction: partner_user_reference: PUR1234556567wegry end_to_end_id: SM37864746 currency_code: USD amount: 1000 payment_details: INV123 uetr: '202501092053115499258' created_time: '2026-01-06T10:56:25Z' status: REJECTED message: Payment is rejected error_details: - issue: property end_to_end_id is mandatory and it cannot be empty action: please provide valid value for property end_to_end_id code: VC00010 Payment-To-External-Rejected-Webhook: value: merchant_id: ec689822-9864-4c4d-9d68-222467627901 debtor: account: virtual_account_id: VA202501080950209789 creditor: id: R202501080950209789 transaction: partner_user_reference: PUR1234556567wegry end_to_end_id: SM37864746 currency_code: USD amount: 1000 payment_details: INV123 uetr: '202501092053115499258' created_time: '2026-01-06T10:56:25Z' completed_time: '2026-01-06T11:00:25Z' status: REJECTED message: Payment is rejected error_details: - issue: property end_to_end_id is mandatory and it cannot be empty action: please provide valid value for property end_to_end_id code: VC00010 Payment-To-Wallet-Success-Webhook: value: message_id: bulk123 debtor: account: number: R202501080950209789 creditor: account: virtual_account_id: VA202501080950209789 transaction: partner_user_reference: PUR1234556567wegry end_to_end_id: SM37864746 currency_code: USD amount: 1000 payment_details: INV123 uetr: '202501092053115499258' created_time: '2026-01-06T10:56:25Z' status: SUCCESS Payment-To-External-Success-Webhook: value: merchant_id: ec689822-9864-4c4d-9d68-222467627901 debtor: account: virtual_account_id: VA202501080950209789 creditor: id: R202501080950209789 transaction: partner_user_reference: PUR1234556567wegry end_to_end_id: SM37864746 equivalent_currency_code: USD currency_code: USD amount: 1000 payment_details: INV123 uetr: '202501092053115499258' charges_currency: CNH charges_amount: 100.11 fx_rate_id: '3885000000000000000' fx_rate: 0 created_time: '2026-01-06T10:56:25Z' completed_time: '2026-01-06T11:00:25Z' status: SUCCESS Get-Payment-To-Wallet: value: message_id: bulk123 payments: - debtor: account: number: R202501080950209789 creditor: account: virtual_account_id: VA202501080950209789 transaction: partner_user_reference: PUR1234556567wegry end_to_end_id: SM37864746 currency_code: USD amount: 1000 payment_details: INV123 uetr: '202501092053115499258' created_time: '2026-01-06T10:56:25Z' completed_time: '2026-01-06T11:00:25Z' status: SUCCESS Get-Payment-To-External: value: merchant_id: ec689822-9864-4c4d-9d68-222467627901 payments: - debtor: account: virtual_account_id: VA202501080950209789 creditor: id: R202501080950209780 transaction: partner_user_reference: PUR1234556567wegry end_to_end_id: SM37864746 equivalent_currency_code: USD currency_code: USD amount: 1000 payment_details: INV123 uetr: '202501092053115499258' charges_currency_code: CNH charges_amount: 100.11 fx_rate: 0 created_time: '2026-01-06T10:56:25Z' completed_time: '2026-01-06T11:00:25Z' status: SUCCESS Rfi-Response: value: rfi_id: RFI1234 questions: - question_id: Q123456789 information_request: - information_name: id_doc_front answer: string Rfi-Response-Acknowledgement: value: rfi_id: RFI1234 rfi_status: OPEN questions: - question_id: Q123456789 information_request: - information_name: id_doc_front answer: string Rfi-Submit: value: rfi_id: RFI1234 Rfi-Submit-Acknowledgement: value: status: CLOSED Get-Rfi: value: - rfi_id: string type: string status: string created_time: '2026-03-02T17:46:10.833Z' expiry_time: '2026-03-02T17:46:10.833Z' creditor_id: string questions: - question_id: Q123456789 description_code: string description_english: string description_chinese: string information_request: - information_name: id_doc_front information_type: text answer: string certification_source: merchant_type: ENTERPRISE role: UBO first_name: string middle_name: string last_name: string first_name_in_local_language: string middle_name_in_local_language: string last_name_in_local_language: string Transaction-Report: value: - debtor: account: number: '456456547' branch_code: VA202501080950209789 virtual_account_id: VA202501080950209789 creditor: id: R202501080950209789 account: number: '456456547' branch_code: VA202501080950209789 virtual_account_id: VA202501080950209789 transaction: end_to_end_id: SM37864746 currency_code: CNY amount: 10000 buy_currency_code: CNY buy_amount: 10000 sell_currency_code: USD sell_amount: 1000 payment_details: INV123 uetr: '202501092053115499258' fx_rate: 0 payment_type: PAYOUT created_time: '2026-01-06T10:56:25Z' completed_time: '2026-01-06T11:00:25Z' status: SUCCESS Transaction-Report-For-WITHDRAW-INBOUND: value: - status: SUCCESS creditor: account: number: '6258591914237939405' transaction: end_to_end_id: A1781686585 currency_code: USD amount: 21.71 buy_currency_code: CNY buy_amount: 154 uetr: WC0926061716563217599935 fx_rate: 7.0945 payment_type: WITHDRAW created_time: '2026-06-17T08:56:32Z' completed_time: '2026-06-17T11:42:26Z' - status: SUCCESS debtor: account: number: newAccountNo transaction: currency_code: USD amount: 8000001 sell_currency_code: USD sell_amount: 8000001 uetr: '202606162012563459642' fx_rate: 1 payment_type: INBOUND created_time: '2026-06-16T12:12:56Z' completed_time: '2026-06-16T12:21:00Z' Transaction-Report-For-PAYOUT: value: - status: SUCCESS creditor: account: number: '1781610740' transaction: end_to_end_id: A1781689100 currency_code: USD amount: 257 buy_currency_code: USD buy_amount: 257 uetr: SP0926061717382948219612 fx_rate: 1 payment_type: PAYOUT created_time: '2026-06-17T09:38:29Z' completed_time: '2026-06-17T11:39:04Z' Balance-Report: value: - virtual_account_id: ec689822-9864-4c4d-9d68-222467627901 uetr: '202501092053115499258' opening_balance: 5000 closing_balance: 4000 created_time: '2026-01-06T10:56:25Z' amount: 1000 currency_code: USD direction: debit Inbound-Payment-Notification-Example: summary: Example inbound payment notification payload value: merchant_id: ClientCustomerID1234 debtor: name: Hongbo account_number: '1234567' country_code: CN address: Ras Al Khaimah debtor_bank: name: Citi Bank US creditor: name: Su Lin account_number: '78945615' address: Schillerstrasse 23 transaction: uetr: de2da6c9-18be-48d4-8053-867ed90a316a end_to_end_id: E202501080950209789 amount: 1000 currency_code: USD payment_details: Goods sold status: SUCCESS inbound_type: INBOUND RFI-Notification-Example: summary: Example RFI notification payload value: merchant_id: ClientCustomerID1234 rfi_id: RFI123 type: KYC status: OPEN created_time: '2025-01-08T09:50:20Z' expiry_time: '2025-02-08T09:50:20Z' creditor_id: CR21245734 questions: - question_id: Q123654 description_code: KYCDR02001 description_english: >- [Business person name] - Please upload a photo of an original ID. (not a copy or screenshot) description_chinese: '[姓名] - 提供的证件照片非证件原件照片,请提供证件原件照片。' information_request: - information_name: ID Photo information_type: TEXT certification_source: merchant_type: ENTERPRISE role: UBO first_name: Hongbo middle_name: Su last_name: Lin first_name_in_local_language: first name middle_name_in_local_language: middle name last_name_in_local_language: last name Bad-Request-Gateway-Error-Example: value: httpCode: '400' httpMessage: Bad Request moreInformation: please provide valid value for request Bad-Request-Service-Error-Example: value: ref_id: ec689822-9864-4c4d-9d68-222467627901 error_details: - issue: record that you are searching is not found action: resend the request with valid values code: VC00003 Unauthorized-Gateway-Error-Example: value: httpCode: '401' httpMessage: Unauthorized moreInformation: The server could not verify that you are authorized to access the URL Unauthorized-Service-Error-Example: value: ref_id: ec689822-9864-4c4d-9d68-222467627902 error_details: - issue: User not authorized for this functionality action: please use valid credentials to access this functionality code: CC00007 Internal-Server-Service-Error-Example: value: ref_id: ec689822-9864-4c4d-9d68-222467627902 error_details: - issue: unable to serve your request at this moment action: Please refer to documentation provided or contact support team code: CC00004 Internal-Server-Gateway-Error-Example: value: httpCode: '500' httpMessage: Internal Server Error moreInformation: Internal Server Error Not-Found-Gateway-Error-Example: value: httpCode: '404' httpMessage: Not Found moreInformation: No resources match requested URI Method-Not-Allowed-Gateway-Error-Example: value: httpCode: '405' httpMessage: Method Not Allowed moreInformation: The method is not allowed for the requested URL Method-Not-Allowed-Service-Error-Example: value: ref_id: ec689822-9864-4c4d-9d68-222467627901 error_details: - issue: Method not supported action: Method not supported for this endpoint, please use valid http verb code: CC00001 Un-Supported-Media-Type-Gateway-Error-Example: value: httpCode: '415' httpMessage: Unsupported Media Type moreInformation: Unsupported Content-Type application/octet-stream Un-Supported-Media-Type-Service-Error-Example: value: ref_id: ec689822-9864-4c4d-9d68-222467627902 error_details: - issue: Media type not supported action: please use valid content-type in header code: CC00002 Forbidden-Service-Example: value: ref_id: ec689822-9864-4c4d-9d68-222467627902 error_details: - code: CC00008 issue: User does not have privilege to access this functionality. action: Please reach out to support team to enable this feature. Idempotency-Id-Conflict-Example: value: ref_id: ec689822-9864-4c4d-9d68-222467627902 error_details: - issue: Idempotency-Id provided is currently being used in another request action: please do not repeat the same request again Too-Many-Requests-Gateway-Example: value: httpCode: '429' httpMessage: Too Many Requests moreInformation: Rate Limit exceeded Service-Unavailable-Gateway-Example: value: httpCode: '503' httpMessage: Service is temporarily unavailable moreInformation: Retry the request after some time Gateway-Timeout-Example: value: httpCode: '504' httpMessage: Gateway Timeout moreInformation: 'Response took longer than timeout: PTxxS'