Skip to main content

Payment General Rules

Local Acquiring

Payment General Rules

This page summarizes the general rules for PayCools payment APIs. It currently includes parameter format conventions (such as phone numbers), as well as the unified callback notification rules for both Checkout Page mode and direct API integration. Please follow the conventions on this page when calling APIs such as order creation, collection, and payout. More general logic, parameters, and definitions will continue to be documented on this page over time.

1

Phone Number Format

The following are the phone number format conventions for each country/region. PayCools currently does not verify phone number authenticity (it does not check whether the number actually exists or is registered), but it does validate the format (prefix and length); incorrect formats will result in API errors or rejection.

Country/RegionPrefixTotal LengthDescription
Philippines0911Starts with 09, 11 digits total
Indonesia0810–13Starts with 08, 10–13 digits total
Malaysia0110–11Starts with 01, 10–11 digits total
Thailand06 / 08 / 0910Starts with 06, 08, or 09, 10 digits total
Vietnam03–0910Starts with 03–09 (not 0, 1, or 2), 10 digits total
Russia910Starts with 9, 10 digits total (excluding country code 7)
Saudi Arabia0510Starts with 05, 10 digits total
UAE0510Starts with 05, 10 digits total
Qatar3 / 5 / 6 / 78Starts with 3, 5, 6, or 7, 8 digits total
Kuwait41 / 5 / 6 / 98Starts with 41, 5, 6, or 9, 8 digits total
Oman7 / 98Starts with 7 or 9, 8 digits total
Bahrain3 / 66 / 698Starts with 3, 66, or 69, 8 digits total
Mexico5212Always starts with country code 52, the 3rd digit is 1–9, 12 digits total
Colombia5712Always starts with country code 57, followed by a 10-digit local number, 12 digits total
Argentina——Format is not validated at present; the value is passed through to the channel as-is
2

Callback Notification Rules

Callback notifications are used to sync transaction results to merchants. Both Checkout Page mode and direct API integration follow the unified delivery and retry rules below:

  1. Callback result is determined by the HTTP status code: PayCools does not parse the content of the callback response body (body); if the merchant returns HTTP 200 upon receiving the callback, the callback is considered successful and PayCools will not retry the callback. In exceptional cases, please return a non-200 status code.
  2. Retry frequency: After a failed callback (non-200 response), notifications are sent once per minute for the first 10 minutes, then once per hour after 10 minutes.
  3. Callback time limit: For transactions older than 1 day, automatic callbacks based on status codes will no longer be sent.

Please note that different products have different policies regarding failed event callbacks: Checkout Page mode only callbacks for successful transactions, while direct API integration callbacks for both successful and failed transactions. Please refer to the corresponding product documentation.

3

API Response Codes

The code and message returned in real time by the API, used to indicate the processing result of the request.

General API Response Codes

codemessageDescription
10000SuccessRequest successful
21000Server error, Please try again later.Server error, please try again later
21001Request sign errorRequest signature verification failed
21002Request param errorInvalid request parameters
21003Request appId errorappId error
21004Merchant is unavailableMerchant is unavailable
21005Merchant channel is unavailableMerchant channel is unavailable
21006Merchant transaction not foundMerchant transaction not found
21007Duplicate merchant order idDuplicate merchant order id
21008Request timestamp errorInvalid request timestamp
21009Request timestamp errorInvalid request timestamp
21010The amount exceeds the limitAmount exceeds the limit
21011Network errorNetwork error
21012Request bank code errorInvalid bank code
21013Request wallet code errorInvalid wallet code
21014Merchant balance insufficientInsufficient merchant balance
21015Duplicate idempotencyIdDuplicate idempotencyId
21016Merchant ip forbiddenMerchant IP is not whitelisted
21017Merchant has not opened this national serviceMerchant has not enabled service for this country/region
21018Request transfer code errortransferCode error
21019Request pay method code errorpayMethodCode error
21020Too many requests, please retry later.Too many requests, please retry later
21021Transaction Amount InvalidInvalid transaction amount
21022Transaction Volume LimitTransaction count exceeds the limit
21023Transaction create failedTransaction creation failed
21024Invalid access tokenInvalid access token
21025Not allowed to cancelCancellation not allowed
21026Customer Balance not enoughInsufficient customer balance
21027Transaction creation exceeds limitTransaction creation exceeds the limit
21028Transaction already paid or closedTransaction already paid or closed
21050Business unit not foundBusiness unit not found
21051Business unit does not belong to this merchantBusiness unit does not belong to this merchant
21056Cross region business is not allowed for this merchantCross-region business is not allowed for this merchant

Refund API Response Codes

codemessageDescription
21401Refund is processingRefund is processing
21402Not allowed to refundRefund not allowed
21403Transactions 60 days ago cannot initiate refundsRefunds cannot be initiated for transactions older than 60 days
21404The original transaction channel not support full refundThe original transaction channel does not support full refund
21405The original transaction channel not support partial refundThe original transaction channel does not support partial refund
21406Refund amount invalidInvalid refund amount
21407MchRefundOrderId is repeatDuplicate refund order id
21408The original transaction is not completedThe original transaction is not completed
21409The original transaction already exist pending refundThe original transaction already has a pending refund

Void API Response Codes

codemessageDescription
21500Original transaction status is not successThe original transaction status is not success
21501Cannot reverseCannot reverse
21502Original transaction has been settledThe original transaction has been settled
21503Cannot void over the dayVoiding across days is not supported
21504Original transaction has been already voidedThe original transaction has already been voided
21505Duplicate mchVoidOrderID detected. Please provide a unique mchvoidOrderID and retry.Duplicate void order id. Please use a unique order id and retry
note

For the complete list of prompt codes and descriptions, please refer to General API Prompt Codes.