Developers
Developer Hub
Codes and Descriptions
codes and descriptions where the codes remain fixed, the descriptions may change you should not build any error handling logic based on these descriptions codes for codes and descriptions /#card types codes and descriptions /#error types codes and descriptions /#error codes and descriptions card types each card type has its own unique id direct api implementation card types true false 120false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type mobile sdk implementation card types true false 115false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type error types there are three types of error, each having their own response structure codes and descriptions /#model errors codes and descriptions /#processing errors codes and descriptions /#gateway errors the model and processing error response provides you with the error code and information on why the transaction request failed judopay's validation checks , and what is needed to resolve the error model errors a model error occurs when the transaction request fails judopay's validation of the fields in the request model this could be an incorrect field value, or the field has been incorrectly formatted for example missing cv2 incorrect cardnumber / expirydate incorrect number of characters example model error response structure example model error { "details" \[ { "code" 46, "fieldname" "expirydate", "message" "sorry, but the expiry date entered is in the past please check your details and try again " } ], "message" "sorry, we're unable to process your request please check your details and try again ", "code" 1, "category" 2 } you can also receive more than one model error in a response the example below details a list of errors, each corresponding to a particular field in the request list of model errors { "details" \[ { "code" 30, "fieldname" "cardnumber", "message" "sorry, it looks like the card number entered is invalid please check your details and try again " }, { "code" 31, "fieldname" "cv2", "message" "sorry, you've not supplied the 3 digit card security code please check your details and try again " } ], "message" "sorry, we're unable to process your request please check your details and try again ", "code" 1, "category" 2 } processing errors a processing error occurs when the transaction request fails judopay's account configuration and permissions validation , there is missing information in the request, or the request is stopped because of the transaction's risk rule score some processing errors are associated with authentication errors a processing error may require a change in your account's configuration and permissions, or your business requirements / business logic needs to be reflected in your payment flow for example, the following may not have been set up to reflect your business logic on your account token and secret permissions (api credentials) enforce risk rules enforce avs checks enforce cv2 checks judoid configurations currencies card schemes payment methods routing to update your account configurations and permissions, contact customer support mailto\ help\@judopay com for more information on permissions, see introduction docid\ s 8hoamytkgy13t0p657 example processing error response structure example processing error { "message" "sorry, we're currently unable to route this transaction please check your account details and try again if this issue persists, please contact customer services ", "code" 72, "category" 3 } gateway errors the transaction request has passed all judopay's validation checks the next step in the payment flow is for the gateway to perform their checks a gateway error occurs when for example, the gateway verifies the request details with the issuing bank , who declines the request as there are not enough funds in the account this response contains the receiptid the gateway error response structure follows the same structure as a successful transaction response example gateway error response structure example gateway error { "receiptid" "934833196070240256", "yourpaymentreference" "b5dcd2ca dda3 43d7 9741 4a522e0dd980", "type" "payment", "createdat" "2023 01 23t15 33 22 2975+00 00", "result" "declined", "message" "card declined", "judoid" 100042597, "merchantname" "shodan ai routing", "appearsonstatementas" "apl /shodanairouting ", "originalamount" "2,502 00", "netamount" "2,502 00", "amount" "2,502 00", "currency" "gbp", "acquirertransactionid" "35522451090210825124", "externalbankresponsecode" "", "carddetails" { "cardlastfour" "4963", "enddate" "1224", "cardtype" 11, "cardscheme" "visa", "cardfunding" "debit", "cardcategory" "electron", "cardqualifier" 0, "cardcountry" "ve", "bank" "todoticket 2004, c a " }, "consumer" { "consumertoken" "dojmka8l5uem7aze", "yourconsumerreference" "abner fay68\@example com" }, "threedsecure" { "attempted" false }, "risks" { "postcodecheck" "unknown", "cv2check" "not checked", "merchantsuggestion" "allow" } } error codes and descriptions where the codes remain fixed, the descriptions may change you should not build any error handling logic based on these descriptions the judopay transaction api uses the following error codes true false 80false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type