Show / Hide Table of Contents

Status code 400

Example:

{
  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
  "title": "One or more validation errors occurred.",
  "status": 400,
  "traceId": "00-304e010f36fb0d3aec2400355868dd6a-d2da8b8639ba4680-00",
  "errors": {
    "$.accountId": [
      "The JSON value could not be converted to System.Nullable`1[System.Guid]. Path: $.accountId | LineNumber: 2 | BytePositionInLine: 17."
    ]
  }
}

status code 500

Example:

{
  "type": "OTHR: ArgumentException",
  "title": "Missing MerchantKey",
  "status": 500,
  "traceId": "00-e0851274983d581c7837f1a7ae895e99-86117ae4f235f4f9-00"
}
{
  "type": "VAL07",
  "title": "Merchant Reference already used",
  "status": 500,
  "traceId": "00-e0851274983d581c7837f1a7ae895e99-86117ae4f235f4f9-00"
}

Examples of the newer codes:

{
  "type": "VAL13",
  "title": "Asynchronous and hosted payments must be cardholder initiated (CIT)",
  "status": 500,
  "traceId": "00-e0851274983d581c7837f1a7ae895e99-86117ae4f235f4f9-00"
}
{
  "type": "VAL08",
  "title": "Invalid Recurring type combination: a merchant initiated payment cannot be OneClick, use Unscheduled or Recurring",
  "status": 500,
  "traceId": "00-e0851274983d581c7837f1a7ae895e99-86117ae4f235f4f9-00"
}
{
  "type": "VAL14",
  "title": "Hosted token lookup by email or name is not supported, use LookupTokensByReference",
  "status": 500,
  "traceId": "00-e0851274983d581c7837f1a7ae895e99-86117ae4f235f4f9-00"
}
{
  "type": "AGR01",
  "title": "Agreement requires cardHolder.reference (1 to 64 characters)",
  "status": 500,
  "traceId": "00-e0851274983d581c7837f1a7ae895e99-86117ae4f235f4f9-00"
}

Error Codes

