Langsung ke konten utama

Customer RAG

Sekitar 9 menit

Customer RAG

Audiens

  • Untuk: Tim layanan pelanggan dan operasional
  • Tujuan: Cepat menemukan masalah dari code dan responseCode yang dilaporkan merchant, serta memberikan panduan penanganan
  • Dokumen pengembang: Untuk arti standar code dan praktik integrasi, lihat Kode Respons Error

Placeholder

Kode error di bawah mencerminkan respons yang benar-benar diterima sistem eksternal. {1} adalah placeholder dinamis yang diganti dengan konten spesifik saat runtime.

Kode yang tidak dicakup

Referensi ini tidak membahas code = "01" (sedang diproses) atau code = "15" (timeout). Lihat Kode Respons Error dan gunakan API inquiry status untuk memeriksa progres pesanan.

Untuk error autentikasi, lihat Panduan Tanda Tangan.


Dekode responseCode

responseCode is a 7-character string composed of three parts:

responseCode = HTTP status (3 digits) + service code (2 digits) + caseCode (2 digits)

Service Code Reference

Service CodeAPI PathDescription
90v2.0/transaction/pay-inPay-in
91v2.0/disbursement/pay-outPay-out
92v2.0/inquiry-statusStatus inquiry

code to HTTP Status Mapping

codeHTTP Status PrefixCategory
00200Success
10400Invalid request parameters
11404Resource not found
12401Authentication failure
13429Rate limit exceeded
14403Transaction forbidden
16400Insufficient balance
20502External channel error
99500Internal system error

Indeks Cepat

Indeks utama dikelompokkan berdasarkan code. Detail tingkat message ada di Detail Kode Error.

coderesponseCode PatternCategoryFirst ActionEscalationDetails
0020090xx / 20091xx / 20092xxSuccessNo action neededSelf-service#code-00
1040090xx / 40091xx / 40092xxBad requestCheck message for fieldSelf-service#code-10
1140490xx / 40491xx / 40492xxNot foundVerify path or merchant IDSelf-service#code-11
1240190xx / 40191xx / 40192xxUnauthorizedCheck signature / TokenSelf-service → Tech support#code-12
1342990xx / 42991xx / 42992xxToo many requestsReduce frequency or check statusSelf-service#code-13
1440390xx / 40391xx / 40392xxForbiddenMust read messageVaries by scenario#code-14
1640090xx / 40091xx / 40092xxInsufficient balanceAsk merchant to top upSelf-service#code-16
2050290xx / 50291xx / 50292xxExternal channel errorRetry laterSelf-service → Tech support#code-20
9950090xx / 50091xx / 50092xxSystem errorLog full payloadEscalate to tech support#code-99

Detail Kode Error

code = "00" — Success

responseCodemessageServiceHandling
2009000SuccessfulPay-inRequest accepted; no action needed
2009100SuccessfulPay-outRequest accepted; no action needed
2009200SuccessfulStatus inquiryRequest accepted; order status returned

code = "10" — Invalid Request Parameters

The most common merchant errors. Support can usually resolve these directly.

Invalid field format / invalid parameters (caseCode = 01)

Pay-in (serviceCode = 90)
responseCodemessageTrigger ScenarioHandling
4009001Invalid Field Format [{1}]Gateway validation: invalid timestamp, special chars in orderNo, merchant ID mismatchCheck timestamp (within 24h); orderNo must use letters, digits, underscore, hyphen only; header and body merchant ID must match
4009001Invalid request parameter: [{1}]Trade validation: request body fails Bean ValidationFix the field named in {1}
4009001Unsupported area [{1}]Requested region is not supportedConfirm whether pay-in is available in that region
4009001Unsupported currency [{1}]Requested currency is not supportedCheck supported currencies for the region
4009001Currency does not match areaCurrency does not match the regionUse a currency supported by the region
4009001Duplicate pay orderDuplicate pay-in orderNoQuery order status first; do not resubmit if already successful
4009001Invalid settlement amountInvalid pay-in settlement amountVerify amount is positive with correct decimal places
Pay-out (serviceCode = 91)
responseCodemessageTrigger ScenarioHandling
4009101Invalid Field Format [{1}]Gateway validation: invalid timestamp, special chars in orderNoCheck timestamp; orderNo must use letters, digits, underscore, hyphen only
4009101Invalid request parameter: [{1}]Trade validation: request body fails rulesFix the field named in {1}
4009101Unsupported area [{1}]Requested region is not supportedConfirm whether pay-out is available in that region
4009101Unsupported currency [{1}]Requested currency is not supportedCheck supported currencies for the region
4009101Currency does not match areaCurrency does not match the regionUse a currency supported by the region
4009101Duplicate payout orderDuplicate pay-out orderNoQuery order status first
4009101Invalid payout amountInvalid pay-out amountVerify amount is positive and within limits
Status inquiry (serviceCode = 92)
responseCodemessageTrigger ScenarioHandling
4009201Invalid Field Format [{1}]Gateway validation: invalid request formatCheck request parameter format
4009201Invalid request parameter: [{1}]Trade validation: request body fails rulesFix the field named in {1}

