Response information
Details about the responses you may receive from transactions and API methods.
When troubleshooting technical problems, please also refer to our Debugging errors page for additional guidance
Response query string parameters
These response query string parameters parameters are applicable to Smart Checkout only
After the completion of a payment from a Smart Checkout payment order, the customer is redirected back to your website, and the below query string parameters are appended to the Redirect (Success/Failure) URL.
Parameter | Description |
---|---|
EventId | Code corresponding to the outcome of the payment. See Event ID codes below for full details. |
ECI | ECI code. See Electronic Commerce Indicator below for full details |
t | Specifies the Viva transaction ID generated during checkout. The variable name is configurable and can be updated from the Source Code dialog box in viva banking app |
s | Specifies the payment order code. The variable name is configurable and can be updated from the Source Code dialog box in viva banking app |
lang | The language code in which the payment order is created. Consists of two-letter ISO 639-1 language code combined with two-letter ISO 3166-1 alpha-2 country code |
Event ID codes
During a payment attempt, any of the following EventId
codes can be appended to the Redirect (Success/Failure) URL as query string parameters.
EventId | Reason | Explanation | Type |
---|---|---|---|
0 | Undefined | Undefined | System |
2061 | 3DS flow incomplete | Browser closed before authentication finished | User |
2062 | 3DS validation failed | Wrong password or two-factor auth code entered | User |
2108 | Payments Policy Acquiring Restriction | Payments Policy Acquiring Restriction | System |
10001 | Refer to card issuer | The issuing bank prevented the transaction | Issuer |
10003 | Invalid merchant number | Security violation (source is not correct issuer) | Issuer |
10004 | Pick up card | The card has been designated as lost or stolen | Issuer |
10005 | Do not honor | The issuing bank declined the transaction without an explanation | Issuer |
10006 | General error | The card issuer has declined the transaction as there is a problem with the card number | Issuer |
10007 | Pick up card, special condition (fraud account) | This usually means the customer’s bank has stopped the transaction because the card has been marked as fraudulent | Issuer |
10012 | Invalid transaction | The bank has declined the transaction because of an invalid format or field. This indicates the card details were incorrect | Issuer |
10013 | Invalid amount | The card issuer has declined the transaction because of an invalid format or field | System |
10014 | Invalid card number | The card issuer has declined the transaction as the credit card number is incorrectly entered or does not exist | User |
10015 | Invalid issuer | The card issuer doesn't exist | System |
10030 | Format error | The card issuer does not recognise the transaction details being entered. This is due to a format error | System |
10039 | No credit account | The issuer has declined the transaction as the card number used is not a credit account | Issuer |
10041 | Lost card | The card issuer has declined the transaction as the card has been reported lost | Issuer |
10043 | Stolen card | The card has been designated as lost or stolen | User |
10046 | Closed Account | The transaction has been refused as the account is closed | Issuer |
10051 | Insufficient funds | The card has insufficient funds to cover the cost of the transaction | Issuer |
10052 | No checking account | The issuer has declined the transaction as the credit card number is associated to a checking account that does not exist | Issuer |
10053 | No savings account | The issuer has declined the transaction as the credit card number is associated to a savings account that does not exist | Issuer |
10054 | Expired card | The payment gateway declined the transaction because the expiration date is expired or does not match | User |
10057 | Function not permitted to cardholder | The card issuer has declined the transaction as the credit card cannot be used for this type of transaction | Issuer |
10058 | Function not permitted to terminal | The card issuer has declined the transaction as the credit card cannot be used for this type of transaction | Issuer |
10059 | Suspected Fraud | The issuing bank has declined the transaction as a result of suspected fraud | Issuer |
10061 | Withdrawal limit exceeded | Exceeds withdrawal amount limit | Issuer |
10062 | Restricted card | The customer's bank has declined their card | Issuer |
10063 | Issuer response security violation | Flag raised due to security validation problem | Issuer |
10065 | Soft decline | The issuer requests Strong Customer Authentication. The merchant should retry the transaction after successfully authenticating customer with 3DS first | Issuer |
10070 | Call issuer | Contact card issuer | Issuer |
10075 | PIN entry tries exceeded | Allowable number of PIN tries exceeded | User |
10076 | Invalid / non-existent "to account" specified | An invalid or non-existent "to" account has been specified | System |
10077 | Invalid / non-existent "from account" specified | An invalid or non-existent "from" account has been specified | Issuer |
10079 | Life Cycle | Issuer response: 'Life Cycle' issue | Issuer |
10080 | No financial impact | This is usually returned when a reversal is sent for an authorization message that was already declined | Issuer |
10083 | Fraud/Security | Issuer response: 'Fraud/Security' issue | Issuer |
10084 | Invalid Authorization Life Cycle | Issuer response: 'Invalid Authorization Life Cycle' issue | Issuer |
10088 | Cryptographic failure | Issuer response: 'Cryptographic failure' issue | Issuer |
10089 | Unacceptable PIN - Transaction Declined - Retry | The entered PIN code was incorrect | Issuer |
10093 | Transaction cannot be completed; violation of law | The issuing bank has recognised (or has been informed of) a legal violation on the part of the credit card user, and assets have been frozen | Issuer |
10096 | System malfunction | A temporary error occurred during the transaction | System |
10200 | Generic error | A temporary error occurred during the transaction | System |
10210 | Invalid CVV | The CVV2 code entered is incorrect | Issuer |
10211 | Negative Online CAM, dCVV, iCVV, CVV, or CAVV results or Offline PIN Authentication | Issuer response: 'Negative Online CAM, dCVV, iCVV, CVV, or CAVV results or Offline PIN Authentication' issue | Issuer |
10212 | Blocked Card | Transaction from new cardholder, and card not properly unblocked | Issuer |
10213 | Revocation of authorization order | The cardholder has revoked authorisation for future payments to a particular merchant | Issuer |
10214 | Verification Data Failed | Issuer response: 'Verification Data Failed' issue | Issuer |
10215 | Policy | The transaction has been refused due to a policy reason | Issuer |
10216 | Invalid/nonexistent account specified (general | The issuing bank of the credit card could not find an account for the card | Issuer |
10301 | Soft decline | The issuer requests Strong Customer Authentication. The merchant should retry the transaction after successfully authenticating customer with 3DS first | Issuer |
Electronic Commerce Indicator
The Electronic Commerce Indicator (ECI) is a code appended to the Redirect (Success/Failure) URL as a query string parameter in addition to Event ID
(above). The following values are possible:
ECI code | Meaning |
---|---|
0 | Unspecified |
1 | Authenticated |
2 | No 3DS |
3 | Attempt or not enrolled |
Transaction feedback parameters
When receiving information about a transaction via the call of an API method, certain transaction feedback parameters are returned in the response. In particular, the StatusId
parameter is used to return information relating to payment success or failure, while the TransactionTypeId
parameter is used to return information about the type of the transaction.
StatusId parameter
The result of a transaction is identified by the StatusId
parameter in the response body. It applies to the following:
- Retrieve transaction API call
- Create transaction API call
- Cancel transaction API call
- Webhooks for payments
This parameter can have any one of the values outlined in the table below:
StatusId | Description |
---|---|
F | The transaction has been completed successfully (PAYMENT SUCCESSFUL) |
A | The transaction is in progress (PAYMENT PENDING) |
C | The transaction has been captured (the C status refers to the original pre-auth transaction which has now been captured; the capture will be a separate transaction with status F) |
E | The transaction was not completed successfully (PAYMENT UNSUCCESSFUL) |
R | The transaction has been fully or partially refunded |
X | The transaction was cancelled by the merchant |
M | The cardholder has disputed the transaction with the issuing Bank |
MA | Dispute Awaiting Response |
MI | Dispute in Progress |
ML | A disputed transaction has been refunded (Dispute Lost) |
MW | Dispute Won |
MS | Suspected Dispute |
TransactionTypeId parameter
The transaction type is identified by the TransactionTypeId
parameter returned in the response body. It applies to the following:
TransactionTypeId | Description |
---|---|
0 | Card capture |
1 | Card pre-auth |
4 | Card refund 1 - including MobilePay Online |
5 | Card charge - including MobilePay Online |
6 | Card charge (installments) |
7 | Card void |
8 | Card Original Credit (refund, betting MCC only) 1 |
9 | Viva Wallet charge |
11 | Viva Wallet refund |
13 | Card refund claimed |
15 | Dias |
16 | Cash |
17 | Cash refund |
18 | Card refund (installments) 1 |
19 | Card payout |
20 | Alipay charge |
21 | Alipay refund |
22 | Card manual cash disbursement |
23 | iDEAL charge |
24 | iDEAL refund |
25 | P24 charge |
26 | P24 refund |
27 | BLIK charge |
28 | BLIK refund |
29 | PayU charge |
30 | PayU refund |
31 | Card withdrawal |
37 | Sofort refund |
38 | EPS charge |
39 | EPS refund |
40 | WeChat Pay charge |
41 | WeChat Pay refund |
42 | BitPay charge |
48 | PayPal charge |
49 | PayPal refund |
50 | Trustly charge |
51 | Trustly refund |
52 | Klarna charge |
53 | Klarna refund |
54 | MB WAY charge |
55 | MB WAY refund |
56 | Multibanco charge |
57 | Multibanco refund |
58 | Payconiq charge |
59 | Payconiq refund | 60 | IRIS charge |
61 | IRIS refund |
62 | Pay By Bank charge |
63 | Pay By Bank refund |
64 | BANCOMAT Pay charge |
65 | BANCOMAT Pay refund |
66 | tbi bank charge |
67 | tbi bank refund |
68 | Pay on Delivery charge |
69 | Card Verification |
70 | Swish charge |
71 | Swish refund |
74 | Bluecode charge |
75 | Bluecode refund |
78 | Satispay charge |
79 | Satispay refund |
80 | Klarna pre-auth |
81 | Klarna capture |
1 Transactions which reverse previous payments will always have a negative amount.
HTTP response codes
Viva uses conventional HTTP response codes to indicate the success or failure of an API request. In general, codes in the 200 range indicate success, while 400 codes indicate a client-side error, and 500 codes indicate an error with Viva’s servers. You may occasionally refer to the HTTP response code to determine whether the API call has been completed successfully.
Response code | Meaning | Message |
---|---|---|
200 | OK | The request has succeeded. The meaning of the success depends on the HTTP method:
|
400 | Bad request | The server could not understand the request due to invalid syntax |
401 | Unauthorized | Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response |
403 | Forbidden | The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401, the client's identity is known to the server |
404 | Not found | The server cannot find requested resource. In the browser, this means the URL is not recognized. In an API, this can also mean that the endpoint is valid but the resource itself does not exist |
405 | Method not allowed | The request method is known by the server but has been disabled and cannot be used |
406 | Not acceptable | You requested a format that isn't JSON |
409 | Conflict | This response is sent when a request conflicts with the current state of the server |
410 | Gone | This response is sent when the requested content has been permanently deleted from server, with no forwarding address |
429 | Too many requests | The user has sent too many requests in a given amount of time ('rate limiting') |
500, 502, 504 | Server error | Something went wrong at our end. Try again later |
503 | Service unavailable | We're temporarily offline for maintenance. Try again later |
PAN Entry Mode Enumeration
Entry Mode | Value |
---|---|
00 | PAN entry mode unknown |
1 | PAN manual entry (MOTO transaction) |
02 | PAN auto-entry via magnetic stripe — track data is not required |
03 | PAN auto-entry via bar code reader |
04 | PAN auto-entry via optical character reader (OCR) |
05 | PAN auto-entry via chip |
07 | PAN auto-entry via contactless M/Chip |
09 | PAN/Token entry via electronic commerce containing DSRP cryptogram |
80 | Chip card at chip-capable terminal was unable to process transaction using data on the chip |
81 | PAN/Token entry via electronic commerce with optional SecureCode-AAV |
82 | PAN Auto Entry via Server |
90 | PAN auto-entry via magnetic stripe - the full track data has been transmitted |
91 | PAN auto-entry via contactless magnetic stripe—the full track data has been transmitted |
95 | Visa only. Chip card with unreliable Card Verification Value (CVV) data |
Get Support
If you would like to integrate with Viva, or if you have any queries about our products and solutions, please see our Contact & Support page to see how we can help!