Error Code Description
"VAL01" "Invalid card details (LUHN)"
"VAL02" "Invalid expiry date"
"VAL03" "Invalid Currency"
"VAL04" "Missing card number"
"VAL05" "Missing expiry"
"VAL06" "Missing CVV2"
"VAL07" "Merchant Reference already used"
"VAL08" "Invalid Recurring type combination" - also returned with a detail message: "a merchant initiated payment cannot be OneClick, use Unscheduled or Recurring" (MIT with OneClick), "a MOTO payment must be OneTime" (MOTO with any recurrence), and for MIT with OneTime
"VAL09" "Tokenisation Not Enabled"
"VAL10" "Transaction Type Not Enabled"
"VAL11" "Dynamic Descriptor Not Enabled"
"VAL12" "Partial Approvals Not Enabled"
"VAL13" "Asynchronous and hosted payments must be cardholder initiated (CIT)" - the Initiation of an async or hosted request must be CIT (the default); MIT and MOTO are rejected
"VAL14" "Hosted token lookup by email or name is not supported, use LookupTokensByReference" - the LookupTokensByEmail and LookupTokensByName hosted modes are no longer supported
"AGR01" "Agreement requires cardHolder.reference (1 to 64 characters)"
"AGR02" "Agreement requires Recurrence OneClick (hosted: OneClick, or OneTime together with the AskTokenize mode)"
"AGR03" "Agreement description is required on hosted payments"
"AGR04" "Agreement consent (textVersion and timestamp, not in the future) is required on async payments and Agreement/RecordConsent"
"AGR05" "Agreement consent is recorded by AWPG on hosted payments and must not be sent"
"AGR06" "Agreement maxAmount must be positive with no more decimals than the currency allows, and expiresAt must be in the future" - for Agreement/RecordConsent also: currency is required with maxAmount and must be one of your account currencies
"AGR07" "Invalid agreement field (agreementRef: letters, digits, - _ . and at most 36 characters; description at most 200; consent fields within their maximum length)"
"AGR08" "Agreement not found" - unknown agreementId, an agreement of another merchant or card, or Agreement/Get or Agreement/Cancel of an unknown id
"AGR09" "Agreements are not enabled for this merchant"
"AGR10" "Recurrence Scheduled needs the agreement object with a schedule"
"AGR11" "agreement.schedule is only allowed with recurrence Scheduled on a payment (Agreement/RecordConsent registers unscheduled agreements only)"
"AGR12" "Invalid agreement.schedule" - amount not positive or with too many decimals, interval unit not Day, Week, Month or Year or a count outside 1 to 999, instalments outside 2 to 999, maxAmount together with a schedule, or a registering amount that is not the schedule amount when there is no firstPaymentDate
"AGR13" "A schedule needs expiresAt or instalments" - expiresAt may not be before the first payment, when both are sent the instalments must fit before expiresAt, and the last payment may be at most 10 years after the first
"AGR14" "agreement.schedule.firstPaymentDate must not be in the past"
"AGR15" "A scheduled agreement on a hosted payment needs the cardholder consent" - the AskTokenize mode (optional consent) is not allowed
"AGR16" "agreementId needs the stored card (tokenData) the agreement was registered with"
"AGR17" "agreementId is not allowed on a hosted payment" - send the agreement object, the hosted page finds the agreement of the card
"AGR18" "agreement.schedule.firstPaymentDate is required when the registering payment is a zero-amount check" - a scheduled registration with amount 0 must say when the schedule starts
"PAB01" "null request received"
"PAB02" "negative amount" - a zero amount is allowed, see Sync Payment
"PAB04" "null currency received"
"PAB05" "null merchantRef received"
"PAB06" "null cardData and tokenData"
"PAB07" "merchantId not correcponding MerchantApiToken"
"PAP03" "null async data received"
"TOK01" "token card details do not match supplied ones"
"TOK02" "token card expiry do not match supplied ones"
"TOK03" "missing card details"
"TOK04" "missing card number"
"TOK05" "missing expiry"
"TOK06" "missing cvv2"
"TOK07" "missing/invalid token" - also a token that belongs to another merchant (on payments, on Agreement/RecordConsent and when creating a hosted payment with tokenData or tokens), and a saved card posted to a hosted page that the page did not offer
"IRF01" "velocity check exceeded"
"IRF02" "velocity cur check exceeded"
"IRF03" "spend limit exceeded"
"IRF04" "minimum amount not satisfied"
"IRF05" "maximum amount exceeded"
"IRF06" "scheme velocity limit"
"PRO01" "merchant unknown"
"PRO02" "access denied"
"PRO03" "payment unknown"
"PRO04" "merchant reference unknown"
"PRO05" "merchant reference or transaction id required"
"PRO06" "transaction retrieval error"
"PRO07" "transaction already voided"
"PRO08" "cannot refund"
"PRO09" "cannot void"
"PRO10" "amount invalid"
"PRO11" "merchant not active"
"PRO12" "split complete not supported"
"PRO13" "partial refund not supported"
"PRO14" "void not supported"
"PRO15" "payment expired"
"PRO16" "cannot cancel"
"PRO17" "capture is finalised"
"PRO18" "processor id not found"
"PRO19" "cannot capture"
"PRO20" "processor id already voided"
"PRO21" "invalid url"
"PRO22" "HTTPS url required in webhooks"
"PRO23" "Default ports required in webhooks (443)"
"PRO24" "loopback urls not supported in webhooks"
"PRO30" "a zero value payment cannot be captured, refunded or voided"
"HPS01" "payment expired"
"HPS02" "payment cancelled"
"RTE01" "no valid accounts to use"
"RTE05" "no account supports the wallet (Apple Pay or Google Pay)" - none of your accounts can take this wallet payment: the account's processor does not take the wallet, or the request has something that account's processor does not support (for example a descriptor), or the currency does not match. Today only simulated (test) accounts take wallet payments: for a live account ask PayLolly (see Wallets)
"RTE04" "no account supports scheduled agreements" - none of the merchant accounts that fit the payment has a processor verified for recurrence Scheduled
"RTE03" "no account supports zero value payments" - none of the merchant accounts that fit the payment has a processor verified for a zero amount
"EPR01" "async transaction required"
"WAL01" "the wallet payment token was refused: it is not genuine, has expired or is not meant for this service" - see Wallets
"WAL02" "the wallet payment token cannot be used for this payment (only Visa and Mastercard are accepted, with a cryptogram; for Apple Pay the amount and currency must be those of the token)" - a card number without a cryptogram is accepted in the TEST environment only
"WAL03" "wallet payments are not available for this merchant" - no permission for the wallet, or the wallet is not set up (also: the merchant's own configuration of the wallet is switched off, not complete or cannot be read)
"WAL04" "a wallet payment needs an amount above zero"
"WAL05" "the website is not registered for Apple Pay" - the domain of Payment/ApplePayValidate is not one registered with PayLolly for Apple Pay
"WAL06" "Apple could not validate the merchant session (the validation url is not Apple's, or Apple refused or did not answer)"
"WAL07" "the wallet API is not available for this merchant" - the Wallet API permission is not switched on for the merchant
"WAL08" "a wallet payment can only be an Auth or an AuthCapture"
"WAL09" "this merchant validates its own Apple Pay sessions with Apple; ApplePayValidate is not available for it" - the merchant has its own Apple Pay configuration (switched on): validate the session on your own server. The usual checks come first (WAL07 without the Wallet API permission, WAL03 without the Apple Pay permission, RTE05 when no account takes Apple Pay), so WAL09 is returned only once they pass. See Setting up your own Apple Pay and Google Pay
Note

Other unclassified errors may be returned

In this article
Back to top Generated by DocFX