Missing mandatory fields (caseCode = 02)

responseCodemessageServiceHandling
4009002Invalid Mandatory Field [{1}]Pay-inAdd the missing field named in {1}
4009102Invalid Mandatory Field [{1}]Pay-outSame as above
4009202Invalid Mandatory Field [{1}]InquirySame as above

Commonly missing fields: Content-Type, X-TIMESTAMP, X-SIGNATURE, X-PARTNER-ID, Authorization


code = "11" — Resource Not Found

Invalid routing (caseCode = 01)

responseCodemessageServiceTrigger ScenarioHandling
4049001Invalid RoutingPay-inURL path does not match any serviceConfirm path is v2.0/transaction/pay-in
4049101Invalid RoutingPay-outURL path does not match any serviceConfirm path is v2.0/disbursement/pay-out
4049201Invalid RoutingInquiryURL path does not match any serviceConfirm path is v2.0/inquiry-status

Merchant not found (caseCode = 02)

responseCodemessageServiceTrigger ScenarioHandling
4049002Partner :{merchantId} Not FoundPay-inMerchant does not exist or is disabled① Verify merchant ID; ② Check merchant status in admin
4049102Partner :{merchantId} Not FoundPay-outMerchant does not exist or is disabledSame as above
4049202Partner :{merchantId} Not FoundInquiryMerchant does not exist or is disabledSame as above

code = "12" — Authentication Failure

Security-related errors. Escalate to technical support if support cannot resolve.

Unauthorized (caseCode = 00)

responseCodemessageServiceTrigger ScenarioHandling
4019000Unauthorized. [{1}]Pay-inRSA signature failure, missing public key, IP not whitelisted① Verify RSA public key; ② Confirm SHA256withRSA; ③ Verify signature string order
4019100Unauthorized. [{1}]Pay-outSame as aboveSame as above
4019200Unauthorized. [{1}]InquirySame as aboveSame as above

Invalid token (caseCode = 01)

responseCodemessageServiceTrigger ScenarioHandling
4019001Invalid Token [{1}]Pay-inJWT token invalid or expired① Verify Access Token; ② Refresh token; ③ Ensure token is in Authorization header
4019101Invalid Token [{1}]Pay-outSame as aboveSame as above
4019201Invalid Token [{1}]InquirySame as aboveSame as above

code = "13" — Too Many Requests

responseCodemessageServiceTrigger ScenarioHandling
4299000TOO_MANY_REQUESTSPay-inRate limit exceeded, or same order is processingReduce frequency and retry; if order is processing, query status first
4299100TOO_MANY_REQUESTSPay-outSame as aboveSame as above
4299200TOO_MANY_REQUESTSInquiryRate limit exceededReduce frequency and retry

code = "14" — Transaction Forbidden

The most complex category. Always read the message content.

Transaction expired (caseCode = 00)

responseCodemessageServiceTrigger ScenarioHandling
4039000Transaction ExpiredPay-inPay-in order exceeded valid payment windowInform merchant the order expired; create a new order

Pay-out and status inquiry do not involve transaction expiry.

Blacklist block (caseCode = 01)

responseCodemessageServiceTrigger ScenarioHandling
4039001Do Not Honor, [{1}]Pay-inIP, email, account, or ID blacklistEscalate to security team
4039101Do Not Honor, [{1}]Pay-outSame as aboveEscalate to security team
4039201Do Not Honor, [{1}]InquirySame as aboveEscalate to security team

Transaction not permitted (caseCode = 02)

Pay-in (serviceCode = 90)
responseCodemessageTrigger ScenarioHandling
4039002Transaction Not Permitted.[{1}]Risk decline (105), invalid merchant status (109), failed order (131), operation not allowed (132)Interpret {1} for root cause
4039002Transaction declined by risk controlRisk rules triggeredEscalate to risk team
4039002Merchant status is invalidMerchant disabled or abnormalCheck merchant status in admin
4039002Pay order has failedOperation on a failed orderInform merchant the order has failed
4039002Pay order operation not allowed in current statusOperation not allowed in current stateGuide merchant to check order status
Pay-out (serviceCode = 91)
responseCodemessageTrigger ScenarioHandling
4039102Transaction Not Permitted.[{1}]Risk decline (105), invalid merchant status (109)Interpret {1} for root cause
4039102Transaction declined by risk controlRisk rules triggeredEscalate to risk team
4039102Merchant status is invalidMerchant disabled or abnormalCheck merchant status in admin
4039102Payout order operation not allowed in current statusOperation not allowed in current stateGuide merchant to check order status
Status inquiry (serviceCode = 92)
responseCodemessageTrigger ScenarioHandling
4039202Transaction Not Permitted.[{1}]Same as aboveInterpret {1} for root cause

Merchant blacklist / IP whitelist (caseCode = 03)

responseCodemessageServiceTrigger ScenarioHandling
4039003Merchant Blacklisted. {1}Pay-inMerchant server IP not in whitelist① Confirm IP change; ② Collect new IP and escalate to tech support
4039103Merchant Blacklisted. {1}Pay-outSame as aboveSame as above
4039203Merchant Blacklisted. {1}InquirySame as aboveSame as above

Insufficient configuration (caseCode = 04)

Pay-in (serviceCode = 90)
responseCodemessageTrigger ScenarioHandling
4039004Insufficient configuration permission. [{1}]Pay product unavailable (121), no active pay channel (122)Guide merchant to admin → Channel Config; enable at least one channel
4039004Pay product config unavailablePay product not configuredGuide merchant to configure pay product
4039004No active pay channelAll pay channels unavailableCheck channel status; inform merchant if under maintenance
Pay-out (serviceCode = 91)
responseCodemessageTrigger ScenarioHandling
4039104Insufficient configuration permission. [{1}]Pay-out config unavailable (141), no active pay-out channel (142)Guide merchant to check pay-out channel config in admin
4039104Payout config unavailablePay-out product not configuredGuide merchant to configure pay-out product
4039104No active payout channelAll pay-out channels unavailableCheck pay-out channel status
Status inquiry (serviceCode = 92)
responseCodemessageTrigger ScenarioHandling
4039204Insufficient configuration permission. [{1}]Incomplete merchant configurationGuide merchant to complete configuration

code = "16" — Insufficient Balance

responseCodemessageServiceTrigger ScenarioHandling
4009003Insufficient Balance. [{1}]Pay-inMerchant available balance insufficientInform merchant to top up
4009103Insufficient Balance. [{1}]Pay-outInsufficient balance to freeze pay-out amountInform merchant to top up before pay-out
4009203Insufficient Balance. [{1}]InquiryMerchant available balance insufficientInform merchant to top up

code = "20" — External Channel Error

Pay-in (serviceCode = 90)
responseCodemessageTrigger ScenarioHandling
5029000External request error: {1}Gateway downstream call failedTemporary channel issue; retry later. Escalate if frequent
5029000Callback notify failed, [{1}]Merchant callback URL unreachableVerify merchant callback URL is reachable
5029000Pay channel timeout or interruptedChannel call timed outTemporary issue; retry later
5029000Unknown pay statusUnrecognized channel statusEscalate to tech support
Pay-out (serviceCode = 91)
responseCodemessageTrigger ScenarioHandling
5029100External request error: {1}Gateway downstream call failedTemporary channel issue; retry later
5029100Callback notify failed, [{1}]Merchant callback URL unreachableVerify merchant callback URL is reachable
5029100Payout channel timeout or interruptedPay-out channel timed outTemporary issue; retry later
5029100Unknown payout statusUnrecognized pay-out channel statusEscalate to tech support
Status inquiry (serviceCode = 92)
responseCodemessageTrigger ScenarioHandling
5029200External request error: {1}Gateway downstream call failedTemporary channel issue; retry later

code = "99" — General System Error

Internal system errors. Log the full payload and escalate to technical support.

Pay-in (serviceCode = 90)
responseCodemessage ExampleRoot CauseHandling
5009000Payment method: XXX inactive for merchant: XXXPayment method not activatedGuide merchant to activate payment method in admin
5009000Failed to generate order numberOrder number generation failureTemporary system issue; retry later
5009000Unable to create pay orderFailed to create pay-in orderLog orderNo/tradeNo and escalate
5009000Pay channel error: {1}Channel rejectionEscalate to tech support
5009000Pay order not foundPay-in order not foundVerify orderNo/tradeNo
5009000The requested pay order was not foundPlatform order not foundVerify order number
5009000System error: {1}Generic system errorLog full payload; escalate immediately
Pay-out (serviceCode = 91)
responseCodemessage ExampleRoot CauseHandling
5009100Payment method: XXX inactive for merchant: XXXPayment method not activatedGuide merchant to activate payment method in admin
5009100Failed to generate order numberOrder number generation failureTemporary system issue; retry later
5009100Unable to create payout orderFailed to create pay-out orderLog orderNo/tradeNo and escalate
5009100Payout channel error: {1}Channel rejectionEscalate to tech support
5009100Payout order not foundPay-out order not foundVerify order number
5009100The requested payout order was not foundPlatform pay-out order not foundVerify order number
5009100The requested withdrawal order was not foundWithdrawal order not foundVerify withdrawal order number
5009100System error: {1}Generic system errorLog full payload; escalate immediately
Status inquiry (serviceCode = 92)
responseCodemessage ExampleRoot CauseHandling
5009200Order not foundOrder not foundVerify orderNo/tradeNo
5009200System error: {1}Generic system errorLog full payload; escalate immediately

Skrip Respons Cepat

Parameter errors (code = 10 / 11)

ScenarioApplicable codeScript
Invalid parameter format10"Your request has a parameter format issue: {reason}. Please check and retry."
Missing mandatory field10"Your request is missing required field {fieldName}. Please add it and retry."
Duplicate order10"Order {orderNo} was already processed. Please query its status before resubmitting."
Merchant not found11"Merchant ID {merchantId} does not exist or is disabled. Please verify and retry."
Invalid routing11"The request path is invalid. Pay-in: v2.0/transaction/pay-in; Pay-out: v2.0/disbursement/pay-out"

Authentication (code = 12 / 13)

ScenarioApplicable codeScript
Signature failure12"Signature verification failed. Please check: ① RSA public key; ② SHA256withRSA algorithm; ③ signature string order per documentation."
Invalid token12"Access Token is expired or invalid. Please obtain a new token and retry."
Rate limit13"Request frequency is too high. Please retry later and reduce call frequency."
Order processing13"This order is being processed. Please query order status before resubmitting."

Risk and limits (code = 14 / 16)

ScenarioApplicable codeScript
Transaction expired14"The order has expired. Please create a new order."
Blacklist block14"Your request was blocked by security policy. We need to verify further. Please provide merchant ID and request time." → Security team
Risk decline14"The transaction was declined by risk control. We need further review." → Risk team
IP whitelist14"Your server IP is not whitelisted. Please confirm your IP or contact technical support to add it."
Incomplete config14"Your merchant account does not have complete pay-in/pay-out channel configuration. Please enable at least one channel in admin."
Insufficient balance16"Your merchant account balance is insufficient. Please top up before pay-out."

System errors (code = 20 / 99)

ScenarioApplicable codeScript
Channel error20"The third-party payment channel is temporarily unavailable. Please retry later. We will investigate if it persists." → Tech support
System error99"A system error occurred. We have logged the details and escalated to our technical team. Please retry later." → Log full payload, escalate