1. Changelog
Version | Date | Description |
---|---|---|
11.8 |
2024-10-18 |
New status E01643 - for some bin transaction with merchant country code and issuer country code is same is not permitted. New response code CODE_4F. |
11.7 |
2024-10-17 |
Added support for multiple refunds. New field "refunds" is added in the Transaction details method response, check the chapter for more details. |
11.6 |
2024-10-11 |
Added validation for the methodNotificationUrl field in the /client/3ds/preAuthentication method |
11.5 |
2024-09-20 |
Add SENT status for PayByBankAccount transaction type |
11.4 |
2024-08-29 |
Mock for Mastercard and Visa test cards have been added only for Staging env 2.6. Mock cards for test. |
11.3 |
2024-08-12 |
Allow to use tokenized cards in CoF and Recurring payments methods |
11.2 |
2024-08-10 |
'merchantUuid' field was added to Pre Authentication and Authentication methods. Field will be mandatory from 2025-01-01 'subMerchantName' field was added to Pre Authentication and Authentication in the purpose of Payment Facilitator support. Field is mandatory an should be used only when client mid is configured as a Payment Facilitator. The 'subMerchantCountry' was removed from Payment request methods. Field will be obtained based on the subMerchantName and mid configuration. |
11.1 |
2024-08-06 |
Change validation for firstName, lastName and cardholderName. Fields cannot start and end with whitespace characters. Full regular expressions may be found in every payment request (e.g. Payment) and 3DS Authentication requests. Requirements will apply from 2024-10-01 in production environment. |
11.0 |
2024-08-01 |
Change validation for 8.2. Authentication method. From August 12th Visa will officially require to provide one of these fields: cardholderEmail, cardholderMobilePhone, cardholderHomePhone or cardholderWorkPhone. Failure to provide this value may result in 3DS authentication rejections. As of September 2 Fenige will require to provide one of these values in every Authentication request for VISA. |
10.9 |
2024-07-08 |
The tokenize API implementation and deploy |
10.8 |
2024-07-01 |
New fields 'subMerchantName' in Payment request added. Field are mandatory when Payment Facilitator is set in the terminal configuration. |
10.7 |
2024-04-19 |
New status has been added: E13001 - Transaction rejected due to risk verification rejection. |
10.6 |
2024-04-18 |
Token payment support has been added to CoF Initial and Recurring Initial methods. |
10.5 |
2024-04-10 |
Added webhook : Acquirer reconciliation date webhook + Acquirer reconciliation date webhook |
10.4 |
2024-04-10 |
Added a new field in response: refundARN for method Details. |
10.3 |
2024-03-28 |
New regexp for houseNumber |
10.2 |
2024-03-25 |
Open banking payment release v1.0. |
10.1 |
2024-02-27 |
New response code to payment methods: E0211 - Returned when transaction is rejected, because card country is blocked in Fenige System. |
10.0 |
2023-01-25 |
New status E13000 - Transaction rejected, risk score exceeded. |
9.9 |
2023-11-20 |
Adding information about Merchant Advice Codes. Changes in check transaction status response - new field merchantAdviceCode. Occurs only for Mastercard and for declined transactions if Mastercard returns this information |
9.8 |
2023-10-27 |
Complete end of support for 3ds version 1.0 |
9.7 |
2023-06-30 |
Add new optional fields to request in payment methods: street, houseNumber, city, postalCode, province. |
9.6 |
2023-06-28 |
Added new optional field: authMethod and tokenType for method Token payment. |
9.5 |
2023-05-11 |
Deleted noCurrencyConversion field for payment methods. |
9.4 |
2023-03-21 |
Added new optional fields for method /client/3ds/authentication regarding Cardholder Billing Card Information |
9.3 |
2023-03-06 |
Added new optional field: phoneNumber to Recurring Initial, CoF Initial and Account status inquiry requests. New API status: E01607 - Transaction rejected, internal server error during authorization request generation added to all payment responses. |
9.2 |
2023-01-30 |
Bugfix (adaptation to documentation) - make 3DS mandatory for 5.9.1 Recurring Payment - initial transaction |
9.1 |
2022-12-16 |
New error status: E01606 - Transaction rejected, country of residence is not permitted |
9.0 |
2020-12-15 |
New transaction status, min amount limit per terminal (E01605) + 2.6.4. Payment |
8.9 |
2022-11-24 |
New field on payment method - country of residence required for merchants crypto |
8.8 |
2022-10-20 |
PENDING prevent feature released, more information here: 6.4. Payment + 6.4. Payment |
8.7 |
2022-10-26 |
Removal from use 3DS 1 for all countries (except those configured in the system) |
8.6 |
2022-10-24 |
Adding information about the withdrawal of 3DSv1. |
8.5 |
2022-09-28 |
First BLIK release. New response codes to blik methods: E0164, E0165, E0166, E0167, E0189, E00180, E9800 |
8.4 |
2022-09-16 |
New terminal limits added: + E10000 Transaction rejected, terminal daily card transaction limit exceeded, + E10001 Transaction rejected, terminal daily transaction limit, + E10002 Transaction rejected, terminal monthly transaction limit exceeded, + 2.6.4. Payment |
8.3 |
2022-08-29 |
New API fields in authorization response - cardBlockadeAdditionalData.blockType, cardBlockadeAdditionalData.blockedUntil present when transaction was rejected because card was blocked. Example response is available in authorize response sections. |
8.2 |
2022-08-22 |
New fields on payment method - there are data address sender required for crypto or wallet |
8.1 |
2022-08-01 |
New response fields on 3DS 2.X Response: 'errorCode', 'errorCodeDetails', Request: challengeWindowSize |
8.0 |
2022-05-05 |
New response codes to payment methods: E209 - sender name contains fraudulent phrase, E0210 - Transaction rejected, suspicious sender name |
7.9 |
2022-04-08 |
New response fields to transaction details method added: terminalSettlementCurrency, amountInTerminalSettlementCurrency, commissionFenigeInTerminalSettlementCurrency |
7.8 |
2022-03-21 |
Monitoring status added (E0208) 2.7.9. Monitoring |
7.7 |
2021-03-18 |
New API method: Payment JWE. New response statuses: E8009, E8010. E8011. |
7.6 |
2022-03-11 |
Remove Terminal/Merchant management from Fenige Ecommerce API |
7.5 |
2022-03-01 |
Monitoring status added (E0207) 2.7.9. Monitoring |
7.4 |
2021-12-30 |
New transaction status defined for terminal based restricted transaction amounts (E0159) + 6.4 Payments |
7.3 |
2021-12-17 |
New transaction status added (E01602) for all transactions type to indicate blocked transaction in specific geographic scope + 6.10 Details |
7.2 |
2021-12-16 |
Added responseCode - new field in Payment API - Reversal error response (422 UNPROCESSABLE ENTITY with status E0161). |
7.1 |
2021-12-06 |
Updated validation for purchaseAmount in Authentication request in 3DS 2.X verification methods |
7.0 |
2021-11-22 |
Add new response code(E01584, E01585) and change validation for outside3ds.eci |
6.9 |
2021-11-04 |
Add noCurrencyConversion field for payment methods. For more information please refer to 6.4 Payments |
6.8 |
2021-10-26 |
New transaction status added (E01596) for installment payment performed using terminal restricted card country + 6.9. Installment Payment |
6.7 |
2021-10-19 |
Added new optional field 'receiverAmount' in payment methods |
6.6 |
2021-10-18 |
Added description of the use case of the Google pay method. |
6.5 |
2021-10-14 |
Added new types: DOMESTIC_PL, INTRA_EU, INTER to geographicScope field in 6.10 Details |
6.4 |
2021-08-17 |
New error status: E01601 - terminal is blocked for provider |
6.3 |
2021-06-09 |
Added Payment API field 'transactionRef' for determining merchant additional transaction identifier |
6.2 |
2021-05-18 |
New filed on 3DS 1.0 Initialize method to process Token PAN transaction |
6.1 |
2021-05-05 |
An implementation of CODE_65(Mastercard)/CODE_1A(Visa) transaction rejection logic for MASTERCARD and VISA. More details can be found here: 6.4 Payments |
6.0 |
2021-04-19 |
New error status: E01600 in response for 3DS 2.X payment method |
5.9 |
2021-04-09 |
Added card Id support from Datacenter for methods with 3ds 2.x/3ds 1.0 |
5.8 |
2021-04-09 |
Monitoring status added (E0206) 2.7.9. Monitoring |
5.7 |
2021-04-01 |
Introduction of a new webhook functionality. Now it is possible to handle information about transaction status without polling API. 9. Webhooks |
5.6 |
2021-03-10 |
Remove status E01595 and allow processing of all types of payment transactions using quasi-cash terminals |
5.5 |
2021-01-20 |
Internal functionality to restrict access to specific method for PSP. |
5.4 |
2021-01-18 |
New field 'terminalUrl' in Ecommerce Payment requests added. The field is optional now, but it is recommended to include it in your request body. From 2021-05-03 the 'terminalUrl' and 'addressIp' fields will be required. |
5.3 |
2021-01-15 |
Update for 3DS 1.0 Add merchantUuid for verify and initialize method. Optional fields to get merchant configuration. |
5.2 |
2021-01-01 |
New status E8004 for Clearing and Reversal method. Locks the method call until the ongoing task for a given Request Uuid is completed. |
5.1 |
2020-12-30 |
Update for 3DS 2.X |
5.0 |
2020-12-06 |
DataCenter card transaction functionality release for Payment API methods + 6.4. Payment + 6.5. MO/TO payment + 6.6. Token payment + 6.7. CoF payment + 6.8. Recurring payment + 6.9. Installment Payment |
4.12 |
2020-11-20 |
Cards management methods added 5. Cards |
4.11 |
2020-11-17 |
3DS version enforcement configuration |
4.10 |
2020-11-06 |
Change in outside 3DS, authentication status required Y or A value |
4.9 |
2020-11-06 |
Add Installment Payment API methods 5.10. Installment Payment |
4.8 |
2020-10-26 |
New transaction status added (E01596) for transactions performed using terminal restricted card country + 5.5. Payment + 5.6. MO/TO payment + 5.7. Token payment + 5.7. CoF payment + 5.7. Recurring payment |
4.7 |
2020-09-23 |
Add new VISA response code value 80 |
4.6 |
2020-09-16 |
Add new fields in details: authorizeRRN, authorizeStan, reversalRRN, reversalStan, arn |
4.5 |
2020-09-1 |
Add new method Currency for card 5.3. Currency for card |
4.4 |
2020-09-1 |
Add new method MO/TO payment 5.6. MO/TO Payment |
4.3 |
2020-08-28 |
Add new response status E01595 - Returned when terminal MCC configuration is QUASI-CASH. |
4.2 |
2020-07-23 |
Add new response status E0187 during refund processing to notify that chargeback was reported for transaction |
4.1 |
2020-07-09 |
|
4.0 |
2020-07-01 |
New method "Card Provider" added |
3.9 |
2020-06-30 |
Update Mastercard statuses table |
3.8 |
2020-06-18 |
Response status E0141 replaced with E0190 when currency rate cannot be found |
3.7 |
2020-06-10 |
Documentation updated. Currency Rate method will be deprecated on 30.09.2020 and will be replaced by a new version of the Currency Rate method. 5.2. Currency Rate |
3.6 |
2020-06-08 |
New status E0163 added + 2.6.6. Reversal |
3.5 |
2020-06-05 |
Documentation updated. Change value and description about field "md" in Initialize and Finalize methods: + 6.2. Initialize + 6.3. Finalize |
3.4 |
2020-05-13 |
New reversal status (S0005, S0006) and changed response + 5.11.2 Reversal - response |
3.3 |
2020-04-27 |
Release API with Recurring Payments functionality + 5.9.1 Recurring Payment - initial transaction + 5.9.4 Recurring Payment - subsequent transaction |
3.2 |
2020-03-26 |
Release API with Credential on File (CoF) functionality + 5.8.1 Cof payment - initial transaction + 5.8.4 Cof payment - subsequent transaction |
3.1 |
2020-03-05 |
Monitoring status added (E0205) + 2.6.8. Monitoring + 5.5. Payment + 5.7. Token payment |
3.0 |
2020-03-04 |
Removed commission and merchantCommission from transaction details response body. |
2.9 |
2020-03-02 |
ERROR_MPI_CONNECTION status is replaced by the following statuses: Error mpi - 3ds initialize failed Error mpi connection - the change will be available on production from 12.03.2020. |
2.8 |
2020-02-28 |
3DS Verification method + 6. 3DS 1.0 verification methods - the change will be available on production from 12.03.2020. |
2.7 |
2020-02-24 |
Outside 3DS transactions documentation added + 5.2. Payment - request |
2.6 |
2020-02-18 |
Deleted refund status (S0012, S0013), changed refund status (E0184) and added new status (E0186) to refund. Changed response status for refund (2.6.7) + 2.6.7. Refund |
2.5 |
2020-01-31 |
Information about certification process added |
2.4 |
2020-01-30 |
New transaction status, amount limit per terminal (E0158) + 2.6.4. Payment |
2.3 |
2019-11-26 |
Monitoring status added (E0204) + 2.6.8. Monitoring |
2.2 |
2019-11-15 |
Monitoring status added (E0203) + 2.6.8. Monitoring |
2.1 |
2019-09-26 |
Monitoring statuses added + 2.6.8. Monitoring |
2.0 |
2019-09-23 |
New payment method with token description added |
1.9 |
2019-09-10 |
A flow diagrams updated |
1.8 |
2019-07-18 |
Clearing amount field has been added to the details method |
1.7 |
2019-05-10 |
Methods descriptions modified and statuses description improved |
1.6 |
2019-04-25 |
Endpoint (base url) changed to https://ecom-staging.fenige.pl |
1.5 |
2019-03-20 |
Fields validation changes |
1.4 |
2019-02-04 |
Optional IP address field added in transaction request body |
1.3 |
2019-01-16 |
Fields validation changes |
1.2 |
2018-12-18 |
Documentation update |
1.1 |
2018-11-13 |
Partial clearing method describe added |
1.0 |
2018-10-01 |
First release of documentation |
2. Introduction
Fenige e-commerce API service allows to easily and safely perform operations realated to e-commerce. You can authorize payments and show details about completed transactions. Also you can make reversals, clearings and refunds. |
Transaction process: |
---|
1. Fenige registers the PSP, Merchants and Terminals in his system. |
2. The Partner can use all available methods in the API. |
2.1. Endpoints
Environment | Endpoint (base url) |
---|---|
Staging |
2.2. HTTP verbs
RESTful notes tries to adhere as closely as possible to standard HTTP and REST conventions in its use of HTTP verbs.
Verb | Usage |
---|---|
|
Used to retrieve a resource |
|
Used to create a new resource |
|
Used to update specific resource |
|
Used to delete a resource |
2.3. Language
If you want to select your language, add Accept-Language header to request JSON and set its value to, for example, pl, en, cs or sk. In case of a successful transaction for the send money method you will receive a email confirmation in the language which you set.
Accept-Language |
en |
2.4. General methods
All api methods require the delivery of appropriate headers.
List of methods headers used in Fenige REST API:
Key | Value | Validation | Description |
---|---|---|---|
|
application/json |
Required |
Used to indicate the media type of the resource |
|
Basic cHNwbmFtZTpwYXNzd29yZA== |
Required |
Used to resolve PSP context of user. Basic Auth from PSP data (PSP name and password). Consist of keyword Basic and string obtained from Base64 coding method for PSP name and password parameter |
2.5. HTTP status codes
RESTful notes tries to adhere as closely as possible to standard HTTP and REST conventions in its use of HTTP status codes.
Status code | Usage |
---|---|
|
The request completed successfully |
|
The request has been accepted for processing, but the processing has not been completed. The request might or might not eventually be acted upon, as it might be disallowed when processing actually takes place. |
|
The request was malformed. The response body will include an error providing further information |
|
The requested resource did not exist |
|
Message occur when an unexpected condition was encountered |
2.5.1. Currency rate
Code | Messages | HTTP Code | HTTP STATUS |
---|---|---|---|
E0190 |
Failed to get currency rates |
500 |
INTERNAL_SERVER_ERROR |
2.5.2. Currency for card
Code | Messages | HTTP Code | HTTP STATUS |
---|---|---|---|
E0400 |
Failed to get currency for card |
500 |
INTERNAL_SERVER_ERROR |
E0401 |
Issuer card is not supported |
422 |
UNPROCESSABLE_ENTITY |
2.5.3. Payment
Code | Messages | HTTP Code | HTTP STATUS |
---|---|---|---|
S0000 |
SUCCESS |
200 |
OK |
S0001 |
SUCCESS |
204 |
NO CONTENT |
S0002 |
Success transaction |
200 |
OK |
S0003 |
Transaction declined, check response code for reason |
200 |
OK |
S0004 |
PENDING |
202 |
ACCEPTED |
E0150 |
Transaction rejected |
422 |
UNPROCESSABLE ENTITY |
E0151 |
Transaction rejected, currency not supported |
422 |
UNPROCESSABLE ENTITY |
E0152 |
Transaction rejected, issuer not supported |
422 |
UNPROCESSABLE ENTITY |
E0153 |
Transaction declined, problem with MIP connection |
500 |
INTERNAL SERVER ERROR |
E0154 |
Failed to fetch transaction details |
500 |
INTERNAL SERVER ERROR |
E0155 |
Transaction not exist |
404 |
NOT FOUND |
E0156 |
Transaction rejected, terminal not supported 3ds |
422 |
UNPROCESSABLE ENTITY |
E0157 |
Transaction rejected, card not supported 3ds |
422 |
UNPROCESSABLE ENTITY |
E0158 |
Transaction rejected, maximum transaction amount limit exceeded |
422 |
UNPROCESSABLE ENTITY |
E01605 |
Transaction rejected, minimum transaction amount limit exceeded |
422 |
UNPROCESSABLE ENTITY |
E01607 |
Transaction rejected, internal server error during authorization |
422 |
UNPROCESSABLE ENTITY |
E0159 |
Transaction rejected, restricted transaction amount has occurred |
422 |
UNPROCESSABLE ENTITY |
E8009 |
Merchant RSA keys not found |
404 |
NOT FOUND |
E8010 |
Merchant RSA key expired |
422 |
UNPROCESSABLE ENTITY |
E8011 |
Internal error during card decrypting |
500 |
INTERNAL SERVER ERROR |
E01580 |
Transaction rejected. Card is expired. |
422 |
UNPROCESSABLE ENTITY |
E01581 |
Transaction rejected. Not found Card Authentication (3DS 2.X) |
422 |
UNPROCESSABLE ENTITY |
E01582 |
Transaction rejected. Card Authentication not match to transaction type (3DS 2.X) |
422 |
UNPROCESSABLE ENTITY |
E01583 |
Transaction rejected. Outside 3ds is required for terminal |
422 |
UNPROCESSABLE ENTITY |
E01584 |
Transaction rejected, 3DS 2.X flow invoked for other card number than specified in the request |
422 |
UNPROCESSABLE ENTITY |
E01585 |
Transaction rejected, Outside 3ds values are not valid for Card Authentication. |
422 |
UNPROCESSABLE ENTITY |
E01590 |
Transaction rejected, cof card not found in db |
422 |
UNPROCESSABLE ENTITY |
E01591 |
Transaction rejected, initial cof transaction not approved |
422 |
UNPROCESSABLE ENTITY |
E01592 |
Transaction rejected, recurring card not found in db |
422 |
UNPROCESSABLE ENTITY |
E01593 |
Transaction rejected, initial recurring transaction not approved |
422 |
UNPROCESSABLE ENTITY |
E01594 |
Transaction rejected, transactionXId parameter had registered for another transaction |
422 |
UNPROCESSABLE ENTITY |
E01596 |
Transaction rejected, terminal blocks transactions with card issued in given card country |
422 |
UNPROCESSABLE ENTITY |
E01597 |
Transaction rejected, 3DS version of terminal are not compatible with 3DS version defined in request |
422 |
UNPROCESSABLE ENTITY |
E01598 |
Transaction rejected, ECI value is not available for card provider |
422 |
UNPROCESSABLE ENTITY |
E01599 |
Transaction declined, processing timeout |
500 |
INTERNAL_SERVER_ERROR |
E01600 |
Transaction rejected, 3DS 2.X flow invoked for other card number than specified in the request |
422 |
UNPROCESSABLE ENTITY |
E01601 |
Transaction rejected, terminal is blocked for provider |
422 |
UNPROCESSABLE ENTITY |
E01602 |
Transaction rejected, geographic scope is not permitted for this transaction |
422 |
UNPROCESSABLE ENTITY |
E01603 |
Transaction rejected, Transactions without 3ds above 30 EUR (the blockade applies only to EU countries) |
422 |
UNPROCESSABLE ENTITY |
E01604 |
Transaction rejected, transactions 3DS 1.X not supported for given country |
422 |
UNPROCESSABLE ENTITY |
E01606 |
Transaction rejected, country of residence is not permitted |
422 |
UNPROCESSABLE ENTITY |
E01642 |
Error receiver amount is mandatory for terminal |
422 |
UNPROCESSABLE ENTITY |
E01643 |
Error domestic transaction not permitted for card |
422 |
UNPROCESSABLE ENTITY |
E10000 |
Transaction rejected, terminal daily card transaction limit exceeded |
422 |
UNPROCESSABLE ENTITY |
E10001 |
Transaction rejected, terminal daily transaction limit exceeded |
422 |
UNPROCESSABLE ENTITY |
E10002 |
Transaction rejected, terminal monthly transaction limit exceeded |
422 |
UNPROCESSABLE ENTITY |
E11000 |
Transaction rejected, time for transaction processing exceeded |
422 |
UNPROCESSABLE ENTITY |
E05000 |
Installment Payment initial not found |
500 |
INTERNAL SERVER ERROR |
E05001 |
Installment Payment already confirmed |
500 |
INTERNAL SERVER ERROR |
E05002 |
Installment Payment already cancelleded |
500 |
INTERNAL SERVER ERROR |
E05003 |
Installment Payment already pay in full |
500 |
INTERNAL SERVER ERROR |
E05004 |
Installment Payment not confirmed in required time |
500 |
INTERNAL SERVER ERROR |
E05005 |
Installment Payment Initial was failed |
500 |
INTERNAL SERVER ERROR |
E05006 |
Installment Payment could not find valid installment plan for requested uuid |
500 |
INTERNAL SERVER ERROR |
E05007 |
Installment Payment Option not allowed for transaction |
500 |
INTERNAL SERVER ERROR |
E05008 |
Installment Payment missing plan uuid |
500 |
INTERNAL SERVER ERROR |
E05009 |
Installment Payment missing request number of installments |
500 |
INTERNAL SERVER ERROR |
E05010 |
Installment Payment requested number of installments is outside of allowed range |
500 |
INTERNAL SERVER ERROR |
E05011 |
Installment Payment operation not allowed, installment type allows ISSUER_FINANCED installments |
500 |
INTERNAL SERVER ERROR |
E05014 |
Installment Payment outside 3ds request is required for terminal |
500 |
INTERNAL SERVER ERROR |
E05015 |
Installment Payment unsupported card provider VISA |
500 |
INTERNAL SERVER ERROR |
2.5.4. Clearing
Code | Messages | HTTP Code | HTTP STATUS |
---|---|---|---|
E0170 |
Clearing of the payment is procesing |
422 |
UNPROCESSABLE ENTITY |
E0171 |
Can’t clear payment |
422 |
UNPROCESSABLE ENTITY |
E0172 |
Can’t clear payment, the time is over |
422 |
UNPROCESSABLE ENTITY |
E0173 |
Payment is automatically cleared |
422 |
UNPROCESSABLE ENTITY |
E0174 |
Payment is already cleared |
422 |
UNPROCESSABLE ENTITY |
E0175 |
Can’t clear payment, clearing amount is to low |
503 |
UNPROCESSABLE ENTITY |
E0176 |
Can’t clear payment, clearing amount is to high |
503 |
UNPROCESSABLE ENTITY |
2.5.5. Reversal
Code | Messages | HTTP Code | HTTP STATUS |
---|---|---|---|
S0005 |
Success reverse transaction |
200 |
OK |
S0006 |
Reverse transaction declined, check response code for reason |
200 |
OK |
E0160 |
Reversal of the payment is procesing |
422 |
UNPROCESSABLE ENTITY |
E0161 |
Can’t reversal payment |
422 |
UNPROCESSABLE ENTITY |
E0162 |
Payment is already reversed |
422 |
UNPROCESSABLE ENTITY |
E0163 |
Payment is already refunded |
422 |
UNPROCESSABLE ENTITY |
E05012 |
Installment Payment reverse not allowed |
500 |
INTERNAL SERVER ERROR |
2.5.6. Refund
Code | Messages | HTTP Code | HTTP STATUS |
---|---|---|---|
E0180 |
Refund rejected, no MC/VISA response |
500 |
INTERNAL SERVER ERROR |
E0181 |
Refund rejected by MC/VISA |
500 |
INTERNAL SERVER ERROR |
E0182 |
Refund transaction amount to low |
400 |
BAD REQUEST |
E0183 |
Refund transaction amount to high |
400 |
BAD REQUEST |
E0184 |
Transaction is refunded |
422 |
UNPROCESSABLE ENTITY |
E0185 |
Transaction not cleared, can’t refund |
422 |
UNPROCESSABLE ENTITY |
E0186 |
Refund is already processing |
422 |
UNPROCESSABLE ENTITY |
E0187 |
Transaction is chargeback reported |
422 |
UNPROCESSABLE ENTITY |
E05013 |
Installment Payment refund not allowed |
500 |
INTERNAL SERVER ERROR |
2.5.7. Monitoring
Code | Messages | HTTP Code | HTTP STATUS |
---|---|---|---|
E0200 |
Transaction rejected, card is blocked |
422 |
UNPROCESSABLE ENTITY |
E0201 |
Transaction rejected, bin is blocked |
422 |
UNPROCESSABLE ENTITY |
E0202 |
Transaction rejected, terminal is blocked |
422 |
UNPROCESSABLE ENTITY |
E0203 |
Transaction rejected, token is blocked |
422 |
UNPROCESSABLE ENTITY |
E0204 |
Transaction rejected, user is on aml list |
422 |
UNPROCESSABLE ENTITY |
E0205 |
Transaction rejected, bank is blocked |
422 |
UNPROCESSABLE ENTITY |
E0206 |
Transaction rejected, to many reject transactions and card is blocked |
422 |
UNPROCESSABLE ENTITY |
E0207 |
Transaction rejected, to many attempts declined and card is blocked |
422 |
UNPROCESSABLE ENTITY |
E0208 |
Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days |
422 |
UNPROCESSABLE ENTITY |
E0209 |
Returned when sender or receiver name contains fraudulent phrase |
422 |
UNPROCESSABLE ENTITY |
E0210 |
Returned when sender has suspicious name |
422 |
UNPROCESSABLE ENTITY |
E0211 |
Returned when transaction is rejected, because card country is blocked in Fenige System. |
422 |
UNPROCESSABLE ENTITY |
2.5.8. 3DS 2.X
Code | Messages | HTTP Code | HTTP STATUS |
---|---|---|---|
S0000 |
SUCCESS |
200 |
OK |
E0300 |
Error mpi V2 - failed internal |
500 |
INTERNAL_SERVER_ERROR |
E0301 |
Three DS Method Data mismatch |
422 |
UNPROCESSABLE_ENTITY |
E0302 |
Error on parsing Three DS Method Data |
422 |
UNPROCESSABLE_ENTITY |
E0303 |
Card number not Enrolled in 3DS v2 |
422 |
UNPROCESSABLE_ENTITY |
E0304 |
Invalid card authentication id |
422 |
UNPROCESSABLE_ENTITY |
E0305 |
Issuer card is not supported |
422 |
UNPROCESSABLE_ENTITY |
E0306 |
Invalid card number |
422 |
UNPROCESSABLE_ENTITY |
E0307 |
Card Authentication not found |
404 |
NOT_FOUND |
E0132 |
Terminal not exists |
404 |
NOT_FOUND |
E0309 |
Protocol version is not supported |
422 |
UNPROCESSABLE_ENTITY |
E0310 |
Invalid Three DS Method Data |
422 |
UNPROCESSABLE_ENTITY |
E0311 |
Google Pay token payment with PAN_ONLY authMethod parameter - 3DS is required |
422 |
UNPROCESSABLE_ENTITY |
2.5.9. 3DS 2.X more details Error Code
Code | Description |
---|---|
E1001 |
Three DS Method Data mismatch |
E1002 |
Error on parsing Three DS Method Data |
E1003 |
Card number not Enrolled in 3DS v2 |
E1004 |
Read file exception |
E1005 |
Invalid card authentication id |
E1006 |
Issuer card is not supported |
E1007 |
Can not fetch provider configuration |
E1008 |
Invalid card number |
E1009 |
Card Authentication not found |
E1010 |
Protocol version is not supported |
E1011 |
Protocol version is not supported |
E601 |
Could not create ephemeral key. |
E602 |
Invalid certificate. |
E603 |
Invalid operation. |
E604 |
Invalid ClientAuth data. |
E605 |
The errorCode element in Error message is invalid. |
E606 |
Invalid index. |
E700 |
Unknown host exception. |
E1101 |
Protocol error. Received invalid message. |
E1102 |
Protocol error. Invalid message version. |
E1201 |
Protocol error. Missing data element. |
E1202 |
Protocol error. Unrecognized critical extension. |
E1203 |
Data element value is invalid. |
E1204 |
Duplicate Data Element. |
E1286 |
Error while sending to DS. |
E1301 |
Protocol error. Unrecognized transaction Id. |
E1302 |
Decryption failed. |
E1303 |
Access Denied, Invalid Endpoint |
E1304 |
ISO Code Invalid. |
E1305 |
Transaction Data Not Valid. |
E1306 |
MCC Not Valid for Payment System. |
E1307 |
Serial Number Not Valid. |
E1402 |
Transaction Timed Out. |
E1403 |
Transient System Failure. |
E1404 |
Permanent system failure. |
E1405 |
System Connection Failure. |
E118 |
Firewall Error. Error description contains detailed message. |
E143 |
Busy executing current method. |
E151 |
HTTP protocol error. The error message has the server response. |
E152 |
No server specified in URL |
E153 |
Specified URLScheme is invalid. |
E155 |
Range operation is not supported by server. |
E156 |
Invalid cookie index (out of range). |
E301 |
Interrupted. |
E302 |
Can’t open AttachedFile. |
E100 |
You cannot change the RemotePort at this time. A connection is in progress. |
E101 |
You cannot change the RemoteHost (Server) at this time. A connection is in progress. |
E102 |
The RemoteHost address is invalid (X.X.X.X). |
E104 |
Already connected. If you want to reconnect, close the current connection first. |
E106 |
You cannot change the LocalPort at this time. A connection is in progress. |
E107 |
You cannot change the LocalHost at this time. A connection is in progress. |
E112 |
You cannot change MaxLineLength at this time. A connection is in progress. |
E116 |
RemotePort cannot be zero. Please specify a valid service port number. |
E117 |
Cannot change UseConnection option while the bean is Active. |
E135 |
Operation would block. |
E201 |
Timeout. |
E211 |
Action impossible in control’s present state. |
E212 |
Action impossible while not connected. |
E213 |
Action impossible while listening. |
E303 |
Could not open file. |
E434 |
Unable to convert string to selected CodePage |
E1105 |
Already connecting. If you want to reconnect, close the current connection first. |
E1117 |
You need to connect first. |
E1119 |
You cannot change the LocalHost at this time. A connection is in progress. |
E1120 |
Connection dropped by remote host. |
E270 |
Cannot load specified security library. |
E271 |
Cannot open certificate store. |
E272 |
Cannot find specified certificate. |
E273 |
Cannot acquire security credentials. |
E274 |
Cannot find certificate chain. |
E275 |
Cannot verify certificate chain. |
E276 |
Error during handshake. |
E280 |
Error verifying certificate. |
E281 |
Could not find client certificate. |
E282 |
Could not find server certificate. |
E283 |
Error encrypting data. |
E284 |
Error decrypting data. |
E10004 |
Interrupted system call. |
E10009 |
Bad file number. |
E10013 |
Access denied. |
E10014 |
Bad address. |
E10022 |
Invalid argument. |
E10024 |
Too many open files. |
E10035 |
Operation would block. |
E10036 |
Operation now in progress. |
E10037 |
Operation already in progress. |
E10038 |
Socket operation on non-socket. |
E10039 |
Destination address required. |
E10040 |
Message too long. |
E10041 |
Protocol wrong type for socket. |
E10042 |
Bad protocol option. |
E10043 |
Protocol not supported. |
E10044 |
Socket type not supported. |
E10045 |
Operation not supported on socket. |
E10046 |
Protocol family not supported. |
E10047 |
Address family not supported by protocol family. |
E10048 |
Address already in use. |
E10049 |
Can’t assign requested address. |
E10050 |
Network is down. |
E10051 |
Network is unreachable. |
E10052 |
Net dropped connection or reset. |
E10053 |
Software caused connection abort. |
E10054 |
Connection reset by peer. |
E10055 |
No buffer space available. |
E10056 |
Socket is already connected. |
E10057 |
Socket is not connected. |
E10058 |
Can’t send after socket shutdown. |
E10059 |
Too many references, can’t splice. |
E10060 |
Connection timed out. |
E10061 |
Connection refused. |
E10062 |
Too many levels of symbolic links. |
E10063 |
File name too long. |
E10064 |
Host is down. |
E10065 |
No route to host. |
E10066 |
Directory not empty |
E10067 |
Too many processes. |
E10068 |
Too many users. |
E10069 |
Disc Quota Exceeded. |
E10070 |
Stale NFS file handle. |
E10071 |
Too many levels of remote in path. |
E10091 |
Network subsystem is unavailable. |
E10092 |
WINSOCK DLL Version out of range. |
E10093 |
Winsock not loaded yet. |
E11001 |
Host not found. |
E11002 |
Non-authoritative 'Host not found' (try again or check DNS setup). |
E11003 |
Non-recoverable errors: FORMERR, REFUSED, NOTIMP. |
E11004 |
Valid name, no data record (check DNS setup). |
2.5.10. Global
Code | Messages | HTTP Code | HTTP STATUS |
---|---|---|---|
E8000 |
Bad Request |
400 |
BAD REQUEST |
E8001 |
Forbidden |
403 |
FORBIDDEN |
E8002 |
Unauthorized |
401 |
UNAUTHORIZED |
E8003 |
Scale of amount is different than the scale of currency |
422 |
UNPROCESSABLE ENTITY |
E8004 |
Some operation for this requestUuid is processing |
422 |
UNPROCESSABLE ENTITY |
2.5.11. Fatal Errors
Code | Messages | HTTP Code | HTTP STATUS |
---|---|---|---|
E9000 |
Domain error |
500 |
INTERNAL SERVER ERROR |
E9001 |
Error acquirer connection |
503 |
SERVICE UNAVAILABLE |
E9002 |
Error mpi connection |
503 |
SERVICE_UNAVAILABLE |
E9003 |
Error monitoring connection |
503 |
SERVICE_UNAVAILABLE |
E9010 |
Error data center connection |
503 |
SERVICE_UNAVAILABLE |
2.6. Mock cards for test
Here are test cards with a defined ResponseCode running only on the STAGING environment. Please note that these are just card ranges, you need to generate a valid card number that will be included in this card range (e.g. using any online generator that generates cards based on bin - first 6 digits).
Begin | End | RC | MAC |
---|---|---|---|
5117960000000000 |
5117968999999999 |
CODE_00 |
x |
5486000000000000 |
5486009999999999 |
CODE_05 |
x |
5402060000000000 |
5402069999999999 |
CODE_30 |
x |
5406603500000000 |
5406603599999999 |
CODE_05 |
03 |
Begin | End | RC |
---|---|---|
4400430000000000 |
4400430399999999 |
CODE_00 |
4444184330000000 |
4444184339999999 |
CODE_05 |
4444184320000000 |
4444184329999999 |
CODE_30 |
4444184310000000 |
4444184319999999 |
CODE_N7 |
2.7. Mastercard/VISA statuses
Status code | Usage |
---|---|
|
Approved or completed successfully |
|
Refer to card issuer |
|
Refer to card issuer’s special conditions |
|
Invalid merchant |
|
Pick up card (no fraud) |
|
Do not honor |
|
General error |
|
Pick up card, special condition (fraud account) |
|
Honor with ID |
|
Request in progress |
|
Approved for partial amount |
|
Approved (V.I.P) |
|
Invalid transaction |
|
Invalid amount |
|
Invalid account number (no such number) |
|
No such issuer |
|
Approved, update track 3 |
|
Customer cancellation |
|
Customer dispute |
|
Re-enter transaction |
|
Invalid response |
|
No action taken |
|
Suspected malfunction |
|
Unacceptable transaction fee |
|
File update not supported by receiver |
|
Unable to locate record in file |
|
Duplicate file update record, old record replaced |
|
File update field edit error |
|
File update file locked out |
|
File update not successful, contact acquirer |
|
Format error |
|
Bank not supported by switch |
|
Completed partially |
|
Expired card |
|
Suspected fraud |
|
Card acceptor contact acquirer |
|
Restricted card |
|
Card acceptor call acquirer security |
|
Allowable PIN tries exceeded |
|
No credit account |
|
Requested function not supported |
|
Lost card, pick up (fraud account) |
|
No universal account |
|
Stolen card, pick up (fraud account) |
|
No investment account |
|
Not sufficient funds |
|
No checking account |
|
No savings account |
|
Expired card or expiration date is missing |
|
Incorrect PIN or PIN missing |
|
No card record |
|
Transaction not permitted to cardholder |
|
Transaction not permitted to acquirer/terminal |
|
Suspected fraud |
|
Card acceptor contact acquirer |
|
Exceeds withdrawal amount limit |
|
Restricted card (card invalid in this region or country) |
|
Security violation (source is not correct issuer) |
|
Original amount incorrect/Transaction does not fulfill AML requirement |
|
Exceeds withdrawal frequency limit |
|
Card acceptor call acquirer’s security department |
|
Hard capture (requires that card be picked up at ATM) |
|
Response received too late |
|
Contact Card Issuer/PIN data required |
|
PIN Not Changed |
|
Different value than that used for PIN encryption errors |
|
Allowable number of PIN tries exceeded |
|
Invalid/nonexistent “To Account” specified/Unsolicited reversal |
|
Invalid/nonexistent “From Account” specified |
|
Invalid/nonexistent account specified (general)/“Blocked, first used”—Transaction from new cardholder, and card not properly unblocked |
|
Life cycle/Already reversed (by Switch) |
|
System not available/No financial impact |
|
Domestic Debit Transaction Not Allowed (Regional use only)/Cryptographic error found in PIN |
|
Policy (Mastercard use only)/Negative CAM, dCVV, iCVV, or CVV results |
|
Fraud/Security (Mastercard use only) |
|
Invalid Authorization Life Cycle |
|
Not declined/No reason to decline a request for address verification, CVV2 verification, or a credit voucher or merchandise return |
|
PIN Validation not possible |
|
Purchase Amount Only, No Cash Back Allowed |
|
Cryptographic failure |
|
Unacceptable PIN—Transaction Declined—Retry/Ineligible to receive financial position information (GIV) |
|
Cutoff is in process (switch ending a day’s business and starting the next. Transaction can be sent again in a few minutes) |
|
Issuer or switch is inoperative/Issuer or switch inoperative and STIP not applicable or not available for this transaction; Time-out when no stand-in; POS Check Service: Destination unavailable; Credit Voucher and Merchandise Return Authorizations: V.I.P. sent the transaction to the issuer, but the issuer was unavailable. |
|
Financial institution or intermediate network facility cannot be found for routing |
|
Transaction cannot be completed. Violation of law |
|
Duplicate transmission |
|
Reconcile error |
|
System malfunction or certain field error conditions |
|
Additional customer authentication required |
|
Surcharge amount not permitted on Visa cards (U.S. acquirers only) |
|
Surcharge amount not supported by debit network issuer. |
|
Force STIP |
|
Cash service not available |
|
Cashback request exceeds issuer limit or appoved limit |
|
Ineligible for resubmission |
|
Decline for CVV2 failure |
|
Transaction amount exceeds preauthorized approval amount |
|
Invalid biller information |
|
Denied PIN unblock—PIN change or unblock request declined by issuer |
|
Denied PIN change—requested PIN unsafe |
|
Card Authentication failed |
|
Stop payment order |
|
Revocation of authorization order |
|
Transaction does not qualify for Visa PIN |
|
Revocation of all authorizations order |
|
Forward to issuer |
|
Forward to issuer |
|
Unable to go online |
|
Customer ID verification failed |
|
Additional customer authentication required (Europe Region only) |
|
Verification Failed (Cardholder Identification does not match issuer records) |
|
Merchant country is same as issuer country for a card range defined as cross-border only |
2.8. Response statuses
2.8.1. Transaction statuses
Status | Description |
---|---|
|
Transaction is processing |
|
Transaction complete successfully |
|
Transaction was declined by Mastercard, look at response code |
|
Transaction was reversed successfully - money will return to cardholder’s account |
|
Transaction is cleared correctly |
|
Something went wrong and some validation error occurred |
|
Customer has completed the payment process, transaction is processing by the bank. It’s not the final status, appears only in the type PayByBankAccount. |
2.8.2. Reversal statuses
Status | Description |
---|---|
|
A reversal complete successfully |
|
A reversal was declined by Mastercard, look at response code |
|
Something went wrong and reversal cannot be processed |
|
Reversal could not be processed and it is not possible |
2.8.3. Clearing statuses
Status |
Description |
|
A clearing complete successfully |
|
A clearing is declined |
|
Something went wrong and clearing cannot be processed |
|
Transaction was registered correctly and will processing soon |
|
Clearing was processed with success and now it is waiting for send to Mastercard |
|
Clearing is not possible |
|
Clearing transaction is not found |
|
Time for clearing is over (7 days when manual clearing is enabled) |
|
Clearing is pending |
|
Clearing is processing |
2.8.4. Refund statuses
Status | Description |
---|---|
|
Refund complete successfully |
|
A refund is declined by MasterCard, look at response code |
|
An attempt to transaction refund was registered and refund is processing |
|
Transaction not found |
|
Transaction is just correctly refund when user make request again with same requestUuid |
|
Transaction in not cleared yet |
|
Transaction is chargeback reported |
2.9. Merchant advice codes
Merchant Advice Codes (MACs) are introduced by Mastercard to clearly communicate to merchants the reason for declining transactions, and the course of action that merchants can take. Occurs only for declined transactions if Mastercard returns this information.
Merchant Advice Code | Merchant Advice Code Text |
---|---|
|
New account information available |
|
Cannot approve at this time, try again later |
|
Do not try again |
|
Token not supported |
|
Stop recurring payment |
|
Retry after 1 hour |
|
Retry after 24 hours |
|
Retry after 2 days |
|
Retry after 4 days |
|
Retry after 6 days |
|
Retry after 8 days |
|
Retry after 10 days |
|
Consumer non-reloadable prepaid card |
|
Consumer single-use virtual card number |
3. Merchants
3.1. Get merchant for uuid
Using this method, we can get a merchant with a unique uuid. We send uuid in url as a param. In response, we receive detailed information about the merchant.
3.1.1. Request
GET /merchants/77874c60-e228-4ff0-a46f-742b0716e146 HTTP/1.1
accept-encoding: gzip
user-agent: ReactorNetty/1.0.39
Authorization: Basic dXNlcjpwYXNzd29yZA==
Accept: application/json
Host: ecom-staging.fenige.pl
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Parameter | Description |
---|---|
|
Merchant’s unique uuid in system |
3.1.2. Response
Response status
Status | Description |
---|---|
|
Returned when the merchant is already existing. In response are details about the merchant. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0122 - Returned when merchant not exist. |
|
STATUS: E9000 - Returned when reason is unknown. |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:54 GMT
Content-Length: 560
{
"uuid" : "77874c60-e228-4ff0-a46f-742b0716e146",
"name" : "merchant_name",
"companyName" : "merchant_company_name",
"companyBusinessName" : "merchant_company_business_name",
"email" : "merchant_mail@example.com",
"merchantStatus" : "ACTIVE",
"address" : {
"city" : "Lublin",
"country" : "PL",
"homeNumber" : "10",
"street" : "Karola Olszewskiego",
"streetNumber" : "11",
"postalCode" : "24-110"
},
"accountNumber" : "11124000013372880300945921",
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Merchant’s unique uuid in system |
|
|
The merchant’s name |
|
|
The merchant’s company name |
|
|
The merchant’s company business name |
|
|
The merchant’s email |
|
|
The merchant’s city |
|
|
The merchant’s country in accordance with ISO 3166-1 Alpha-2 |
|
|
The merchant’s home number |
|
|
The merchant’s street |
|
|
The merchant’s street number |
|
|
The merchant’s postal code |
|
|
Response http status |
|
|
The merchant’s status |
|
|
The merchant’s account number |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:44:54 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "df41c535-4aa7-423f-86d9-b382ab60ff19"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 404 Not Found
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:54 GMT
Content-Length: 146
{
"status" : "E0122",
"message" : "Merchant not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "654d0fc5-87d3-4441-ae9b-b6b81fe03280"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:54 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "0245e88b-9b32-4e42-9a80-a5d6b2b6f172"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
3.2. Get merchant list
Using this method, we can get a list of merchants who are assigned to the authenticated PSP.
3.2.1. Request
GET /merchants HTTP/1.1
accept-encoding: gzip
user-agent: ReactorNetty/1.0.39
Authorization: Basic dXNlcjpwYXNzd29yZA==
Accept: application/json
Host: ecom-staging.fenige.pl
Name | Description |
---|---|
|
Basic auth credentials for PSP |
3.2.2. Response
Response status
Status | Description |
---|---|
|
Returned when the authorized PSP has at least one merchant. In response, he receives a list of merchants with details about each of them. |
|
STATUS: E0123 - Returned when merchant list is empty. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E9000 - Returned when reason is unknown. |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:53 GMT
Content-Length: 1173
{
"merchants" : {
"content" : [ {
"uuid" : "77874c60-e228-4ff0-a46f-742b0716e146",
"name" : "merchant_name",
"companyName" : "merchant_company_name",
"companyBusinessName" : "merchant_company_business_name",
"email" : "merchant_mail@example.com",
"merchantStatus" : "ACTIVE",
"address" : {
"city" : "Lublin",
"country" : "PL",
"homeNumber" : "10",
"street" : "Karola Olszewskiego",
"streetNumber" : "11",
"postalCode" : "24-110"
},
"accountNumber" : "11124000013372880300945921"
} ],
"pageable" : {
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"offset" : 0,
"pageSize" : 20,
"pageNumber" : 0,
"paged" : true,
"unpaged" : false
},
"last" : true,
"totalElements" : 1,
"totalPages" : 1,
"first" : true,
"size" : 20,
"number" : 0,
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"numberOfElements" : 1,
"empty" : false
},
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
The merchant’s name |
|
|
The merchant’s company name |
|
|
The merchant’s company business name |
|
|
The merchant’s email |
|
|
The merchant’s status |
|
|
Merchant’s unique uuid in system |
|
|
The merchant’s city |
|
|
The merchant’s country in accordance with ISO 3166-1 Alpha-2 |
|
|
The merchant’s home number |
|
|
The merchant’s street |
|
|
The merchant’s street number |
|
|
The merchant’s postal code |
|
|
The merchant’s account number |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:53 GMT
Content-Length: 91
{
"status" : "E0123",
"message" : "List of Merchant is empty.",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:44:53 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "249a1372-f3a5-4722-b670-8433000cb458"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:53 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "c664fc51-cad2-4c48-bbfe-b11ed8993548"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
4. Terminals
4.1. Get terminal for uuid
Using this method, we can get a terminal with a unique uuid. We send merchant uuid and terminal uuid in url as a params. In response, we receive detailed information about the terminal.
4.1.1. Request
GET /merchants/2a64b269-4ea3-4563-bbf3-3eae745c224c/terminals/2a64b269-4ea3-4563-bbf3-3eae745c224c HTTP/1.1
accept-encoding: gzip
user-agent: ReactorNetty/1.0.39
Authorization: Basic dXNlcjpwYXNzd29yZA==
Accept: application/json
Host: ecom-staging.fenige.pl
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Parameter | Description |
---|---|
|
Merchant’s unique uuid in system |
|
Terminal’s unique uuid in system |
4.1.2. Response
Response status
Status | Description |
---|---|
|
Returned when the terminal is already existing. In response are details about the terminal. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0122 - Returned when merchant not exist. STATUS: E0132 - Returned when terminal not exist. |
|
STATUS: E9000 - Returned when reason is unknown. |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:11 GMT
Content-Length: 357
{
"uuid" : "2a64b269-4ea3-4563-bbf3-3eae745c224c",
"name" : "terminal_name",
"merchantUUID" : "2a64b269-4ea3-4563-bbf3-3eae745c224c",
"terminalStatus" : "ACTIVE",
"settlementCurrency" : "PLN",
"calculateCommissionType" : "STANDARD",
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK",
"default" : true,
"3dsEnable" : true
}
Path | Type | Description |
---|---|---|
|
|
The merchant’s identifier in the database |
|
|
The terminal’s name |
|
|
The terminal’s identifier in the database |
|
|
Is 3DS enabled for transaction. Enabled if true, is not enabled if false |
|
|
The terminals’s status (NEW - terminal is waiting for activation in Fenige system, ACTIVE - terminal is active, INACTIVE - terminal is not active) |
|
|
Is default terminal. Default if true, is not default if false |
|
|
Commission type for terminal (STANDARD - percentage commission, SUMMARIZE - percentage commission and fixed amount) |
|
|
Settlement currency for terminal (in accordance with ISO-4217) |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:45:11 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "b3cfe81b-53e0-4bab-9593-ea8a4e3ade83"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 404 Not Found
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:11 GMT
Content-Length: 146
{
"status" : "E0132",
"message" : "Terminal not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "f3b23fcf-c68d-4b73-824a-09d9698afb92"
}
HTTP/1.1 404 Not Found
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:10 GMT
Content-Length: 146
{
"status" : "E0136",
"message" : "Merchant not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "5e1b2ca9-ff68-4b19-abe8-2a265c5bf5ad"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:10 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "e97505d6-3f90-4a81-b8fc-1ab5e359399b"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
4.2. Get terminals list
Using this method, we can get a list of terminals who are assigned to the merchant.
4.2.1. Request
GET /merchants/2a64b269-4ea3-4563-bbf3-3eae745c224c/terminals HTTP/1.1
accept-encoding: gzip
user-agent: ReactorNetty/1.0.39
Authorization: Basic dXNlcjpwYXNzd29yZA==
Accept: application/json
Host: ecom-staging.fenige.pl
Name | Description |
---|---|
|
Basic auth credentials for PSP |
4.2.2. Response
Response status
Status | Description |
---|---|
|
Returned when the merchant has at least one terminal. In response, he receives a list of terminals with details about each of them. |
|
STATUS: E0133 - Returned when terminal list is empty. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0122 - Returned when merchant not exist. |
|
STATUS: E9000 - Returned when reason is unknown. |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:10 GMT
Content-Length: 896
{
"terminals" : {
"content" : [ {
"uuid" : "2a64b269-4ea3-4563-bbf3-3eae745c224c",
"name" : "terminal_name",
"merchantUUID" : "2a64b269-4ea3-4563-bbf3-3eae745c224c",
"terminalStatus" : "ACTIVE",
"settlementCurrency" : "PLN",
"default" : true,
"3dsEnable" : true
} ],
"pageable" : {
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"offset" : 0,
"pageSize" : 20,
"pageNumber" : 0,
"paged" : true,
"unpaged" : false
},
"last" : true,
"totalElements" : 1,
"totalPages" : 1,
"first" : true,
"size" : 20,
"number" : 0,
"sort" : {
"empty" : true,
"unsorted" : true,
"sorted" : false
},
"numberOfElements" : 1,
"empty" : false
},
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
The terminal’s identifier in the database |
|
|
The terminal’s name |
|
|
Merchant’s unique uuid in system |
|
|
Is 3DS enabled for transaction. Enabled if true, is not enabled if false |
|
|
The terminals’s status (NEW - terminal is waiting for activation in Fenige system, ACTIVE - terminal is active, INACTIVE - terminal is not active) |
|
|
Is default terminal. Default if true, is not default if false |
|
|
Settlement currency for terminal (in accordance with ISO-4217) |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:09 GMT
Content-Length: 150
{
"merchantUuid" : "2a64b269-4ea3-4563-bbf3-3eae745c224c",
"status" : "E0133",
"message" : "List of Terminal is empty.",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
The merchant’s identifier in the database |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:45:09 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "43900119-0fbc-419b-8e41-96b27a92530c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 404 Not Found
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:09 GMT
Content-Length: 146
{
"status" : "E0136",
"message" : "Merchant not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "8a988706-2523-428b-a737-c7290c2d8c40"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:07 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "7f6c00ee-b42a-4500-b865-83814ca32b6d"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
5. Cards
5.1. Add card
Using this method, we can create a new Card in Fenige Datacenter. Cards in the Ecommerce system are stored securely and are assigned to the PSP object. Each PSP (object you authenticate in API with) has access to store cards in separated secure database.
5.1.1. Request
POST /client/card HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 149
Host: ecom-staging.fenige.pl
{
"cardNumber" : "5453131785534417",
"expirationDate" : "10/24",
"firstName" : "John",
"lastName" : "Doe",
"email" : "john.doe@fenige.pl"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
cardNumber |
String |
@Card number length must be between 12 and 19, @Must not be blank, @Must not be null |
Full cardholder’s card number must be between 12-digits and 19-digits |
expirationDate |
String |
@Must match the regular expression |
Expiration date of card mm/yy |
firstName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
First name of cardholder |
lastName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
Last name of cardholder |
String |
@Length must be between 1 and 128 inclusive, @Must be a well-formed email address, @Must not be blank, @Must not be null, @Must not be empty |
Cardholder’s email |
5.1.2. Response
Response status
Status | Description |
---|---|
|
Returned when terminal was successfully create. |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E06007 - Returned when there was issue with internal Datacenter flow. |
|
STATUS: E9000 - Returned when reason is unknown. + STATUS: E06000 - Critical error occurred while connecting to Datacenter. |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 88
{
"cardId" : 1,
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Id numeric value of added card |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:07 GMT
Connection: close
Content-Length: 483
{
"errors" : {
"firstName" : [ "length must be between 2 and 35" ],
"lastName" : [ "length must be between 2 and 35" ],
"cardNumber" : [ "invalid card number", "card number length must be between 12 and 19", "card number must be numeric" ],
"email" : [ "must be a well-formed email address" ],
"expirationDate" : [ "invalid card expiration date" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "be47dba1-1f95-4618-a3a6-5fa8178a0229"
}
Path | Type | Description |
---|---|---|
|
|
First name validation error |
|
|
Last name validation error |
|
|
Email validation error |
|
|
Card number validation error |
|
|
Expiration date validation error |
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:45:06 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "4fc7163e-76b3-408e-ad7f-917bec40b135"
}
Path | Type | Description |
---|---|---|
|
|
Message for response code from Fenige system |
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 191
{
"status" : "E06007",
"message" : "Exception occurred while trying to add ecommerce card",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "33a134e3-3edb-4c93-a7aa-81e07edd7c5c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "d47125f6-edb2-4ec0-8a61-4ca6581b8482"
}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 197
{
"status" : "E06000",
"message" : "Unrecognized error occurred while connection to Datacenter",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "28bdfe79-c278-4647-ba3c-deae922ef6ea"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
5.2. Get card
This method can be use for fetch Card object by 'cardId' parameter.
5.2.1. Request
GET /client/card/1 HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Host: ecom-staging.fenige.pl
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Parameter | Description |
---|---|
|
Id numeric value of card existing in database |
5.2.2. Response
Response status
Status | Description |
---|---|
|
Returned when card was successfully fetched. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E9000 - Returned when reason is unknown. |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 308
{
"cardId" : 1,
"hiddenCardNumber" : "545313******4417",
"firstName" : "John",
"lastName" : "Doe",
"email" : "john.doe@fenige.pl",
"createdDate" : "2024-11-20T18:45:08.299Z",
"lastModifiedDate" : "2024-11-20T18:45:08.299Z",
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Full cardholder’s masked card number must be between 12-digits and 19-digits |
|
|
First name of cardholder |
|
|
Last name of cardholder |
|
|
Cardholder’s email |
|
|
Card creation date |
|
|
Last card edit date |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Id numeric value of added card |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:45:06 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "4fc7163e-76b3-408e-ad7f-917bec40b135"
}
Path | Type | Description |
---|---|---|
|
|
Message for response code from Fenige system |
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 152
{
"status" : "E06003",
"message" : "Datacenter card not found",
"httpStatus" : "NOT_FOUND",
"traceId" : "a68d2451-e03f-4fae-9453-2fe869255684"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "d47125f6-edb2-4ec0-8a61-4ca6581b8482"
}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 197
{
"status" : "E06000",
"message" : "Unrecognized error occurred while connection to Datacenter",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "28bdfe79-c278-4647-ba3c-deae922ef6ea"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
5.3. Update card
This method allows you to edit the details of a Card that has been added previously. The request body requires a 'cardId' and any data set. All data is optional.
5.3.1. Request
PUT /client/card HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 165
Host: ecom-staging.fenige.pl
{
"cardId" : 1,
"cardNumber" : "5453131785534417",
"expirationDate" : "10/24",
"firstName" : "John",
"lastName" : "Doe",
"email" : "john.doe@fenige.pl"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
cardId |
Number |
@Must not be null, @Numeric value |
Id numeric value of card existing in database |
cardNumber |
String |
@Card number length must be between 12 and 19, @Must not be blank, @Must not be null |
Full cardholder’s card number must be between 12-digits and 19-digits |
expirationDate |
String |
@Must match the regular expression |
Expiration date of card mm/yy |
firstName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
First name of cardholder |
lastName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
Last name of cardholder |
String |
@Length must be between 1 and 128 inclusive, @Must be a well-formed email address, @Must not be blank, @Must not be null, @Must not be empty |
Cardholder’s email |
5.3.2. Response
Response status
Status | Description |
---|---|
|
Returned when card was successfully updated. |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E9000 - Returned when reason is unknown. |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 88
{
"cardId" : 1,
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Id numeric value of added card |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 690
{
"errors" : {
"lastName" : [ "must not be blank", "must be null", "must match \"^[^0-9\\n]+$\"", "length must be between 2 and 35" ],
"firstName" : [ "must not be blank", "must match \"^[^0-9\\n]+$\"", "must be null", "length must be between 2 and 35" ],
"cardId" : [ "must not be null" ],
"cardNumber" : [ "must be null", "invalid card number", "card number length must be between 12 and 19", "card number must be numeric" ],
"email" : [ "must be a well-formed email address", "must be null" ],
"expirationDate" : [ "invalid card expiration date" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "e0366951-359b-4090-90f7-5766bc8a18f5"
}
Path | Type | Description |
---|---|---|
|
|
cardId validation error |
|
|
First name validation error |
|
|
Last name validation error |
|
|
Email validation error |
|
|
Card number validation error |
|
|
Expiration date validation error |
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:45:06 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "4fc7163e-76b3-408e-ad7f-917bec40b135"
}
Path | Type | Description |
---|---|---|
|
|
Message for response code from Fenige system |
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 185
{
"status" : "E06005",
"message" : "Update of ecommerce card failed, card not found",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "cb001fe7-2e72-4837-a2ab-6adbc27dd8ba"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "d47125f6-edb2-4ec0-8a61-4ca6581b8482"
}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 197
{
"status" : "E06000",
"message" : "Unrecognized error occurred while connection to Datacenter",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "28bdfe79-c278-4647-ba3c-deae922ef6ea"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
5.4. Delete card
This method is used to remove a card from the Datacenter database that is assigned to the PSP with which you have logged in.
5.4.1. Request
DELETE /client/card/1 HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Host: ecom-staging.fenige.pl
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Parameter | Description |
---|---|
|
Id numeric value of card existing in database |
5.4.2. Response
Response status
Status | Description |
---|---|
|
Returned when card was successfully removed. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E9000 - Returned when reason is unknown. |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 96
{
"cardRemoved" : true,
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Indicates is card was removed or not |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:45:06 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "4fc7163e-76b3-408e-ad7f-917bec40b135"
}
Path | Type | Description |
---|---|---|
|
|
Message for response code from Fenige system |
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 185
{
"status" : "E06004",
"message" : "Delete of ecommerce card failed, card not found",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "a8cde55e-7901-46a8-83dd-eb737fe7d90b"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "d47125f6-edb2-4ec0-8a61-4ca6581b8482"
}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 197
{
"status" : "E06000",
"message" : "Unrecognized error occurred while connection to Datacenter",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "28bdfe79-c278-4647-ba3c-deae922ef6ea"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
6. Tokenize Cards
The tokenize API enables merchant to switch from traditional payment methods to tokenized card numbers, thereby enhancing the security of e-commerce transactions. Using this API, unique tokens can be generated and managed, while minimizing the exposure of sensitive data to the risk of theft, and providing flexibility and compliance with card data protection regulations. As a result, the company can improve customer trust, increase the security of online transactions and comply with modern data protection standards. Authentication remains at the psp level, in addition, Fenige requires the presentation of a specific merchantUuid, for which space will be created for the storage of card tokens in a secure environment.
6.1. Tokenize card
Using this API method, the client makes a tokenization request as a result of which it receives the unique uuid identifier of the tokenized card - tokenUuid. The full PAN number and expiration date of the card is required at this stage. Thanks to this, it is no longer necessary to use the customer's full card number during payment methods. In case of tokenization failure, the API returns the corresponding statuses.
6.1.1. Request
POST /client/tokenize/card HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 124
Host: ecom-staging.fenige.pl
{
"cardNumber" : "4622943127049428",
"expiryDate" : "12/31",
"merchantUuid" : "43f27578-8e2b-4057-bb20-bf3d5469f5e3"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
cardNumber |
String |
@Card number length must be between 12 and 19, @Must not be blank, @Must not be null |
Full cardholder’s card number to be tokenized |
expiryDate |
String |
@Must match the regular expression |
Expiry date of card mm/yy |
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
6.1.2. Response
Response status
Status | Description |
---|---|
|
Returned when card was tokenized correctly, tokenUuid returned and payment transaction can be realized. |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUSES: E15000, E15002, E15003, E15004 - Returned when card was not tokenized by tokenize system with given reason. |
|
STATUS: E15004 - Returned when tokenize system was unavailable. |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 128
{
"tokenUuid" : "43f27578-8e2b-4057-bb20-bf3d5469f5e3",
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Message for response code from Fenige system |
|
|
Token uuid of tokenized card to be used in subsequent e-commerce API transactions |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:46 GMT
Connection: close
Content-Length: 184
{
"errors" : {
"expiryDate" : [ "invalid card expiration date" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "a76b8d24-8789-4c90-bddc-1cc92251debd"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Expiration date validation error |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:43:46 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "6c003508-7ca7-46c7-969d-499962ee4ee1"
}
Path | Type | Description |
---|---|---|
|
|
Message for response code from Fenige system |
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 162
{
"status" : "E15000",
"message" : "Error card unprovisioned",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "b1fbe9c3-ed62-402e-b78d-365434ed7ba9"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 161
{
"status" : "E15001",
"message" : "Error card not eligible",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "a9a5509d-890a-4ada-a146-7855f7cc4db0"
}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 160
{
"status" : "E15002",
"message" : "Error card not allowed",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "001b7511-d58b-436f-8f62-36451a74baee"
}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 157
{
"status" : "E15003",
"message" : "Error card declined",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "eef05cdf-c59a-42e6-aa78-d5b1f43d41c2"
}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 169
{
"status" : "E15004",
"message" : "Error card service unavailable",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "07eca2a3-28b7-4d58-b1c1-41c5888b5418"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 162
{
"status" : "E15005",
"message" : "Error card system error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "3dbf3d4d-652b-4c21-b982-e868dfa6c7d0"
}
7. Payment API
7.1. Currency rate
This method can be used for calculate Mastercard/Visa currency rates between two values depends on terminal and provider. Notice that `higherRate` is used to transaction processing.
In the STAGING environment you can use the test cards available here 2.6. Mock cards for test. |
7.1.1. Request
POST /client/payments/currency-rate HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 124
Host: ecom-staging.fenige.pl
{
"terminalUuid" : "135f897e-dd19-408c-8cb3-e075947c05b3",
"provider" : "MASTERCARD",
"from" : "USD",
"to" : "PLN"
}
Path | Type | Constraints | Description |
---|---|---|---|
terminalUuid |
String |
@Must not be null |
Terminal’s unique uuid in system |
provider |
String |
@Must not be null |
VISA or MASTERCARD or MAESTRO |
from |
String |
@Must not be null |
Currency code for conversion |
to |
String |
@Must not be null |
Target currency of conversion |
POST /client/payments/currency-rate HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 118
Host: ecom-staging.fenige.pl
{
"terminalUuid" : "135f897e-dd19-408c-8cb3-e075947c05b3",
"provider" : "VISA",
"from" : "USD",
"to" : "PLN"
}
Path | Type | Constraints | Description |
---|---|---|---|
terminalUuid |
String |
@Must not be null |
Terminal’s unique uuid in system |
provider |
String |
@Must not be null |
VISA or MASTERCARD or MAESTRO |
from |
String |
@Must not be null |
Currency code for conversion |
to |
String |
@Must not be null |
Target currency of conversion |
7.1.2. Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 129
{
"lowerRate" : 0.88000011,
"higherRate" : 0.89801726,
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Lower currency rate |
|
|
Higher currency rate used for process transaction |
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "169dfa7a-3b26-4c51-ae7d-c61c29d331cb"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Id of trace |
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 166
{
"status" : "E0190",
"message" : "Failed to get currency rates",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "f81fe767-85a9-4058-9bbc-951fed4996bc"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Id of trace |
7.2. Currency for card
Method is used to determine currencies applied for given card. If merchant has stored card in DataCenter can you use this method by cardId rather than cardNumber.
7.2.1. Request
Path | Type | Constraints | Description |
---|---|---|---|
cardNumber |
String |
@Card number length must be between 12 and 19, @Luhn, @Must not be blank, @Must not be null |
Card number |
POST /client/currency-for-card HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 39
Host: ecom-staging.fenige.pl
{
"cardNumber" : "5575168861324712"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
cardNumber |
String |
@Card number length must be between 12 and 19, @Luhn, @Must not be blank, @Must not be null |
Card number |
POST /client/currency-for-card HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 39
Host: ecom-staging.fenige.pl
{
"cardNumber" : "4761340000000050"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
cardId |
Number |
@Must not be null, @Numeric |
DataCenter card id. |
POST /client/currency-for-card HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 18
Host: ecom-staging.fenige.pl
{
"cardId" : 1
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
7.2.2. Response
Response status
Status | Description |
---|---|
|
STATUS: S0000 Returned when SUCCESS. |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E0401 - Issuer card is not supported. |
|
STATUS: E0400 - Returned when failed to get currency for card. |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 254
{
"defaultCurrency" : "PLN",
"currencyCodes" : [ "PLN", "EUR", "USD" ],
"provider" : "MASTERCARD",
"countryCodeNumeric" : "616",
"cardType" : "MCC",
"cardProductId" : "2",
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 245
{
"defaultCurrency" : "UNDEFINED",
"currencyCodes" : [ "UNDEFINED" ],
"provider" : "VISA",
"countryCodeNumeric" : "616",
"cardType" : "C",
"cardProductId" : "CN",
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 173
{
"defaultCurrency" : "UNDEFINED",
"currencyCodes" : [ "UNDEFINED" ],
"provider" : "MASTERCARD",
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Currencies supported by card |
|
|
Default currency code for card |
|
|
Card’s provider: MASTERCARD, MAESTRO, VISA, UNKNOWN |
|
|
Card’s type: Mastercard/Maestro (MCC; DMC), Visa (C - Credit, D - Debit; P - Prepaid; H - Charge; R - Deferred Debit) |
|
|
Card’s product id: Mastercard/Maestro (1 - Consumer; 2 - Commercial; 3 - All; 4 - Other, Visa (BZ - Business; CN - Consumer; CO -Commercial; GV - Government) |
|
|
Country code numeric for Mastercard/Visa: - ISO 3166-1 Numeric |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:12 GMT
Connection: close
Content-Length: 214
{
"errors" : {
"cardNumber" : [ "must not be null", "must not be empty", "must not be blank" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "9b2969ae-0474-4a21-976a-b80e7fb7c178"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "f4bd2f59-d6cd-4c7f-8e2f-e16414ded3c5"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Id of trace |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json;charset=UTF-8
Content-Length: 168
{
"status": "E0401",
"message": "Issuer card is not supported",
"httpStatus": "UNPROCESSABLE_ENTITY",
"traceId": "cf77afc8-f41b-425c-ab6a-de4eb9a69136",
"links" : [ ]
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Id of trace |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:12 GMT
Connection: close
Content-Length: 169
{
"status" : "E0400",
"message" : "Failed to get currency for card",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "0293825c-eaf0-45bb-909b-6282b869c44c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
7.3. Card provider
This method is used to check the card provider, for example: VISA or MASTERCARD. If merchant has stored card in DataCenter can you use this method by cardId rather than cardNumber.
7.3.1. Request
Path | Type | Constraints | Description |
---|---|---|---|
cardNumber |
String |
@Card number length must be between 12 and 19, @Luhn, @Must not be blank, @Must not be null |
PAN card number |
POST /client/card/provider HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 39
Host: ecom-staging.fenige.pl
{
"cardNumber" : "5117964247989169"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
cardId |
Number |
@Must not be null, @Numeric |
DataCenter card id. |
POST /client/card/provider HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 20
Host: ecom-staging.fenige.pl
{
"cardId" : 231
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
7.3.2. Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 101
{
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK",
"provider" : "MASTERCARD"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Card’s provider: MASTERCARD, MAESTRO, VISA, UNKNOWN |
HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "35ed5e4a-18aa-4bae-9ba6-907eca382d60"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Id of trace |
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "80650cee-5d6b-4345-a27e-b7f737eeb399"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Id of trace |
HTTP/1.1 503 Service Unavailable
Content-Type: application/json
Content-Length: 156
{
"status" : "E9002",
"message" : "Error mpi connection",
"httpStatus" : "SERVICE_UNAVAILABLE",
"traceId" : "4a6ea3c1-441b-450d-b78a-68c4f3d7f2ee"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Id of trace |
7.4. Payment
The method is used to charge the cardholder. Using this method, we can authorize and process entire transaction. This method supports both 3DS and without 3DS transactions. You can also use this method using the outside 3ds authorization. How the transaction will be initiated depends on the terminal settings (look at 'is3dsEnable' field). This endpoint is idempotent so if you execute more than one requests with the same data even at the same time, only first registered transaction will be processed further. In response, we receive transaction status.
Merchant has the ability to make a payment for goods which causes the cardholder to be debited in the currency of purchase, terminal or card currency based on the parameters provided: currency of transaction, different currency terminals held and currencies supported by the card. The optional terminalUuid field provided during any of the authorisation methods forces the card to be debited in the currency of the terminal specified if the purchase currency is different from the terminal currency a currency conversion will take place.
The Fenige Payment API methods optionally allows merchants to store card data and sensitive personal data in order to allow performing subsequent transactions. If merchant decides to use DataCenter transaction flow then is required to provide the card id of the card previously stored in the Fenige DataCenter, from which card the relevant required parameters will be downloaded and used for authorization. Card data and sensitive personal data according to the Fenige API specification are: cardNumber, expiryDate, firstName, lastName and email. All card data are stored securely on Fenige DataCenter servers in accordance with applicable security requirements. Another option of use payment method is using the tokenized card instead of the full card number. For more information on tokenization, see Tokenize Cards chapter. The basic identifier for this type of transaction is the tokenUuid of the tokenized card and should be treated as a payment instrument. Based on the provided identifier, Fenige recognizes the previously generated token and provides the cryptogram data then processes the transaction as if it were a regular transaction using a regular card. The process is automatic, all payment rules, regulations, limitation apply and if everything is in order the transaction routes to the organization and the account is debited.
From January 2021, there is an internal functionality to restrict access for the PSP to specific method. The Fenige employee can disable access to a given endpoint, then the HTTP status 403 FORBIDDEN will be returned. The PSP will be informed about each access restriction action. |
Since October 2022, there is enabled feature for resolving PENDING status of transaction. Ecommerce system now measure time of processing transaction and rejects transaction which processing time exceeded. Default processing time is set as 120 seconds and in order to change this parameter please contact Fenige Sales Department. If transaction was sent to Mastercard/Visa and processing times up, then Fenige automatically makes reversal for this transaction. |
Mastercard and Visa requires for intra-European Economic Area (EEA), plus United Kingdom, for which EMV 3DS must be used subsequent to a valid authorization soft decline DE39=65 (Mastercard)/1A(Visa).To perform a transaction for which the card has previously received CODE_65(Mastercard)/CODE_1A(Visa), the transaction must be processed with full EMV 3DS (3DS 2.x) and the authentication status must be 'Y'. Correct flow:
|
When performing authorization, remember that there are currencies with different number of decimal places. For example: VND has no pennies and KWD has three decimal places. Please take this into account in the Amount field. For more information on other currencies, see ISO 4217. |
7.4.1. Request
POST /client/payments/auth HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 904
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "d90fc8b8-d355-4c4f-9f20-ff9dca499835",
"requestUuid" : "084ac6a7-44cd-418f-8d8b-52f89f9007b9",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 1000,
"currency" : "USD",
"cardNumber" : "5453131785534417",
"expiryDate" : "11/26",
"cvc2" : "123",
"email" : "test@fenige.pl",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"outside3ds" : {
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"cavvAlgorithm" : "01",
"eci" : "02",
"authenticationStatus" : "Y",
"transactionXId" : "d543820d-683e-4589-86d9-6c9e40db4b53"
},
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"province" : "NY",
"postalCode" : "24-110",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
firstName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
First name of cardholder |
lastName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
Last name of cardholder |
amount |
Number |
@Must be at least 100, @Must not be null |
The total transfer amount (in pennies) |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
cardNumber |
String |
@Card number length must be between 12 and 19, @Must not be blank, @Must not be null |
Full cardholder’s card number must be between 12-digits and 19-digits |
expiryDate |
String |
@Must not be blank, @Must not be null |
Expiration date of card mm/yy |
cvc2 |
String |
@Optional only for Google pay, @Length must be 3 characters, @Must match regular expression: \d+ |
Cardholder’s card cvc2 |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
outside3ds |
Object |
There are outside 3ds data authorization that have been send to our API |
|
outside3ds.cavv |
String |
@Must be base 64 encoded, @Size must be between 28 and 28 inclusive |
Cardholder Authentication Verification Value. |
outside3ds.transactionXId |
String |
Server transaction Id generated by DS. Required for 3DS 2.x version. The transactionXId is the field that defines the 3DS version. The presence of this field in the HTTP request specifies that the transaction will be processed with 3DS 2.x. TransactionXId can be obtained by executing the /authentication method. |
|
outside3ds.cavvAlgorithm |
String |
Indicates the algorithm used to generate the AuthenticationCAVV value 0 - HMAC 1 - CVV 2 - CVV with ATN 3 - MasterCard SPA algorithm |
|
outside3ds.eci |
String |
@Length must be between 1 and 2 inclusive, @Must match 00 or 01 or 02 or 05 or 06 or 07, @Must not be null |
Electronic Commerce Indicator: 5 (Visa) or 2 (SecureCode) - The cardholder was successfully authenticated. 6 (Visa) or 1 (SecureCode) - Authentication was attempted, but the cardholder was not enrolled. More info. |
outside3ds.authenticationStatus |
String |
@Must match Y or A or U, @Must not be null |
Authentication status: Y - (Full Authentication) - The customer was successfully authenticated. A - (Successful Attempted Authentication) - Authentication was not available, but functionality was available to generate a proof of authentication attempt. U - (Technical or other problem) - No liability shift, consider whether to proceed with the transaction |
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as Payment Facilitator.. |
POST /client/payments/auth HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 963
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "d90fc8b8-d355-4c4f-9f20-ff9dca499835",
"terminalUuid" : "9f4054f0-197b-4869-92a9-f60f7946a268",
"requestUuid" : "a2c08869-1e5a-4537-aff1-76c57dae22c5",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 1000,
"currency" : "USD",
"cardNumber" : "5453131785534417",
"expiryDate" : "11/26",
"cvc2" : "123",
"email" : "test@fenige.pl",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"outside3ds" : {
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"cavvAlgorithm" : "01",
"eci" : "02",
"authenticationStatus" : "Y",
"transactionXId" : "d543820d-683e-4589-86d9-6c9e40db4b53"
},
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"province" : "NY",
"postalCode" : "24-110",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
terminalUuid |
String |
Request’s unique uuid in system |
|
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
firstName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
First name of cardholder |
lastName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
Last name of cardholder |
amount |
Number |
@Must be at least 100, @Must not be null |
The total transfer amount (in pennies) |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
cardNumber |
String |
@Card number length must be between 12 and 19, @Must not be blank, @Must not be null |
Full cardholder’s card number must be between 12-digits and 19-digits |
expiryDate |
String |
@Must not be blank, @Must not be null |
Expiration date of card mm/yy |
cvc2 |
String |
@Optional only for Google pay, @Length must be 3 characters, @Must match regular expression: \d+ |
Cardholder’s card cvc2 |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
outside3ds |
Object |
There are outside 3ds data authorization that have been send to our API |
|
outside3ds.cavv |
String |
@Must be base 64 encoded, @Size must be between 28 and 28 inclusive |
Cardholder Authentication Verification Value |
outside3ds.transactionXId |
String |
Cardholder Authentication Verification Value. The transactionXId is the field that defines the 3DS version. The presence of this field in the HTTP request specifies that the transaction will be processed with 3DS 2.x. TransactionXId can be obtained by executing the /authentication method. |
|
outside3ds.cavvAlgorithm |
String |
Indicates the algorithm used to generate the AuthenticationCAVV value 0 - HMAC 1 - CVV 2 - CVV with ATN 3 - MasterCard SPA algorithm |
|
outside3ds.eci |
String |
@Length must be between 1 and 2 inclusive, @Must match 00 or 01 or 02 or 05 or 06 or 07, @Must not be null |
Electronic Commerce Indicator: 5 (Visa) or 2 (SecureCode) - The cardholder was successfully authenticated. 6 (Visa) or 1 (SecureCode) - Authentication was attempted, but the cardholder was not enrolled. More info. |
outside3ds.authenticationStatus |
String |
@Must match Y or A or U, @Must not be null |
Authentication status: Y - (Full Authentication) - The customer was successfully authenticated. A - (Successful Attempted Authentication) - Authentication was not available, but functionality was available to generate a proof of authentication attempt. U - (Technical or other problem) - No liability shift, consider whether to proceed with the transaction |
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03. |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as Payment Facilitator.. |
POST /client/payments/auth HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 782
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "d886966c-8982-4073-841c-b30e5ec3afb4",
"requestUuid" : "8aa780af-d449-4b50-b000-ea98c3b467cb",
"amount" : 1000,
"currency" : "USD",
"cardId" : 1906455,
"cvc2" : "123",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"outside3ds" : {
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"cavvAlgorithm" : "01",
"eci" : "02",
"authenticationStatus" : "Y",
"transactionXId" : "d543820d-683e-4589-86d9-6c9e40db4b53"
},
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"province" : "NY",
"postalCode" : "24-110",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
amount |
Number |
@Must be at least 100, @Must not be null |
The total transfer amount (in pennies) |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
cardId |
Number |
@Must not be null, @Numeric |
DataCenter card id. Required to obtain card information data from DataCenter such as (cardNumber, expiryDate, firstName, lastName, email) |
cvc2 |
String |
@Optional only for Google pay, @Length must be 3 characters, @Must match regular expression: \d+ |
Cardholder’s card cvc2 |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
outside3ds |
Object |
There are outside 3ds data authorization that have been send to our API |
|
outside3ds.cavv |
String |
@Must be base 64 encoded, @Size must be between 28 and 28 inclusive |
Cardholder Authentication Verification Value |
outside3ds.transactionXId |
String |
Cardholder Authentication Verification Value. The transactionXId is the field that defines the 3DS version. The presence of this field in the HTTP request specifies that the transaction will be processed with 3DS 2.x. TransactionXId can be obtained by executing the /authentication method. |
|
outside3ds.cavvAlgorithm |
String |
Indicates the algorithm used to generate the AuthenticationCAVV value 0 - HMAC 1 - CVV 2 - CVV with ATN 3 - MasterCard SPA algorithm |
|
outside3ds.eci |
String |
@Length must be between 1 and 2 inclusive, @Must match 01 or 02 or 05 or 06, @Must not be null |
Electronic Commerce Indicator: 5 (Visa) or 2 (SecureCode) - The cardholder was successfully authenticated. 6 (Visa) or 1 (SecureCode) - Authentication was attempted, but the cardholder was not enrolled. Chargeback protection applies. |
outside3ds.authenticationStatus |
String |
@Must match Y or A, @Must not be null |
Authentication status: Y - (Full Authentication) - The customer was successfully authenticated. A - (Successful Attempted Authentication) - Authentication was not available, but functionality was available to generate a proof of authentication attempt. |
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as Payment Facilitator.. |
POST /client/payments/auth HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 841
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "fe47cdba-0041-4692-a75b-22cfa5e25a48",
"requestUuid" : "1a209c2a-15e0-4e35-8fb9-3ef72a33980b",
"tokenUuid" : "e93910e7-ecf7-4fe7-9cf5-aca730ca973b",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 1000,
"currency" : "USD",
"email" : "test@fenige.pl",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"postalCode" : "24-110",
"province" : "NY",
"outside3ds" : {
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"cavvAlgorithm" : "01",
"eci" : "02",
"authenticationStatus" : "Y",
"transactionXId" : "d543820d-683e-4589-86d9-6c9e40db4b53"
}
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
tokenUuid |
String |
@Must not be null |
Unique tokenized card identifier corresponding to token |
amount |
Number |
@Must be at least 100, @Must not be null |
The total transfer amount (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
firstName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
First name of cardholder |
lastName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
Last name of cardholder |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
outside3ds |
Object |
There are outside 3ds data authorization that have been send to our API |
|
outside3ds.cavv |
String |
@Must be base 64 encoded, @Size must be between 28 and 28 inclusive |
Cardholder Authentication Verification Value |
outside3ds.transactionXId |
String |
Cardholder Authentication Verification Value. The transactionXId is the field that defines the 3DS version. The presence of this field in the HTTP request specifies that the transaction will be processed with 3DS 2.x. TransactionXId can be obtained by executing the /authentication method. |
|
outside3ds.cavvAlgorithm |
String |
Indicates the algorithm used to generate the AuthenticationCAVV value 0 - HMAC 1 - CVV 2 - CVV with ATN 3 - MasterCard SPA algorithm |
|
outside3ds.eci |
String |
@Length must be between 1 and 2 inclusive, @Must match 01 or 02 or 05 or 06, @Must not be null |
Electronic Commerce Indicator: 5 (Visa) or 2 (SecureCode) - The cardholder was successfully authenticated. 6 (Visa) or 1 (SecureCode) - Authentication was attempted, but the cardholder was not enrolled. Chargeback protection applies. |
outside3ds.authenticationStatus |
String |
@Must match Y or A, @Must not be null |
Authentication status: Y - (Full Authentication) - The customer was successfully authenticated. A - (Successful Attempted Authentication) - Authentication was not available, but functionality was available to generate a proof of authentication attempt. |
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
7.4.2. Response
Response status
Status | Description |
---|---|
|
Returned when transaction was successfully authorized. |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0122 - Returned when merchant is not existing. STATUS: E0128 - Returned when sub merchant does not exists. STATUS: E0132 - Returned when terminal is not existing. STATUS: E0135 - Returned when terminal for merchant not exist or all of them are inactive. STATUS: E0137 - Returned when there is not terminal marked as default STATUS: E06003 - Returned when DataCenter card was not found. STATUS: E15006 - Returned when tokenized card was not found by tokenUuid. |
|
STATUS: E0150 - Returned when transaction is rejected. STATUS: E0151 - Returned when transaction is rejected, because currency is not supported. STATUS: E0152 - Returned when transaction is rejected, because issuer is not supported. STATUS: E01580 - Returned when transaction is rejected, because DataCenter card was expired. STATUS: E01581 - Returned when transaction is rejected, because not found Card Authentication (3DS 2.X) STATUS: E01582 - Returned when transaction is rejected, because Card Authentication not match to transaction type (3DS 2.X) STATUS: E0159 - Returned when transaction is rejected, because restricted transaction amount has occurred STATUS: E01594 - Returned when transaction is rejected, because transactionXId parameter had registered for another transaction STATUS: E01596 - Returned when transaction is rejected, because terminal has blocked transaction with card issued in restricted country STATUS: E01597 - Returned when transaction is rejected, because 3DS version of terminal are not compatible with 3DS version defined in request STATUS: E01600 - Transaction rejected, 3DS 2.X flow invoked for other card number than specified in the request STATUS: E01601 - Returned when transaction is rejected, because terminal is blocked for provider STATUS: E01602 - Transaction rejected, geographic scope is not permitted for this transaction STATUS: E01607 - Transaction rejected, internal server error during authorization request generation STATUS: E10000 - Transaction rejected, terminal daily card transaction limit exceeded STATUS: E10001 - Transaction rejected, terminal daily transaction limit exceeded STATUS: E10002 - Transaction rejected, terminal monthly transaction limit exceeded STATUS: E0200 - Returned when transaction is rejected, because card is blocked in Fenige System STATUS: E0201 - Returned when transaction is rejected, because BIN is blocked in Fenige System STATUS: E0202 - Returned when transaction is rejected, because Terminal is blocked in Fenige System STATUS: E0204 - Returned when transaction is rejected, because user’s personal data was found on AML (sanctions) list STATUS: E0205 - Returned when transaction is rejected, because Bank is blocked in Fenige System STATUS: E0206 - Returned when transaction is rejected, because to many reject transactions and card is blocked STATUS: E0207 - Returned when transaction is rejected, bacause to many attempts declined and card is blocked STATUS: E0208 - Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days STATUS: E0209 - Returned when sender or receiver name contains fraudulent phrase STATUS: E0210 - Returned when sender has suspicious name STATUS: E0211 - Returned when transaction is rejected, because card country is blocked in Fenige System. STATUS: E11000 - Returned when transaction processing time set by terminal was exceeded STATUS: E13000 - Returned when transaction risk score was exceeded |
|
STATUS: E0153 - Returned when transaction is declined, by problem with MIP connection. STATUS: E01599 - Transaction declined, processing timeout. STATUS: E0142 - Returned when commission configuration is not added for terminal. STATUS: E0190 - Returned when currency rate is invalid. STATUS: E9000 - Returned when reason is unknown. |
|
STATUS: E9001 - Returned when is error acquirer connection. STATUS: E9002 - Returned when is error mpi connection. STATUS: E9010 - Returned when is error DataCenter connection. STATUS: E9011 - Returned when is error Limit connection. |
{
"requestUuid" : "9ea7043a-ac6b-4077-8a8a-413d41dd4818",
"transactionStatus" : "APPROVED",
"responseCode" : "CODE_00",
"status" : "S0002",
"message" : "Success transaction",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Request unique uuid in system |
|
|
Transaction status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Response code |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:23 GMT
Connection: close
Content-Length: 444
{
"errors" : {
"expiryDate" : [ "invalid card expiration date" ],
"lastName" : [ "must not be null", "" ],
"firstName" : [ "", "must not be null" ],
"amount" : [ "must not be null" ],
"merchantUuid" : [ "must not be null" ],
"requestUuid" : [ "must not be null" ],
"currency" : [ "must not be null" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "7d2c3edb-a0e4-40fa-a3f6-7cb1ab3e22cc"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:23 GMT
Connection: close
Content-Length: 444
{
"errors" : {
"expiryDate" : [ "invalid card expiration date" ],
"lastName" : [ "must not be null", "" ],
"firstName" : [ "", "must not be null" ],
"amount" : [ "must not be null" ],
"merchantUuid" : [ "must not be null" ],
"requestUuid" : [ "must not be null" ],
"currency" : [ "must not be null" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "7d2c3edb-a0e4-40fa-a3f6-7cb1ab3e22cc"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:23 GMT
Connection: close
Content-Length: 679
{
"errors" : {
"expiryDate" : [ "Card id was provided, expiryDate is obtained from data center card: 1906455" ],
"lastName" : [ "Card id was provided, lastName is obtained from data center card: 1906455" ],
"firstName" : [ "Card id was provided, firstName is obtained from data center card: 1906455" ],
"cardId" : [ "Please provide cardId for DATACENTER transaction or fields: cardNumber, expiryDate, firstName, lastName for PLAIN transaction" ],
"cardNumber" : [ "Card id was provided, cardNumber is obtained from data center card: 1906455" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "bc65d8fb-f8c4-47c7-adf7-13e767a50d15"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:44:23 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "afec24f5-a531-4216-94d7-ed1966aab6c4"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 403 Forbidden
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 135
Date: Wed, 20 Nov 2024 17:44:24 GMT
{
"status" : "E8001",
"message" : "Forbidden",
"httpStatus" : "FORBIDDEN",
"traceId" : "7c95e0c8-4f36-4791-a854-f9002b17a8cf"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0122",
"message" : "Merchant not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "f8b07626-14c7-4515-9ed3-46a38c18bddb"
}
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0132",
"message" : "Terminal not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "ee4dac06-fdbd-4bea-93c1-b422f8a0fcc6"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 163
{
"status" : "E0137",
"message" : "Default terminal not exist",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f8542e6d-c189-4e30-b782-743299071ca3"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 159
{
"status" : "E0135",
"message" : "Terminals for merchant not exists",
"httpStatus" : "NOT_FOUND",
"traceId" : "f73527a3-0d97-4492-a2a3-b2fd26c56498"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 246
{
"requestUuid" : "31df3fb9-06eb-4fa4-a371-9dcf74d021bc",
"transactionStatus" : "REJECTED",
"status" : "E06003",
"message" : "Datacenter card not found",
"httpStatus" : "NOT_FOUND",
"traceId" : "9dffef25-4b4d-4781-8d48-6719bc46f56c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 242
{
"requestUuid" : "cb122416-9047-4e00-8a69-e3aea07dffc4",
"transactionStatus" : "REJECTED",
"status" : "E15006",
"message" : "Error token not found",
"httpStatus" : "NOT_FOUND",
"traceId" : "b1073a0f-060d-4822-9223-10bb48b5e6e4"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 251
{
"requestUuid" : "ab1833ef-4c51-487c-b987-1330eb3cc5aa",
"transactionStatus" : "REJECTED",
"status" : "E0150",
"message" : "Transaction rejected",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "65d35cb9-0f23-419e-8f50-76a2fe552081"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 275
{
"requestUuid" : "a4d7a8a5-ca46-4575-a96a-d42bb17d63a5",
"transactionStatus" : "REJECTED",
"status" : "E0151",
"message" : "Transaction rejected, currency not supported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "c183b9a6-1db3-4c5b-bb1a-1d0d82f47c3a"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 278
{
"requestUuid" : "4683e247-c3c0-4ae7-9979-98113200c966",
"transactionStatus" : "REJECTED",
"status" : "E0152",
"message" : "Transaction rejected, issuer card not supported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "2adfd216-33d0-48af-9da7-5f4dcba4d81c"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 270
{
"requestUuid" : "2ecee493-91ce-4048-94f6-16a89bcb911c",
"transactionStatus" : "REJECTED",
"status" : "E01580",
"message" : "Transaction rejected. Card is expired.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "5c06f460-e772-4d5e-a42e-95ddf1fde2be"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 295
{
"requestUuid" : "3312a397-2369-4e8b-8aab-d8bdc5a94208",
"transactionStatus" : "REJECTED",
"status" : "E0159",
"message" : "Transaction rejected, restricted transaction amount has occurred",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f5156801-ca81-4a16-bd2b-89b82ac94e67"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 267
{
"requestUuid" : "ec077c42-6021-48b6-acc9-8722ee223e76",
"transactionStatus" : "REJECTED",
"status" : "E0201",
"message" : "Transaction rejected, bin is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "7bf25ae3-dbc7-47b5-ab20-ace63b362eb5"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "60f691c7-ad36-4e18-bbeb-d7569a1efbee",
"transactionStatus" : "REJECTED",
"status" : "E0202",
"message" : "Transaction rejected, terminal is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "1df95f96-1258-4245-96f6-4d8f1fd160d9"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "5e4e39c5-dade-4598-8b53-a1ed17bb918e",
"transactionStatus" : "REJECTED",
"status" : "E0204",
"message" : "Transaction rejected, user is on aml list",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "6760a846-4888-4d0f-a3dd-469dcc6baaa2"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 268
{
"requestUuid" : "95dfa38e-9c80-41a7-b875-3cb9d2cb26ee",
"transactionStatus" : "REJECTED",
"status" : "E0205",
"message" : "Transaction rejected, bank is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "3007a23c-cc82-4c90-99fc-17f61acaef2e"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 301
{
"requestUuid" : "2cf3f66c-faf0-4fcf-99d0-bc37d7656a4a",
"transactionStatus" : "REJECTED",
"status" : "E0206",
"message" : "Transaction rejected, too many reject transactions and card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "cb5a2ba3-9475-4b44-98bd-364bc0444a2a"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 299
{
"requestUuid" : "4d205a3a-ec10-4856-991b-a14882c5f734",
"transactionStatus" : "REJECTED",
"status" : "E0207",
"message" : "Transaction rejected, too many attempts declined and card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "d69eda4d-48f6-458e-ab05-da487c58d921"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 321
{
"requestUuid" : "fffaf8ce-2ab5-43d3-b846-557cbd06fec3",
"transactionStatus" : "REJECTED",
"status" : "E0208",
"message" : "Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "bd158d13-d7f0-4dd2-a0ab-9f617fac17e5"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 292
{
"requestUuid" : "ee3b6dc0-6c6a-4a59-b197-69064b3a68c3",
"transactionStatus" : "REJECTED",
"status" : "E0209",
"message" : "Transaction rejected, sender name contains fraudulent phrase.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "73c0a2c6-b712-4742-ab57-ccbcb3880dba"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 276
{
"requestUuid" : "c60b31a9-b34b-4b19-9fd4-7458799f6a34",
"transactionStatus" : "REJECTED",
"status" : "E0210",
"message" : "Transaction rejected, suspicious sender name.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "89d4ebd8-6271-4b44-be8b-3a700abd179e"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 277
{
"requestUuid" : "6aa4ab52-e351-4166-992c-035a71321ad3",
"transactionStatus" : "REJECTED",
"status" : "E0211",
"message" : "Transaction rejected, card country restricted.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "60af1bcc-e676-40a5-bf88-f8da8dfbc1c9"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 317
{
"requestUuid" : "ce27d58d-d497-447e-b12c-d917abe41f35",
"transactionStatus" : "REJECTED",
"status" : "E01594",
"message" : "Transaction rejected, transactionXId parameter had registered for another transaction",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f390a7b2-c990-4023-b64d-28cfbc3c1c62"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 321
{
"requestUuid" : "195a3940-7310-4e97-bacd-031877bf3a2e",
"transactionStatus" : "REJECTED",
"status" : "E01596",
"message" : "Transaction rejected, terminal blocks transactions with card issued in given card country",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "e76d7544-601c-4734-aec3-e7e330205d30"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 369
{
"requestUuid" : "19a4bddc-74b4-4575-993e-a383c78e8743",
"transactionStatus" : "REJECTED",
"status" : "E01597",
"message" : "Transaction rejected, 3DS version of terminal are not compatible with 3DS version defined in request. Please contact the sales department",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "684f5bf7-f3a4-4e0f-8a0c-ab679ce501fe"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 315
{
"requestUuid" : "3d15f0c5-dd34-40c7-8339-cef0335c0de8",
"transactionStatus" : "REJECTED",
"status" : "E01607",
"message" : "Transaction rejected, internal server error during authorization request generation",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "67bb51e4-deed-4939-8dc1-45446121d59f"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 298
{
"requestUuid" : "3b6a48e4-8f8e-4e0f-a5a6-53af87fe6a41",
"transactionStatus" : "REJECTED",
"status" : "E01598",
"message" : "Transaction rejected, ECI value is not available for card provider",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "9b33c58c-442b-4853-bd22-8e231fa2144c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 381
{
"requestUuid" : "f417626a-8a97-4ad9-8dfc-514eccb5b2ff",
"transactionStatus" : "REJECTED",
"cardBlockadeAdditionalData" : {
"blockType" : "TEMP",
"blockedUntil" : "2022-11-01T12:51:32.000"
},
"status" : "E0200",
"message" : "Transaction rejected, card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "7b8f0b5a-7537-48e7-a199-c420c9e5f4af"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
|
|
Block type. Possible values: TEMP - temporary, PERMANENT - permanent. |
|
|
Date until card will be blocked in yyyy-MM-ddThh-mm-ss.SSS format. |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 326
{
"requestUuid" : "c132546c-4a59-4ab0-8e09-9b52d049849f",
"transactionStatus" : "REJECTED",
"status" : "E01584",
"message" : "Transaction rejected, 3DS 2.X flow invoked for other card number than specified in the request",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "7f07a1c7-624b-4962-8197-7aaee8ec75b7"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 286
{
"requestUuid" : "b27147a5-3afc-463a-b179-f93c0c4012f3",
"transactionStatus" : "REJECTED",
"status" : "E01601",
"message" : "Transaction rejected, terminal is blocked for provider",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f4b91d72-d5f0-4878-8907-9c3d948767fc"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 308
{
"requestUuid" : "fbbfe31e-8580-43b6-bf2e-87f36e44d032",
"transactionStatus" : "REJECTED",
"status" : "E01602",
"message" : "Transaction rejected, geographic scope is not permitted for this transaction",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "41ea36da-ec1b-4103-abfb-4e074c1719b5"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 300
{
"requestUuid" : "1ad97140-8c92-4b7f-989d-cbc984bd8839",
"transactionStatus" : "REJECTED",
"status" : "E10000",
"message" : "Transaction rejected, terminal daily card transaction limit exceeded",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "6b5da57c-d736-43f7-8ab8-df35b2d3da30"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 295
{
"requestUuid" : "0bcbf280-aa9d-49db-a605-10ecd810c707",
"transactionStatus" : "REJECTED",
"status" : "E10001",
"message" : "Transaction rejected, terminal daily transaction limit exceeded",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "9f70f1fc-1463-4264-aacb-edd71900e43c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 297
{
"requestUuid" : "4805d9db-213f-4faf-81d8-8aeb2fd7beac",
"transactionStatus" : "REJECTED",
"status" : "E10002",
"message" : "Transaction rejected, terminal monthly transaction limit exceeded",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "e71cea9d-4c2b-421f-a5f7-42b21b6e79c5"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 282
{
"requestUuid" : "5503a1f8-fa3d-4769-b962-1ba159fc4ba1",
"transactionStatus" : "REJECTED",
"status" : "E13000",
"message" : "Transaction rejected, merchant risk score exceeded",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "4b53b0e4-b631-45d7-bb01-570b9e780d82"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 183
{
"status" : "E0142",
"message" : "Commission configuration not add for terminal",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "6e1cb84f-d4ff-42a1-a6a9-e85675d0d4c1"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 280
{
"requestUuid" : "e7eded19-b831-4779-8862-e7f71bc5e6a1",
"transactionStatus" : "PENDING",
"status" : "E0153",
"message" : "Transaction declined, problem with MIP connection",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "3242056d-3ce2-43a3-8215-ec45350d65f2"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 273
{
"requestUuid" : "9354a821-57f0-400f-91f0-52cdeeb8e828",
"transactionStatus" : "DECLINED",
"status" : "E01599",
"message" : "Transaction declined, processing timeout",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "ef8a7d04-be7f-4d32-af9a-9f47190f4e04"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 166
{
"status" : "E0190",
"message" : "Failed to get currency rates",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "2545dda1-5f74-41fe-937f-ca3f7db04e1a"
}
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "d47125f6-edb2-4ec0-8a61-4ca6581b8482"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 265
{
"requestUuid" : "d85b3bff-ce71-4e5d-8eb7-8b18930ab383",
"transactionStatus" : "DECLINED",
"status" : "E9008",
"message" : "Error mpi - 3ds initialize failed",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "a3f08f6f-93a1-4945-a10b-1ee7c77a06ee"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:12 GMT
Connection: close
Content-Length: 169
{
"status" : "E0400",
"message" : "Failed to get currency for card",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "0293825c-eaf0-45bb-909b-6282b869c44c"
}
HTTP/1.1 503 Service Unavailable
Content-Type: application/json
Content-Length: 250
{
"requestUuid" : "7f1fabbb-21b8-40a3-a739-515fdf4a16db",
"transactionStatus" : "DECLINED",
"status" : "E9002",
"message" : "Error mpi connection",
"httpStatus" : "SERVICE_UNAVAILABLE",
"traceId" : "cffdfbf2-06a8-4d70-b767-ad3eef01c15d"
}
HTTP/1.1 503 Service Unavailable
Content-Type: application/json
Content-Length: 258
{
"requestUuid" : "4ede443b-11df-4536-85da-0d2709493ad5",
"transactionStatus" : "REJECTED",
"status" : "E9010",
"message" : "Error data center connection",
"httpStatus" : "SERVICE_UNAVAILABLE",
"traceId" : "23fd63a5-7677-4bcf-ae79-52e65ab0b5ce"
}
HTTP/1.1 503 Service Unavailable
Content-Type: application/json
Content-Length: 249
{
"requestUuid" : "f8bf5a8e-5797-424d-b44d-b4704397fcb1",
"transactionStatus" : "ERROR",
"status" : "E9011",
"message" : "Error limit connection",
"httpStatus" : "SERVICE_UNAVAILABLE",
"traceId" : "78de601b-a929-4cfe-b6dc-e02dc2d21b09"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
7.5. MO/TO payment
MO/TO is a type of transaction where the customer makes a purchase in the merchant's shop by phone or e-mail. All required transactional data are obtained through a call to the merchant's consultant and sensitive data, e.g. by typing cvc, expiry date, card number on the phone keypad. The MO/TO transaction has two possible types of authentication: CVC (using the card's cvc) or AVS (using the cardholder's address - postcode and address e.g. house number).
Merchant has the ability to make a payment for goods which causes the cardholder to be debited in the currency of purchase, terminal or card currency based on the parameters provided: currency of transaction, different currency terminals held and currencies supported by the card. The optional terminalUuid field provided during any of the authorisation methods forces the card to be debited in the currency of the terminal specified if the purchase currency is different from the terminal currency a currency conversion will take place.
The Fenige Payment API methods optionally allows merchants to store card data and sensitive personal data in order to allow performing subsequent transactions. If merchant decides to use DataCenter transaction flow then is required to provide the card id of the card previously stored in the Fenige DataCenter, from which card the relevant required parameters will be downloaded and used for authorization. Card data and sensitive personal data according to the Fenige API specification are: cardNumber, expiryDate, firstName, lastName and email. All card data are stored securely on Fenige DataCenter servers in accordance with applicable security requirements.
From January 2021, there is an internal functionality to restrict access for the PSP to specific method. The Fenige employee can disable access to a given endpoint, then the HTTP status 403 FORBIDDEN will be returned. The PSP will be informed about each access restriction action. |
When performing authorization, remember that there are currencies with different number of decimal places. For example: VND has no pennies and KWD has three decimal places. Please take this into account in the Amout field. For more information on other currencies, see ISO 4217. |
7.5.1. Request
POST /client/payments/moto/auth HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 715
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "1d050dfb-cdb5-412f-8c99-8b28e0bc80a1",
"requestUuid" : "f221b1bf-bc16-46e8-a773-c05d74cd7458",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 1000,
"currency" : "USD",
"cardNumber" : "5453131785534417",
"expiryDate" : "11/26",
"cvc2" : "123",
"email" : "test@fenige.pl",
"motoType" : "CVC",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"province" : "NY",
"postalCode" : "24-110",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
firstName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
First name of cardholder |
lastName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
Last name of cardholder |
amount |
Number |
@Must be at least 100, @Must not be null |
The total transfer amount (in pennies) |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
cardNumber |
String |
@Card number length must be between 12 and 19, @Must not be blank, @Must not be null |
Full cardholder’s card number must be between 12-digits and 19-digits |
expiryDate |
String |
@Must not be blank, @Must not be null |
Expiration date of card mm/yy |
cvc2 |
String |
@Length must be 3 characters, @Must not be null when MO/TO CVC @Must match regular expression: \d+ |
Cardholder’s card cvc2. Required only when moto verification type (motoType) is set to CVC value |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
motoType |
String |
@Must not be null |
Allows to switch between CVC and AVS (Address Verification) methods of authentication |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
POST /client/payments/moto/auth HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 774
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "3ef2adae-46ad-4f1a-a89d-13a8d5299fdd",
"terminalUuid" : "c4b25273-9569-4206-b011-0fe10ca2adb2",
"requestUuid" : "684702b6-fa39-49ae-801a-84e17b19a6aa",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 1000,
"currency" : "USD",
"cardNumber" : "5453131785534417",
"expiryDate" : "11/26",
"cvc2" : "123",
"email" : "test@fenige.pl",
"motoType" : "CVC",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"postalCode" : "24-110",
"province" : "NY",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
terminalUuid |
String |
@Length must be between 2 and 35, @Must match the regular expression |
Terminals’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
firstName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
First name of cardholder |
lastName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
Last name of cardholder |
amount |
Number |
@Must be at least 100, @Must not be null |
The total transfer amount (in pennies) |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
cardNumber |
String |
@Card number length must be between 12 and 19, @Must not be blank, @Must not be null |
Full cardholder’s card number must be between 12-digits and 19-digits |
expiryDate |
String |
@Must not be blank, @Must not be null |
Expiration date of card mm/yy |
cvc2 |
String |
@Length must be 3 characters, @Must not be null when MO/TO CVC @Must match regular expression: \d+ |
Cardholder’s card cvc2. Required only when moto verification type (motoType) is set to CVC value |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
motoType |
String |
@Must not be null |
Allows to switch between CVC and AVS (Address Verification) methods of authentication |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional@Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
POST /client/payments/moto/auth HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 728
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "1d050dfb-cdb5-412f-8c99-8b28e0bc80a1",
"requestUuid" : "3212ba37-a399-4cf2-80bb-8d3fc332f2dd",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 1000,
"currency" : "USD",
"cardNumber" : "5453131785534417",
"expiryDate" : "11/26",
"email" : "test@fenige.pl",
"motoType" : "AVS",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"clientPostalCode" : "24-110",
"clientAddress" : "5",
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"province" : "NY",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
firstName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
First name of cardholder |
lastName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
Last name of cardholder |
amount |
Number |
@Must be at least 100, @Must not be null |
The total transfer amount (in pennies) |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
cardNumber |
String |
@Card number length must be between 12 and 19, @Must not be blank, @Must not be null |
Full cardholder’s card number must be between 12-digits and 19-digits |
expiryDate |
String |
@Must not be blank, @Must not be null |
Expiration date of card mm/yy |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
motoType |
String |
@Must not be null |
Allows to switch between CVC and AVS (Address Verification) methods of authentication |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
clientPostalCode |
String |
@Length must be between 1 and 10 inclusive, @Must not be blank, @Must not be null when AVS |
Client postal code required in AVS service to authorize cardholder in bank issuer during MO/TO transaction |
clientAddress |
String |
@Must not be null when AVS |
Client address (e.g. house number) required in AVS service to authorize cardholder in bank issuer during MO/TO transaction |
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
POST /client/payments/moto/auth HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 787
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "3ef2adae-46ad-4f1a-a89d-13a8d5299fdd",
"terminalUuid" : "c4b25273-9569-4206-b011-0fe10ca2adb2",
"requestUuid" : "4943adc6-cd2c-4bf7-a2bd-eba2133978c9",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 1000,
"currency" : "USD",
"cardNumber" : "5453131785534417",
"expiryDate" : "11/26",
"email" : "test@fenige.pl",
"motoType" : "AVS",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"clientPostalCode" : "24-110",
"clientAddress" : "5",
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"province" : "NY",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
terminalUuid |
String |
@Length must be between 2 and 35, @Must match the regular expression |
Terminals’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
firstName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
First name of cardholder |
lastName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
Last name of cardholder |
amount |
Number |
@Must be at least 100, @Must not be null |
The total transfer amount (in pennies) |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
cardNumber |
String |
@Card number length must be between 12 and 19, @Must not be blank, @Must not be null |
Full cardholder’s card number must be between 12-digits and 19-digits |
expiryDate |
String |
@Must not be blank, @Must not be null |
Expiration date of card mm/yy |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
motoType |
String |
@Must not be null |
Allows to switch between CVC and AVS (Address Verification) methods of authentication |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
clientPostalCode |
String |
@Length must be between 1 and 10 inclusive, @Must not be blank, @Must not be null when AVS |
Client postal code required in AVS service to authorize cardholder in bank issuer during MO/TO transaction |
clientAddress |
String |
@Must not be null when AVS |
Client address (e.g. house number) required in AVS service to authorize cardholder in bank issuer during MO/TO transaction |
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
POST /client/payments/moto/auth HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 593
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "1d050dfb-cdb5-412f-8c99-8b28e0bc80a1",
"requestUuid" : "ff5155e2-1b3f-4b33-93f4-c7d707c7d3cb",
"amount" : 1000,
"currency" : "USD",
"cardId" : 1906455,
"cvc2" : "123",
"motoType" : "CVC",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"province" : "NY",
"postalCode" : "24-110",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
amount |
Number |
@Must be at least 100, @Must not be null |
The total transfer amount (in pennies) |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
cvc2 |
String |
@Length must be 3 characters, @Must not be null when MO/TO CVC @Must match regular expression: \d+ |
Cardholder’s card cvc2. Required only when moto verification type (motoType) is set to CVC value |
cardId |
Number |
@Must not be null, @Numeric |
DataCenter card id. Required to obtain card information data from DataCenter such as (cardNumber, expiryDate, firstName, lastName, email) |
motoType |
String |
@Must not be null |
Allows to switch between CVC and AVS (Address Verification) methods of authentication |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as Payment Facilitator.. |
7.5.2. Response
Response status
Status | Description |
---|---|
|
Returned when transaction was successfully authorized. |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0122 - Returned when merchant is not existing. STATUS: E0128 - Returned when sub merchant does not exists. STATUS: E0132 - Returned when terminal is not existing. STATUS: E0135 - Returned when terminal for merchant not exist or all of them are inactive. STATUS: E0137 - Returned when there is not terminal marked as default STATUS: E06003 - Returned when DataCenter card was not found. |
|
STATUS: E0150 - Returned when transaction is rejected. STATUS: E0151 - Returned when transaction is rejected, because currency is not supported. STATUS: E0152 - Returned when transaction is rejected, because issuer is not supported. STATUS: E01580 - Returned when transaction is rejected, because DataCenter card was expired. STATUS: E0159 - Returned when transaction is rejected, because restricted transaction amount has occurred STATUS: E01596 - Returned when transaction is rejected, because terminal has blocked transaction with card issued in restricted country STATUS: E01601 - Returned when transaction is rejected, because terminal is blocked for provider STATUS: E01602 - Transaction rejected, geographic scope is not permitted for this transaction STATUS: E01607 - Transaction rejected, internal server error during authorization request generation STATUS: E0200 - Returned when transaction is rejected, because card is blocked in Fenige System STATUS: E0201 - Returned when transaction is rejected, because BIN is blocked in Fenige System STATUS: E0202 - Returned when transaction is rejected, because Terminal is blocked in Fenige System STATUS: E0204 - Returned when transaction is rejected, because user’s personal data was found on AML (sanctions) list STATUS: E0205 - Returned when transaction is rejected, because Bank is blocked in Fenige System STATUS: E0206 - Returned when transaction is rejected, because to many reject transactions and card is blocked STATUS: E0207 - Returned when transaction is rejected, bacause to many attempts declined and card is blocked STATUS: E0208 - Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days STATUS: E0209 - Returned when sender or receiver name contains fraudulent phrase STATUS: E0210 - Returned when sender has suspicious name STATUS: E0211 - Returned when transaction is rejected, because card country is blocked in Fenige System. STATUS: E11000 - Returned when transaction processing time set by terminal was exceeded STATUS: E13000 - Returned when transaction risk score was exceeded |
|
STATUS: E0153 - Returned when transaction is declined, by problem with MIP connection. STATUS: E01599 - Transaction declined, processing timeout. STATUS: E0142 - Returned when commission configuration is not added for terminal. STATUS: E0190 - Returned when currency rate is invalid. STATUS: E9000 - Returned when reason is unknown. STATUS: E9010 - Returned when is error DataCenter connection. |
|
STATUS: E9001 - Returned when is error acquirer connection. |
{
"requestUuid" : "510664ea-7ad3-4113-816c-05b79847686e",
"transactionStatus" : "APPROVED",
"responseCode" : "CODE_00",
"status" : "S0002",
"message" : "Success transaction",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Request unique uuid in system |
|
|
Transaction status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Response code |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:23 GMT
Connection: close
Content-Length: 444
{
"errors" : {
"expiryDate" : [ "invalid card expiration date" ],
"lastName" : [ "must not be null", "" ],
"firstName" : [ "", "must not be null" ],
"amount" : [ "must not be null" ],
"merchantUuid" : [ "must not be null" ],
"requestUuid" : [ "must not be null" ],
"currency" : [ "must not be null" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "7d2c3edb-a0e4-40fa-a3f6-7cb1ab3e22cc"
}
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:54 GMT
Connection: close
Content-Length: 170
{
"errors" : {
"motoType" : [ "must not be null" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "ed621cd8-24ba-4c8c-8d83-68be00a3af78"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:23 GMT
Connection: close
Content-Length: 679
{
"errors" : {
"expiryDate" : [ "Card id was provided, expiryDate is obtained from data center card: 1906455" ],
"lastName" : [ "Card id was provided, lastName is obtained from data center card: 1906455" ],
"firstName" : [ "Card id was provided, firstName is obtained from data center card: 1906455" ],
"cardId" : [ "Please provide cardId for DATACENTER transaction or fields: cardNumber, expiryDate, firstName, lastName for PLAIN transaction" ],
"cardNumber" : [ "Card id was provided, cardNumber is obtained from data center card: 1906455" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "bc65d8fb-f8c4-47c7-adf7-13e767a50d15"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:44:23 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "afec24f5-a531-4216-94d7-ed1966aab6c4"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 403 Forbidden
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 135
Date: Wed, 20 Nov 2024 17:44:24 GMT
{
"status" : "E8001",
"message" : "Forbidden",
"httpStatus" : "FORBIDDEN",
"traceId" : "7c95e0c8-4f36-4791-a854-f9002b17a8cf"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0122",
"message" : "Merchant not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "f8b07626-14c7-4515-9ed3-46a38c18bddb"
}
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0132",
"message" : "Terminal not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "ee4dac06-fdbd-4bea-93c1-b422f8a0fcc6"
}
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 159
{
"status" : "E0135",
"message" : "Terminals for merchant not exists",
"httpStatus" : "NOT_FOUND",
"traceId" : "f73527a3-0d97-4492-a2a3-b2fd26c56498"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 163
{
"status" : "E0137",
"message" : "Default terminal not exist",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f8542e6d-c189-4e30-b782-743299071ca3"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 246
{
"requestUuid" : "31df3fb9-06eb-4fa4-a371-9dcf74d021bc",
"transactionStatus" : "REJECTED",
"status" : "E06003",
"message" : "Datacenter card not found",
"httpStatus" : "NOT_FOUND",
"traceId" : "9dffef25-4b4d-4781-8d48-6719bc46f56c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 251
{
"requestUuid" : "ab1833ef-4c51-487c-b987-1330eb3cc5aa",
"transactionStatus" : "REJECTED",
"status" : "E0150",
"message" : "Transaction rejected",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "65d35cb9-0f23-419e-8f50-76a2fe552081"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 275
{
"requestUuid" : "a4d7a8a5-ca46-4575-a96a-d42bb17d63a5",
"transactionStatus" : "REJECTED",
"status" : "E0151",
"message" : "Transaction rejected, currency not supported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "c183b9a6-1db3-4c5b-bb1a-1d0d82f47c3a"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 278
{
"requestUuid" : "4683e247-c3c0-4ae7-9979-98113200c966",
"transactionStatus" : "REJECTED",
"status" : "E0152",
"message" : "Transaction rejected, issuer card not supported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "2adfd216-33d0-48af-9da7-5f4dcba4d81c"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 295
{
"requestUuid" : "3312a397-2369-4e8b-8aab-d8bdc5a94208",
"transactionStatus" : "REJECTED",
"status" : "E0159",
"message" : "Transaction rejected, restricted transaction amount has occurred",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f5156801-ca81-4a16-bd2b-89b82ac94e67"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 270
{
"requestUuid" : "2ecee493-91ce-4048-94f6-16a89bcb911c",
"transactionStatus" : "REJECTED",
"status" : "E01580",
"message" : "Transaction rejected. Card is expired.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "5c06f460-e772-4d5e-a42e-95ddf1fde2be"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 267
{
"requestUuid" : "ec077c42-6021-48b6-acc9-8722ee223e76",
"transactionStatus" : "REJECTED",
"status" : "E0201",
"message" : "Transaction rejected, bin is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "7bf25ae3-dbc7-47b5-ab20-ace63b362eb5"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "60f691c7-ad36-4e18-bbeb-d7569a1efbee",
"transactionStatus" : "REJECTED",
"status" : "E0202",
"message" : "Transaction rejected, terminal is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "1df95f96-1258-4245-96f6-4d8f1fd160d9"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "5e4e39c5-dade-4598-8b53-a1ed17bb918e",
"transactionStatus" : "REJECTED",
"status" : "E0204",
"message" : "Transaction rejected, user is on aml list",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "6760a846-4888-4d0f-a3dd-469dcc6baaa2"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 268
{
"requestUuid" : "95dfa38e-9c80-41a7-b875-3cb9d2cb26ee",
"transactionStatus" : "REJECTED",
"status" : "E0205",
"message" : "Transaction rejected, bank is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "3007a23c-cc82-4c90-99fc-17f61acaef2e"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 301
{
"requestUuid" : "2cf3f66c-faf0-4fcf-99d0-bc37d7656a4a",
"transactionStatus" : "REJECTED",
"status" : "E0206",
"message" : "Transaction rejected, too many reject transactions and card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "cb5a2ba3-9475-4b44-98bd-364bc0444a2a"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 299
{
"requestUuid" : "4d205a3a-ec10-4856-991b-a14882c5f734",
"transactionStatus" : "REJECTED",
"status" : "E0207",
"message" : "Transaction rejected, too many attempts declined and card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "d69eda4d-48f6-458e-ab05-da487c58d921"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 321
{
"requestUuid" : "fffaf8ce-2ab5-43d3-b846-557cbd06fec3",
"transactionStatus" : "REJECTED",
"status" : "E0208",
"message" : "Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "bd158d13-d7f0-4dd2-a0ab-9f617fac17e5"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 292
{
"requestUuid" : "ee3b6dc0-6c6a-4a59-b197-69064b3a68c3",
"transactionStatus" : "REJECTED",
"status" : "E0209",
"message" : "Transaction rejected, sender name contains fraudulent phrase.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "73c0a2c6-b712-4742-ab57-ccbcb3880dba"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 276
{
"requestUuid" : "c60b31a9-b34b-4b19-9fd4-7458799f6a34",
"transactionStatus" : "REJECTED",
"status" : "E0210",
"message" : "Transaction rejected, suspicious sender name.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "89d4ebd8-6271-4b44-be8b-3a700abd179e"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 277
{
"requestUuid" : "6aa4ab52-e351-4166-992c-035a71321ad3",
"transactionStatus" : "REJECTED",
"status" : "E0211",
"message" : "Transaction rejected, card country restricted.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "60af1bcc-e676-40a5-bf88-f8da8dfbc1c9"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 315
{
"requestUuid" : "3d15f0c5-dd34-40c7-8339-cef0335c0de8",
"transactionStatus" : "REJECTED",
"status" : "E01607",
"message" : "Transaction rejected, internal server error during authorization request generation",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "67bb51e4-deed-4939-8dc1-45446121d59f"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 321
{
"requestUuid" : "195a3940-7310-4e97-bacd-031877bf3a2e",
"transactionStatus" : "REJECTED",
"status" : "E01596",
"message" : "Transaction rejected, terminal blocks transactions with card issued in given card country",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "e76d7544-601c-4734-aec3-e7e330205d30"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 381
{
"requestUuid" : "f417626a-8a97-4ad9-8dfc-514eccb5b2ff",
"transactionStatus" : "REJECTED",
"cardBlockadeAdditionalData" : {
"blockType" : "TEMP",
"blockedUntil" : "2022-11-01T12:51:32.000"
},
"status" : "E0200",
"message" : "Transaction rejected, card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "7b8f0b5a-7537-48e7-a199-c420c9e5f4af"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
|
|
Block type. Possible values: TEMP - temporary, PERMANENT - permanent. |
|
|
Date until card will be blocked in yyyy-MM-ddThh-mm-ss.SSS format. |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 286
{
"requestUuid" : "b27147a5-3afc-463a-b179-f93c0c4012f3",
"transactionStatus" : "REJECTED",
"status" : "E01601",
"message" : "Transaction rejected, terminal is blocked for provider",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f4b91d72-d5f0-4878-8907-9c3d948767fc"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 308
{
"requestUuid" : "fbbfe31e-8580-43b6-bf2e-87f36e44d032",
"transactionStatus" : "REJECTED",
"status" : "E01602",
"message" : "Transaction rejected, geographic scope is not permitted for this transaction",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "41ea36da-ec1b-4103-abfb-4e074c1719b5"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 282
{
"requestUuid" : "5503a1f8-fa3d-4769-b962-1ba159fc4ba1",
"transactionStatus" : "REJECTED",
"status" : "E13000",
"message" : "Transaction rejected, merchant risk score exceeded",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "4b53b0e4-b631-45d7-bb01-570b9e780d82"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 183
{
"status" : "E0142",
"message" : "Commission configuration not add for terminal",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "6e1cb84f-d4ff-42a1-a6a9-e85675d0d4c1"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 280
{
"requestUuid" : "e7eded19-b831-4779-8862-e7f71bc5e6a1",
"transactionStatus" : "PENDING",
"status" : "E0153",
"message" : "Transaction declined, problem with MIP connection",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "3242056d-3ce2-43a3-8215-ec45350d65f2"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 273
{
"requestUuid" : "9354a821-57f0-400f-91f0-52cdeeb8e828",
"transactionStatus" : "DECLINED",
"status" : "E01599",
"message" : "Transaction declined, processing timeout",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "ef8a7d04-be7f-4d32-af9a-9f47190f4e04"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 166
{
"status" : "E0190",
"message" : "Failed to get currency rates",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "2545dda1-5f74-41fe-937f-ca3f7db04e1a"
}
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "d47125f6-edb2-4ec0-8a61-4ca6581b8482"
}
Path | Type | Description |
---|---|---|
|
|
Message for response code from Fenige system |
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:12 GMT
Connection: close
Content-Length: 169
{
"status" : "E0400",
"message" : "Failed to get currency for card",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "0293825c-eaf0-45bb-909b-6282b869c44c"
}
HTTP/1.1 503 Service Unavailable
Content-Type: application/json
Content-Length: 250
{
"requestUuid" : "7f1fabbb-21b8-40a3-a739-515fdf4a16db",
"transactionStatus" : "DECLINED",
"status" : "E9002",
"message" : "Error mpi connection",
"httpStatus" : "SERVICE_UNAVAILABLE",
"traceId" : "cffdfbf2-06a8-4d70-b767-ad3eef01c15d"
}
HTTP/1.1 503 Service Unavailable
Content-Type: application/json
Content-Length: 258
{
"requestUuid" : "4ede443b-11df-4536-85da-0d2709493ad5",
"transactionStatus" : "REJECTED",
"status" : "E9010",
"message" : "Error data center connection",
"httpStatus" : "SERVICE_UNAVAILABLE",
"traceId" : "23fd63a5-7677-4bcf-ae79-52e65ab0b5ce"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
7.6. Token payment
The token payment method is a solution that allows merchant customers to make payments using mobile applications. The merchant uses a card number in the form of a token (Apple pay) and dynamic cryptographic data to authenticate the cardholder. The merchant receives this data from the token requestor it uses. Then Fenige authorizes the transaction in Mastercard or VISA and depending on the result, returns the corresponding status to the merchant. An additional option not required is to send an additional authentication in the form of an outside3ds object containing the authentication data for the 3DS version 2.x execution confirmation.
Merchant has the ability to make a payment for goods which causes the cardholder to be debited in the currency of purchase, terminal or card currency based on the parameters provided: currency of transaction, different currency terminals held and currencies supported by the card. The optional terminalUuid field provided during any of the authorisation methods forces the card to be debited in the currency of the terminal specified if the purchase currency is different from the terminal currency a currency conversion will take place.
Google pay - payment with Google pay is a standard ecommerce payment for which you can use the 6.4. Payment method except that there is no CVC2 field |
This endpoint is idempotent so if you execute more than one requests with the same data even at the same time, only first registered transaction will be processed further. In response, we receive transaction status.
From January 2021, there is an internal functionality to restrict access for the PSP to specific method. The Fenige employee can disable access to a given endpoint, then the HTTP status 403 FORBIDDEN will be returned. The PSP will be informed about each access restriction action. |
When performing authorization, remember that there are currencies with different number of decimal places. For example: VND has no pennies and KWD has three decimal places. Please take this into account in the Amout field. For more information on other currencies, see ISO 4217. |
7.6.1. Request
POST /client/payments/token/auth HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 1155
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "3c261b80-eba6-498c-90cf-9893d5920bf4",
"terminalUuid" : "b2e04305-b400-4dfb-808f-021af3efa45f",
"requestUuid" : "9439233a-53eb-42b6-bc48-df1f749614fc",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 100,
"currency" : "USD",
"tokenPan" : "5127482301411937126",
"authMethod" : "CRYPTOGRAM_3DS",
"tokenType" : "GOOGLE_PAY",
"expiryDate" : "11/26",
"email" : "test@fenige.pl",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"terminalLocation" : "HOME",
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"paymentData" : {
"onlinePaymentCryptogram" : "/0OL1zEABL+gk70RYJ8lMAABAAA=",
"eciIndicator" : "02"
},
"outside3ds" : {
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"cavvAlgorithm" : "01",
"eci" : "02",
"authenticationStatus" : "Y",
"transactionXId" : "d543820d-683e-4589-86d9-6c9e40db4b53"
},
"receiverAmount" : 90,
"countryOfResidence" : "PL",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"province" : "NY",
"postalCode" : "24-110",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
amount |
Number |
@Must be at least 100, @Must not be null |
The total transfer amount (in pennies) |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
firstName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
First name of cardholder |
lastName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
Last name of cardholder |
expiryDate |
String |
@Must not be blank, @Must not be null |
Expiration date of card mm/yy |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
tokenPan |
String |
@Must be not null, @Must be not blank, @Length must be between 16 and 19 |
Token that is used in place of sender’s card number (PAN). Token form payment gateway or native apps from google, apple etc |
terminalLocation |
String |
@Must not be null |
Location of terminal - value must be set as |
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
paymentData |
Object |
Required payment tokenization data object. Not required when tokenType = 'GOOGLE_PAY' and authMethod = 'PAN_ONLY'. |
|
paymentData.onlinePaymentCryptogram |
String |
Payment secure cryptogram obtained during merchant card tokenization in mobile app (TAVV in GOOGLE_PAY case). Base64 encoded payment crypto value. |
|
paymentData.eciIndicator |
String |
@Must match 01 or 02 or 05 or 06 |
Eci value returned only for tokens on the Visa card network. The value should be passed by merchant if present with payment cryptogram. Optional value. If tokenType = 'GOOGLE_PAY' and authMethod = 'CRYPTOGRAM_3DS' and provider is 'VISA' then this field is required. Possible values for VISA are 05, 06. |
outside3ds |
Object |
There are outside 3ds data authorization that have been send to our API |
|
outside3ds.cavv |
String |
@Must be base 64 encoded, @Size must be between 28 and 28 inclusive |
Cardholder Authentication Verification Value |
outside3ds.transactionXId |
String |
The transactionXId is the field that defines the 3DS version. The presence of this field in the HTTP request specifies that the transaction will be processed with 3DS 2.x. TransactionXId can be obtained by executing the /authentication method. |
|
outside3ds.cavvAlgorithm |
String |
Indicates the algorithm used to generate the AuthenticationCAVV value 0 - HMAC 1 - CVV 2 - CVV with ATN 3 - MasterCard SPA algorithm |
|
outside3ds.eci |
String |
@Length must be between 1 and 2 inclusive, @Must match 00 or 01 or 02 or 05 or 06 or 07, @Must not be null |
Electronic Commerce Indicator: 5 (Visa) or 2 (SecureCode) - The cardholder was successfully authenticated. 6 (Visa) or 1 (SecureCode) - Authentication was attempted, but the cardholder was not enrolled. More info. |
outside3ds.authenticationStatus |
String |
@Must match Y or A or U, @Must not be null |
Authentication status: Y - (Full Authentication) - The customer was successfully authenticated. A - (Successful Attempted Authentication) - Authentication was not available, but functionality was available to generate a proof of authentication attempt. U - (Technical or other problem) - No liability shift, consider whether to proceed with the transaction |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
tokenType |
String |
@Optional |
Token used - value may be set as |
authMethod |
String |
@Optional |
Required only if tokenType is 'GOOGLE_PAY'. Type of token transaction authorization - value may be set as If authMethod is 'CRYPTOGRAM_3DS' then paymentData is required and outside3ds is optional. If authMethod is 'PAN_ONLY' then outside3ds is required and there is no paymentData. |
city |
String |
@Optional@Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
terminalUuid |
String |
Terminals’s unique uuid in system |
POST /client/payments/token/auth HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 885
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "18a24aed-5241-4624-bcfe-a7252e5961ea",
"requestUuid" : "9439233a-53eb-42b6-bc48-df1f749614fc",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 100,
"currency" : "USD",
"authMethod" : "CRYPTOGRAM_3DS",
"tokenType" : "GOOGLE_PAY",
"tokenPan" : "5127482301411937126",
"expiryDate" : "11/26",
"email" : "test@fenige.pl",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"terminalLocation" : "HOME",
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"paymentData" : {
"onlinePaymentCryptogram" : "/0OL1zEABL+gk70RYJ8lMAABAAA=",
"eciIndicator" : "02"
},
"receiverAmount" : 90,
"countryOfResidence" : "PL",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"province" : "NY",
"postalCode" : "24-110",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
amount |
Number |
@Must be at least 100, @Must not be null |
The total transfer amount (in pennies) |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
firstName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
First name of cardholder |
lastName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
Last name of cardholder |
expiryDate |
String |
@Must not be blank, @Must not be null |
Expiration date of card mm/yy |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
tokenPan |
String |
@Must be not null, @Must be not blank, @Length must be between 16 and 19 |
Token that is used in place of sender’s card number (PAN). Token form payment gateway or native apps from google, apple etc |
terminalLocation |
String |
@Must not be null |
Location of terminal - value must be set as |
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
paymentData |
Object |
Required payment tokenization data object. Not required when tokenType = 'GOOGLE_PAY' and authMethod = 'PAN_ONLY'. |
|
paymentData.onlinePaymentCryptogram |
String |
Payment secure cryptogram obtained during merchant card tokenization in mobile app (TAVV in GOOGLE_PAY case). Base64 encoded payment crypto value. |
|
paymentData.eciIndicator |
String |
@Must match 01 or 02 or 05 or 06 |
Eci value returned only for tokens on the Visa card network. The value should be passed by merchant if present with payment cryptogram. Optional value. If tokenType = 'GOOGLE_PAY' and authMethod = 'CRYPTOGRAM_3DS' and provider is 'VISA' then this field is required. Possible values for VISA are 05, 06. |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
tokenType |
String |
@Optional |
Token used - value may be set as |
authMethod |
String |
@Optional |
Required only if tokenType is 'GOOGLE_PAY'. Type of token transaction authorization - value may be set as If authMethod is 'CRYPTOGRAM_3DS' then paymentData is required and outside3ds is optional. If authMethod is 'PAN_ONLY' then outside3ds is required and there is no paymentData. |
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
POST /client/payments/token/auth HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 944
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "3c261b80-eba6-498c-90cf-9893d5920bf4",
"terminalUuid" : "b2e04305-b400-4dfb-808f-021af3efa45f",
"requestUuid" : "9439233a-53eb-42b6-bc48-df1f749614fc",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 100,
"currency" : "USD",
"authMethod" : "CRYPTOGRAM_3DS",
"tokenType" : "GOOGLE_PAY",
"tokenPan" : "5127482301411937126",
"expiryDate" : "11/26",
"email" : "test@fenige.pl",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"terminalLocation" : "HOME",
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"paymentData" : {
"onlinePaymentCryptogram" : "/0OL1zEABL+gk70RYJ8lMAABAAA=",
"eciIndicator" : "02"
},
"receiverAmount" : 90,
"countryOfResidence" : "PL",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"province" : "NY",
"postalCode" : "24-110",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
amount |
Number |
@Must be at least 100, @Must not be null |
The total transfer amount (in pennies) |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
firstName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
First name of cardholder |
lastName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
Last name of cardholder |
expiryDate |
String |
@Must not be blank, @Must not be null |
Expiration date of card mm/yy |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
tokenPan |
String |
@Must be not null, @Must be not blank, @Length must be between 16 and 19 |
Token that is used in place of sender’s card number (PAN). Token form payment gateway or native apps from google, apple etc |
terminalLocation |
String |
@Must not be null |
Location of terminal - value must be set as |
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
paymentData |
Object |
Required payment tokenization data object. Not required when tokenType = 'GOOGLE_PAY' and authMethod = 'PAN_ONLY'. |
|
paymentData.onlinePaymentCryptogram |
String |
Payment secure cryptogram obtained during merchant card tokenization in mobile app (TAVV in GOOGLE_PAY case). Base64 encoded payment crypto value. |
|
paymentData.eciIndicator |
String |
@Must match 01 or 02 or 05 or 06 |
Eci value returned only for tokens on the Visa card network. The value should be passed by merchant if present with payment cryptogram. Optional value. If tokenType = 'GOOGLE_PAY' and authMethod = 'CRYPTOGRAM_3DS' and provider is 'VISA' then this field is required. Possible values for VISA are 05, 06. |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
tokenType |
String |
@Optional |
Token used - value may be set as |
authMethod |
String |
@Optional |
Required only if tokenType is 'GOOGLE_PAY'. Type of token transaction authorization - value may be set as If authMethod is 'CRYPTOGRAM_3DS' then paymentData is required and outside3ds is optional. If authMethod is 'PAN_ONLY' then outside3ds is required and there is no paymentData. |
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
terminalUuid |
String |
Terminals’s unique uuid in system |
7.6.2. Response
Response status
Status | Description |
---|---|
|
Returned when transaction was successfully authorized with Token. |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when there was a problem with authorization to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorizeToken it. |
|
STATUS: E0122 - Returned when merchant is not existing. STATUS: E0128 - Returned when sub merchant does not exists. STATUS: E0132 - Returned when terminal is not existing. STATUS: E0135 - Returned when terminal for merchant not exist or all of them are inactive. STATUS: E0137 - Returned when there is not terminal marked as default |
|
STATUS: E0150 - Returned when transaction is rejected. STATUS: E0151 - Returned when transaction is rejected, because currency is not supported. STATUS: E0152 - Returned when transaction is rejected, because issuer is not supported. STATUS: E0156 - Returned where terminal used for process transaction do not support 3DS STATUS: E0157 - Returned where card used for process transaction do not support 3DS STATUS: E01583 - Returned when transaction is rejected, because outside3ds object was not provided in transaction request STATUS: E0159 - Returned when transaction is rejected, because restricted transaction amount has occurred STATUS: E01596 - Returned when transaction is rejected, because terminal has blocked transaction with card issued in restricted country STATUS: E01597 - Transaction rejected, 3DS version of terminal are not compatible with 3DS version defined in request. Please contact the sales department STATUS: E01598 - Transaction rejected, ECI value is not available for card provider STATUS: E01600 - Transaction rejected, 3DS 2.X flow invoked for other card number than specified in the request STATUS: E01601 - Returned when transaction is rejected, because terminal is blocked for provider STATUS: E01602 - Transaction rejected, geographic scope is not permitted for this transaction STATUS: E01607 - Transaction rejected, internal server error during authorization request generation STATUS: E0200 - Returned when transaction is rejected, because card is blocked in Fenige System STATUS: E0201 - Returned when transaction is rejected, because BIN is blocked in Fenige System STATUS: E0202 - Returned when transaction is rejected, because Terminal is blocked in Fenige System STATUS: E0203 - Returned when transaction is rejected, because Token is blocked in Fenige System STATUS: E0204 - Returned when transaction is rejected, because user’s personal data was found on AML (sanctions) list STATUS: E0205 - Returned when transaction is rejected, because Bank is blocked in Fenige System STATUS: E0206 - Returned when transaction is rejected, because to many reject transactions and card is blocked STATUS: E0207 - Returned when transaction is rejected, bacause to many attempts declined and card is blocked STATUS: E0208 - Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days STATUS: E0209 - Returned when sender or receiver name contains fraudulent phrase STATUS: E0210 - Returned when sender has suspicious name STATUS: E0211 - Returned when transaction is rejected, because card country is blocked in Fenige System. STATUS: E11000 - Returned when transaction processing time set by terminal was exceeded STATUS: E13000 - Returned when transaction risk score was exceeded |
|
STATUS: E0153 - Returned when transaction is declined, by problem with MIP connection. STATUS: E01599 - Transaction declined, processing timeout. STATUS: E0142 - Returned when commission configuration is not added for terminal. STATUS: E0190 - Returned when currency rate is invalid. STATUS: E9000 - Returned when reason is unknown. |
|
STATUS: E9001 - Returned when is error acquirer connection. STATUS: E9002 - Returned when is error mpi connection. |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 208
{
"requestUuid" : "1f4d422a-b30c-49df-a5b8-0043a78a40d6",
"transactionStatus" : "APPROVED",
"responseCode" : "CODE_00",
"status" : "S0002",
"message" : "Success transaction",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Request unique uuid in system |
|
|
Transaction status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Response code |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:35 GMT
Connection: close
Content-Length: 481
{
"errors" : {
"expiryDate" : [ "ExpiryDate must not be null" ],
"firstName" : [ "must not be null", "must not be blank" ],
"lastName" : [ "must not be null", "must not be blank" ],
"amount" : [ "must not be null" ],
"terminalLocation" : [ "must not be null" ],
"requestUuid" : [ "must not be null" ],
"currency" : [ "must not be null" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "531a7a92-b782-4f8b-a485-98e414967af7"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:44:35 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "5601ad70-6557-4829-818d-209ecefe09ff"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 403 Forbidden
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 135
Date: Wed, 20 Nov 2024 17:44:24 GMT
{
"status" : "E8001",
"message" : "Forbidden",
"httpStatus" : "FORBIDDEN",
"traceId" : "7c95e0c8-4f36-4791-a854-f9002b17a8cf"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0122",
"message" : "Merchant not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "5e32f215-56b8-44ef-baa3-bf870fe89eee"
}
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 159
{
"status" : "E0135",
"message" : "Terminals for merchant not exists",
"httpStatus" : "NOT_FOUND",
"traceId" : "92c44cf0-f124-4779-b69d-8d341b1d11a6"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 251
{
"requestUuid" : "4cdda76d-a50a-44f3-acb1-7e7e4c931015",
"transactionStatus" : "REJECTED",
"status" : "E0150",
"message" : "Transaction rejected",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "ae3580fc-943c-4635-b391-46c3de56d437"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 275
{
"requestUuid" : "3a81d477-66cf-4c4a-b945-fc0cbd213ab9",
"transactionStatus" : "REJECTED",
"status" : "E0151",
"message" : "Transaction rejected, currency not supported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "5dd68f59-4ada-4da1-a193-934a976626cf"
}
E01585 .HTTP Response - STATUS: E0152
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 278
{
"requestUuid" : "43168c1f-3e58-4337-af1e-c4d68f8162d4",
"transactionStatus" : "REJECTED",
"status" : "E0152",
"message" : "Transaction rejected, issuer card not supported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "697e0b4a-dd9e-4a45-9f46-01a39557b77d"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 185
{
"status" : "E0156",
"message" : "Transaction rejected, terminal not supported 3ds",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f0003091-46ec-441f-9a0f-2d84b0019b52"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 181
{
"status" : "E0157",
"message" : "Transaction rejected, card not supported 3ds",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "509529eb-6d82-4486-a315-4cf384901cde"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 295
{
"requestUuid" : "3312a397-2369-4e8b-8aab-d8bdc5a94208",
"transactionStatus" : "REJECTED",
"status" : "E0159",
"message" : "Transaction rejected, restricted transaction amount has occurred",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f5156801-ca81-4a16-bd2b-89b82ac94e67"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 273
{
"requestUuid" : "3882a22e-662e-4624-8194-7dd96591015e",
"transactionStatus" : "DECLINED",
"status" : "E01599",
"message" : "Transaction declined, processing timeout",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "6354d1f2-d9ff-4f00-b412-1e0a5f6aea4b"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 267
{
"requestUuid" : "5051b6d1-0c2a-42fb-96c6-734fdd6c764e",
"transactionStatus" : "REJECTED",
"status" : "E0201",
"message" : "Transaction rejected, bin is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "8abcbc6a-7368-4236-9137-eb695c6d5f82"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "bec3ac7c-b6af-4b1e-97d2-04f0b1463701",
"transactionStatus" : "REJECTED",
"status" : "E0202",
"message" : "Transaction rejected, terminal is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "71becd14-2fc9-4df4-9d8d-fc861b24ec0f"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 269
{
"requestUuid" : "5d6db20c-42ce-4f57-8733-38af39b408ed",
"transactionStatus" : "REJECTED",
"status" : "E0203",
"message" : "Transaction rejected, token is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "3d8b5259-0310-4d49-b2e6-3e515a720270"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "52952fad-a13c-4e3d-801c-63cba02d00b3",
"transactionStatus" : "REJECTED",
"status" : "E0204",
"message" : "Transaction rejected, user is on aml list",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "e25a68ce-4a39-42df-914a-6327ae0dc362"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 268
{
"requestUuid" : "f9bd80f5-1691-4202-82ba-4a2374bfa7a2",
"transactionStatus" : "REJECTED",
"status" : "E0205",
"message" : "Transaction rejected, bank is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "05ac0cab-4519-488b-9866-ab4e7222abc0"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 301
{
"requestUuid" : "2cf3f66c-faf0-4fcf-99d0-bc37d7656a4a",
"transactionStatus" : "REJECTED",
"status" : "E0206",
"message" : "Transaction rejected, too many reject transactions and card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "cb5a2ba3-9475-4b44-98bd-364bc0444a2a"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 299
{
"requestUuid" : "4d205a3a-ec10-4856-991b-a14882c5f734",
"transactionStatus" : "REJECTED",
"status" : "E0207",
"message" : "Transaction rejected, too many attempts declined and card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "d69eda4d-48f6-458e-ab05-da487c58d921"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 321
{
"requestUuid" : "fffaf8ce-2ab5-43d3-b846-557cbd06fec3",
"transactionStatus" : "REJECTED",
"status" : "E0208",
"message" : "Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "bd158d13-d7f0-4dd2-a0ab-9f617fac17e5"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 292
{
"requestUuid" : "ee3b6dc0-6c6a-4a59-b197-69064b3a68c3",
"transactionStatus" : "REJECTED",
"status" : "E0209",
"message" : "Transaction rejected, sender name contains fraudulent phrase.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "73c0a2c6-b712-4742-ab57-ccbcb3880dba"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 276
{
"requestUuid" : "c60b31a9-b34b-4b19-9fd4-7458799f6a34",
"transactionStatus" : "REJECTED",
"status" : "E0210",
"message" : "Transaction rejected, suspicious sender name.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "89d4ebd8-6271-4b44-be8b-3a700abd179e"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 277
{
"requestUuid" : "6aa4ab52-e351-4166-992c-035a71321ad3",
"transactionStatus" : "REJECTED",
"status" : "E0211",
"message" : "Transaction rejected, card country restricted.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "60af1bcc-e676-40a5-bf88-f8da8dfbc1c9"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 290
{
"requestUuid" : "da4f1832-86dc-422a-a946-648de727ce96",
"transactionStatus" : "REJECTED",
"status" : "E01583",
"message" : "Transaction rejected. Outside 3ds is required for terminal",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "17cf4e72-9f79-4036-bd02-7b08b3615349"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 321
{
"requestUuid" : "195a3940-7310-4e97-bacd-031877bf3a2e",
"transactionStatus" : "REJECTED",
"status" : "E01596",
"message" : "Transaction rejected, terminal blocks transactions with card issued in given card country",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "e76d7544-601c-4734-aec3-e7e330205d30"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 369
{
"requestUuid" : "19a4bddc-74b4-4575-993e-a383c78e8743",
"transactionStatus" : "REJECTED",
"status" : "E01597",
"message" : "Transaction rejected, 3DS version of terminal are not compatible with 3DS version defined in request. Please contact the sales department",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "684f5bf7-f3a4-4e0f-8a0c-ab679ce501fe"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 315
{
"requestUuid" : "3d15f0c5-dd34-40c7-8339-cef0335c0de8",
"transactionStatus" : "REJECTED",
"status" : "E01607",
"message" : "Transaction rejected, internal server error during authorization request generation",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "67bb51e4-deed-4939-8dc1-45446121d59f"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 298
{
"requestUuid" : "3b6a48e4-8f8e-4e0f-a5a6-53af87fe6a41",
"transactionStatus" : "REJECTED",
"status" : "E01598",
"message" : "Transaction rejected, ECI value is not available for card provider",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "9b33c58c-442b-4853-bd22-8e231fa2144c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 381
{
"requestUuid" : "5e4dbe10-3406-45e9-9a50-4f58d76a2e13",
"transactionStatus" : "REJECTED",
"cardBlockadeAdditionalData" : {
"blockType" : "TEMP",
"blockedUntil" : "2022-11-01T12:51:32.000"
},
"status" : "E0200",
"message" : "Transaction rejected, card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "c76415e9-f29b-47b9-8dcd-efd501d7a277"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
|
|
Block type. Possible values: TEMP - temporary, PERMANENT - permanent. |
|
|
Date until card will be blocked in yyyy-MM-ddThh-mm-ss.SSS format. |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 326
{
"requestUuid" : "c132546c-4a59-4ab0-8e09-9b52d049849f",
"transactionStatus" : "REJECTED",
"status" : "E01584",
"message" : "Transaction rejected, 3DS 2.X flow invoked for other card number than specified in the request",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "7f07a1c7-624b-4962-8197-7aaee8ec75b7"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 286
{
"requestUuid" : "b27147a5-3afc-463a-b179-f93c0c4012f3",
"transactionStatus" : "REJECTED",
"status" : "E01601",
"message" : "Transaction rejected, terminal is blocked for provider",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f4b91d72-d5f0-4878-8907-9c3d948767fc"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 308
{
"requestUuid" : "fbbfe31e-8580-43b6-bf2e-87f36e44d032",
"transactionStatus" : "REJECTED",
"status" : "E01602",
"message" : "Transaction rejected, geographic scope is not permitted for this transaction",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "41ea36da-ec1b-4103-abfb-4e074c1719b5"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 282
{
"requestUuid" : "5503a1f8-fa3d-4769-b962-1ba159fc4ba1",
"transactionStatus" : "REJECTED",
"status" : "E13000",
"message" : "Transaction rejected, merchant risk score exceeded",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "4b53b0e4-b631-45d7-bb01-570b9e780d82"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 280
{
"requestUuid" : "01c642a8-69d0-4a63-8382-16d09c8facf5",
"transactionStatus" : "PENDING",
"status" : "E0153",
"message" : "Transaction declined, problem with MIP connection",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "37b85b0d-1f72-4afa-b886-8da841202027"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 183
{
"status" : "E0142",
"message" : "Commission configuration not add for terminal",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "21949979-ef63-4ef5-a461-229ddb236218"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 166
{
"status" : "E0190",
"message" : "Failed to get currency rates",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "b107e60b-de58-429f-bb9d-b64ec4fc4a9d"
}
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "d47125f6-edb2-4ec0-8a61-4ca6581b8482"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 265
{
"requestUuid" : "b298d3d9-9eef-4745-89dc-ffad1aaa5777",
"transactionStatus" : "DECLINED",
"status" : "E9008",
"message" : "Error mpi - 3ds initialize failed",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "a3b0719a-a883-4ed0-b236-f56a4493c1c8"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:12 GMT
Connection: close
Content-Length: 169
{
"status" : "E0400",
"message" : "Failed to get currency for card",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "0293825c-eaf0-45bb-909b-6282b869c44c"
}
HTTP/1.1 503 Service Unavailable
Content-Type: application/json
Content-Length: 250
{
"requestUuid" : "564b3613-c16d-4e08-b741-0fd28f9ca465",
"transactionStatus" : "DECLINED",
"status" : "E9002",
"message" : "Error mpi connection",
"httpStatus" : "SERVICE_UNAVAILABLE",
"traceId" : "735c5696-b868-4b1b-8958-e11b5489dd3f"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
7.7. CoF payment
A CoF (credential on file transaction) is a transaction where a cardholder authorizes a merchant to store account information such as (PAN and expiration date, and the cardholder subsequently authorizes that same merchant to bill the cardholder’s stored account. The method is used to charge the cardholder with no need to collect account data (PAN, exp date) from merchant at every transaction. Using this method, we can authorize and process entire transaction using stored payment details. CoF supports both 3DS and without 3DS transactions. How the transaction will be initiated depends on the terminal settings (look at 'is3dsEnable' field). This endpoint is idempotent so if you execute more than one requests with the same data even at the same time, only first registered transaction will be processed further. In response, we receive transaction status.
The cof transaction consists of two parts: initial and subsequent, which are discussed in detail below. Please see detailed CoF transaction flow described on below listings.
Merchant has the ability to make a payment for goods which causes the cardholder to be debited in the currency of purchase, terminal or card currency based on the parameters provided: currency of transaction, different currency terminals held and currencies supported by the card. The optional terminalUuid field provided during any of the authorisation methods forces the card to be debited in the currency of the terminal specified if the purchase currency is different from the terminal currency a currency conversion will take place.
The Fenige Payment API methods optionally allows merchants to store card data and sensitive personal data in order to allow performing subsequent transactions. If merchant decides to use DataCenter transaction flow then is required to provide the card id of the card previously stored in the Fenige DataCenter, from which card the relevant required parameters will be downloaded and used for authorization. Card data and sensitive personal data according to the Fenige API specification are: cardNumber, expiryDate, firstName, lastName and email. All card data are stored securely on Fenige DataCenter servers in accordance with applicable security requirements. In addition, the CoF process can be initialized using a Tokenized card - see Tokenize Cards chapter. In this case, to initialize you need to provide the tokenUuid of the tokenized card instead of the full card number.
From January 2021, there is an internal functionality to restrict access for the PSP to specific method. The Fenige employee can disable access to a given endpoint, then the HTTP status 403 FORBIDDEN will be returned. The PSP will be informed about each access restriction action. |
When performing authorization, remember that there are currencies with different number of decimal places. For example: VND has no pennies and KWD has three decimal places. Please take this into account in the Amout field. For more information on other currencies, see ISO 4217. |
7.7.1. CoF Initial transaction
The first stage is a one-time initial transaction, which is a simple e-commerce payment but contains the customer's consent to store card data for subsequent purchases. Card data is stored in a secure FENIGE environment. After completing the initial merchant receives the unique cofInitialUuid identifier needed to perform subsequent CoF transactions without having to enter card data.
From January 2021, there is an internal functionality to restrict access for the PSP to specific method. The Fenige employee can disable access to a given endpoint, then the HTTP status 403 FORBIDDEN will be returned. The PSP will be informed about each access restriction action. |
Request
POST /client/payments/cof/initial HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 935
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "1d050dfb-cdb5-412f-8c99-8b28e0bc80a1",
"requestUuid" : "4565da29-dc4e-4ff4-9bfc-9177563662a6",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 1000,
"currency" : "USD",
"cardNumber" : "5453131785534417",
"expiryDate" : "11/26",
"cvc2" : "123",
"email" : "test@fenige.pl",
"phoneNumber" : "500500500",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"outside3ds" : {
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"cavvAlgorithm" : "01",
"eci" : "02",
"authenticationStatus" : "Y",
"transactionXId" : "d543820d-683e-4589-86d9-6c9e40db4b53"
},
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"subMerchantName" : "Sub-Merchant",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"postalCode" : "24-110",
"province" : "NY"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
firstName |
String |
Must match regular expression |
First name of cardholder |
lastName |
String |
Must match regular expression |
Last name of cardholder |
cardNumber |
String |
Full cardholder’s card number must be between 12-digits and 19-digits |
|
expiryDate |
String |
Expiration date of card mm/yy |
|
cvc2 |
String |
@Optional only for Google pay, @Length must be 3 characters, @Must match regular expression: \d+ |
Cardholder’s card cvc2 |
amount |
Number |
@Must be positive or zero, @Must not be null |
The total transfer amount (in pennies). If the amount is equal to zero there is sent account status inquiry to validate aspects of a cardholder account. |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
phoneNumber |
String |
@Optional @Must match regular expression [0-9]{3,14} |
Cardholder’s phone number |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
outside3ds |
Object |
There are outside 3ds data authorization that have been send to our API |
|
outside3ds.cavv |
String |
@Must be base 64 encoded, @Size must be between 28 and 28 inclusive |
Cardholder Authentication Verification Value |
outside3ds.transactionXId |
String |
Cardholder Authentication Verification Value. The transactionXId is the field that defines the 3DS version.The presence of this field in the HTTP request specifies that the transaction will be processed with 3DS 2.x.TransactionXId can be obtained by executing the /authentication method. |
|
outside3ds.cavvAlgorithm |
String |
Indicates the algorithm used to generate the AuthenticationCAVV value 0 - HMAC 1 - CVV 2 - CVV with ATN 3 - MasterCard SPA algorithm |
|
outside3ds.eci |
String |
@Length must be between 1 and 2 inclusive, @Must match 01 or 02 or 05 or 06, @Must not be null |
Electronic Commerce Indicator: 5 (Visa) or 2 (SecureCode) - The cardholder was successfully authenticated. 6 (Visa) or 1 (SecureCode) - Authentication was attempted, but the cardholder was not enrolled. Chargeback protection applies. |
outside3ds.authenticationStatus |
String |
@Must match Y or A, @Must not be null |
Authentication status: Y - (Full Authentication) - The customer was successfully authenticated. A - (Successful Attempted Authentication) - Authentication was not available, but functionality was available to generate a proof of authentication attempt. |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "^[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
POST /client/payments/cof/initial HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 783
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "183ec100-6644-4c79-aeb7-e0f0d7842ff5",
"terminalUuid" : "5f2a5b10-d5c0-4971-9d53-8ed17f3dbba8",
"requestUuid" : "53e9d4be-0976-434c-90d0-d3e3ac1be590",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 1000,
"currency" : "USD",
"cardNumber" : "5453131785534417",
"expiryDate" : "11/26",
"cvc2" : "123",
"email" : "test@fenige.pl",
"phoneNumber" : "500500500",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"subMerchantName" : "Sub-Merchant",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"postalCode" : "24-110",
"province" : "NY"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
firstName |
String |
Must match regular expression |
First name of cardholder |
lastName |
String |
Must match regular expression |
Last name of cardholder |
cardNumber |
String |
Full cardholder’s card number must be between 12-digits and 19-digits |
|
expiryDate |
String |
Expiration date of card mm/yy |
|
cvc2 |
String |
@Optional only for Google pay, @Length must be 3 characters, @Must match regular expression: \d+ |
Cardholder’s card cvc2 |
amount |
Number |
@Must be positive or zero, @Must not be null |
The total transfer amount (in pennies). If the amount is equal to zero there is sent account status inquiry to validate aspects of a cardholder account. |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
phoneNumber |
String |
@Optional @Must match regular expression [0-9]{3,14} |
Cardholder’s phone number |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "^[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
terminalUuid |
String |
Terminals’s unique uuid in system |
POST /client/payments/cof/initial HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 782
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "54c63924-9899-4206-a1a2-e7a5687286e3",
"requestUuid" : "22d04573-73d4-4b41-964d-8f457e6e3c9b",
"amount" : 1000,
"currency" : "USD",
"cardId" : 1906455,
"cvc2" : "123",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"outside3ds" : {
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"cavvAlgorithm" : "01",
"eci" : "02",
"authenticationStatus" : "Y",
"transactionXId" : "d543820d-683e-4589-86d9-6c9e40db4b53"
},
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"province" : "NY",
"postalCode" : "24-110",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
cvc2 |
String |
@Optional only for Google pay, @Length must be 3 characters, @Must match regular expression: \d+ |
Cardholder’s card cvc2 |
cardId |
Number |
@Must not be null, @Numeric |
DataCenter card id. Required to obtain card information data from DataCenter such as (cardNumber, expiryDate, firstName, lastName, email) |
amount |
Number |
@Must be positive or zero, @Must not be null |
The total transfer amount (in pennies). If the amount is equal to zero there is sent account status inquiry to validate aspects of a cardholder account. |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
outside3ds |
Object |
There are outside 3ds data authorization that have been send to our API |
|
outside3ds.cavv |
String |
@Must be base 64 encoded, @Size must be between 28 and 28 inclusive |
Cardholder Authentication Verification Value |
outside3ds.transactionXId |
String |
Cardholder Authentication Verification Value. The transactionXId is the field that defines the 3DS version. The presence of this field in the HTTP request specifies that the transaction will be processed with 3DS 2.x. TransactionXId can be obtained by executing the /authentication method. |
|
outside3ds.cavvAlgorithm |
String |
Indicates the algorithm used to generate the AuthenticationCAVV value 0 - HMAC 1 - CVV 2 - CVV with ATN 3 - MasterCard SPA algorithm |
|
outside3ds.eci |
String |
@Length must be between 1 and 2 inclusive, @Must match 01 or 02 or 05 or 06, @Must not be null |
Electronic Commerce Indicator: 5 (Visa) or 2 (SecureCode) - The cardholder was successfully authenticated. 6 (Visa) or 1 (SecureCode) - Authentication was attempted, but the cardholder was not enrolled. Chargeback protection applies. |
outside3ds.authenticationStatus |
String |
@Must match Y or A, @Must not be null |
Authentication status: Y - (Full Authentication) - The customer was successfully authenticated. A - (Successful Attempted Authentication) - Authentication was not available, but functionality was available to generate a proof of authentication attempt. |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "^[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
POST /client/payments/cof/initial HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 776
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "166b0115-878a-417e-b14b-db9022ffe4bd",
"terminalUuid" : "c6682958-4c60-4f85-8ab2-d3ecb10fb4fa",
"requestUuid" : "0584169d-0594-45ed-8e3a-537bdd715654",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 1000,
"currency" : "USD",
"tokenUuid" : "e93910e7-ecf7-4fe7-9cf5-aca730ca973b",
"cvc2" : "123",
"email" : "test@fenige.pl",
"phoneNumber" : "500500500",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"subMerchantName" : "Sub-Merchant",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"postalCode" : "24-110",
"province" : "NY"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
firstName |
String |
Must match regular expression |
First name of cardholder |
lastName |
String |
Must match regular expression |
Last name of cardholder |
tokenUuid |
String |
Unique tokenized card identifier corresponding to token |
|
cvc2 |
String |
@Optional only for Google pay, @Length must be 3 characters, @Must match regular expression: \d+ |
Cardholder’s card cvc2 |
amount |
Number |
@Must be positive or zero, @Must not be null |
The total transfer amount (in pennies). If the amount is equal to zero there is sent account status inquiry to validate aspects of a cardholder account. |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
phoneNumber |
String |
@Optional @Must match regular expression [0-9]{3,14} |
Cardholder’s phone number |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "^[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
terminalUuid |
String |
Terminals’s unique uuid in system |
POST /client/payments/cof/initial HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 1146
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "b8aa3873-2d7b-43af-952c-d03a49db7c51",
"requestUuid" : "7a15d9ea-878c-4380-8010-e1c9787e6360",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 1000,
"currency" : "USD",
"authMethod" : "CRYPTOGRAM_3DS",
"tokenType" : "GOOGLE_PAY",
"terminalLocation" : "HOME",
"paymentData" : {
"onlinePaymentCryptogram" : "/0OL1zEABL+gk70RYJ8lMAABAAA=",
"eciIndicator" : "02"
},
"cardNumber" : "5453131785534417",
"expiryDate" : "11/26",
"cvc2" : "123",
"email" : "test@fenige.pl",
"phoneNumber" : "500500500",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"outside3ds" : {
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"cavvAlgorithm" : "01",
"eci" : "02",
"authenticationStatus" : "Y",
"transactionXId" : "d543820d-683e-4589-86d9-6c9e40db4b53"
},
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"subMerchantName" : "Sub-Merchant",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"postalCode" : "24-110",
"province" : "NY"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
firstName |
String |
Must match regular expression |
First name of cardholder |
lastName |
String |
Must match regular expression |
Last name of cardholder |
cardNumber |
String |
Full cardholder’s Token Pan must be between 12-digits and 19-digits |
|
expiryDate |
String |
Expiration date of card mm/yy |
|
cvc2 |
String |
@Optional only for Google pay, @Length must be 3 characters, @Must match regular expression: \d+ |
Cardholder’s card cvc2 |
amount |
Number |
@Must be positive or zero, @Must not be null |
The total transfer amount (in pennies). If the amount is equal to zero there is sent account status inquiry to validate aspects of a cardholder account. |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
tokenType |
String |
@Optional |
Token used - value may be set as |
authMethod |
String |
@Optional |
Required only if tokenType is 'GOOGLE_PAY'. Type of token transaction authorization - value may be set as If authMethod is 'CRYPTOGRAM_3DS' then paymentData is required and outside3ds is optional. If authMethod is 'PAN_ONLY' then outside3ds is required and there is no paymentData. |
terminalLocation |
String |
Location of terminal - value must be set as |
|
paymentData |
Object |
Required payment tokenization data object. Not required when tokenType = 'GOOGLE_PAY' and authMethod = 'PAN_ONLY'. |
|
paymentData.onlinePaymentCryptogram |
String |
Payment secure cryptogram obtained during merchant card tokenization in mobile app (TAVV in GOOGLE_PAY case). Base64 encoded payment crypto value. |
|
paymentData.eciIndicator |
String |
@Must match 01 or 02 or 05 or 06 |
Eci value returned only for tokens on the Visa card network. The value should be passed by merchant if present with payment cryptogram. Optional value. If tokenType = 'GOOGLE_PAY' and authMethod = 'CRYPTOGRAM_3DS' and provider is 'VISA' then this field is required. Possible values for VISA are 05, 06. |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
phoneNumber |
String |
@Optional @Must match regular expression [0-9]{3,14} |
Cardholder’s phone number |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
outside3ds |
Object |
There are outside 3ds data authorization that have been send to our API |
|
outside3ds.cavv |
String |
@Must be base 64 encoded, @Size must be between 28 and 28 inclusive |
Cardholder Authentication Verification Value |
outside3ds.transactionXId |
String |
Cardholder Authentication Verification Value. The transactionXId is the field that defines the 3DS version.The presence of this field in the HTTP request specifies that the transaction will be processed with 3DS 2.x.TransactionXId can be obtained by executing the /authentication method. |
|
outside3ds.cavvAlgorithm |
String |
Indicates the algorithm used to generate the AuthenticationCAVV value 0 - HMAC 1 - CVV 2 - CVV with ATN 3 - MasterCard SPA algorithm |
|
outside3ds.eci |
String |
@Length must be between 1 and 2 inclusive, @Must match 01 or 02 or 05 or 06, @Must not be null |
Electronic Commerce Indicator: 5 (Visa) or 2 (SecureCode) - The cardholder was successfully authenticated. 6 (Visa) or 1 (SecureCode) - Authentication was attempted, but the cardholder was not enrolled. Chargeback protection applies. |
outside3ds.authenticationStatus |
String |
@Must match Y or A, @Must not be null |
Authentication status: Y - (Full Authentication) - The customer was successfully authenticated. A - (Successful Attempted Authentication) - Authentication was not available, but functionality was available to generate a proof of authentication attempt. |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional@Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "^[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as Payment Facilitator.. |
Response
Status | Description |
---|---|
|
Returned when transaction was successfully authorized. |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0122 - Returned when merchant is not existing. STATUS: E0128 - Returned when sub merchant does not exists. STATUS: E0132 - Returned when terminal is not existing. STATUS: E0135 - Returned when terminal for merchant not exist or all of them are inactive. STATUS: E0137 - Returned when there is not terminal marked as default STATUS: E06003 - Returned when DataCenter card was not found. STATUS: E15006 - Returned when tokenized card was not found by tokenUuid. |
|
STATUS: E0150 - Returned when transaction is rejected. STATUS: E0151 - Returned when transaction is rejected, because currency is not supported. STATUS: E0152 - Returned when transaction is rejected, because issuer is not supported. STATUS: E01580 - Returned when transaction is rejected, because DataCenter card was expired. STATUS: E0159 - Returned when transaction is rejected, because restricted transaction amount has occurred STATUS: E01596 - Returned when transaction is rejected, because terminal has blocked transaction with card issued in restricted country STATUS: E01601 - Returned when transaction is rejected, because terminal is blocked for provider STATUS: E01602 - Transaction rejected, geographic scope is not permitted for this transaction STATUS: E01607 - Transaction rejected, internal server error during authorization request generation STATUS: E0200 - Returned when transaction is rejected, because card is blocked in Fenige System STATUS: E0201 - Returned when transaction is rejected, because BIN is blocked in Fenige System STATUS: E0202 - Returned when transaction is rejected, because Terminal is blocked in Fenige System STATUS: E0204 - Returned when transaction is rejected, because user’s personal data was found on AML (sanctions) list STATUS: E0205 - Returned when transaction is rejected, because Bank is blocked in Fenige System STATUS: E0206 - Returned when transaction is rejected, because to many reject transactions and card is blocked STATUS: E0207 - Returned when transaction is rejected, bacause to many attempts declined and card is blocked STATUS: E0208 - Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days STATUS: E0209 - Returned when sender or receiver name contains fraudulent phrase STATUS: E0210 - Returned when sender has suspicious name STATUS: E0211 - Returned when transaction is rejected, because card country is blocked in Fenige System. STATUS: E01600 - Returned when transaction is declined, because 3DS 2.X flow invoked for other card number than specified in the request STATUS: E11000 - Returned when transaction processing time set by terminal was exceeded STATUS: E13000 - Returned when transaction risk score was exceeded |
|
STATUS: E0142 - Returned when commission configuration is not added for terminal. STATUS: E0153 - Returned when transaction is declined, by problem with MIP connection. STATUS: E01599 - Transaction declined, processing timeout. STATUS: E0190 - Returned when currency rate is invalid. STATUS: E9000 - Returned when reason is unknown. |
|
STATUS: E9001 - Returned when is error acquirer connection. STATUS: E9002 - Returned when is error mpi connection. STATUS: E9010 - Returned when is error DataCenter connection. |
{
"requestUuid" : "40628a31-530e-4ff5-8504-33b9cc883c7b",
"cofInitialUuid" : "8e1cdd57-1e99-40f4-b25a-64676baed1ef",
"transactionStatus" : "APPROVED",
"responseCode" : "CODE_00",
"status" : "S0002",
"message" : "Success transaction",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Request unique uuid in system |
|
|
CoF transaction unique uuid in system |
|
|
Transaction status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Response code |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:15 GMT
Connection: close
Content-Length: 679
{
"errors" : {
"expiryDate" : [ "Card id was provided, expiryDate is obtained from data center card: 1906455" ],
"lastName" : [ "Card id was provided, lastName is obtained from data center card: 1906455" ],
"firstName" : [ "Card id was provided, firstName is obtained from data center card: 1906455" ],
"cardId" : [ "Please provide cardId for DATACENTER transaction or fields: cardNumber, expiryDate, firstName, lastName for PLAIN transaction" ],
"cardNumber" : [ "Card id was provided, cardNumber is obtained from data center card: 1906455" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "6f7f0820-455c-496d-b649-9b64eeabee5f"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:14 GMT
Connection: close
Content-Length: 679
{
"errors" : {
"expiryDate" : [ "Card id was provided, expiryDate is obtained from data center card: 1906455" ],
"firstName" : [ "Card id was provided, firstName is obtained from data center card: 1906455" ],
"lastName" : [ "Card id was provided, lastName is obtained from data center card: 1906455" ],
"cardId" : [ "Please provide cardId for DATACENTER transaction or fields: cardNumber, expiryDate, firstName, lastName for PLAIN transaction" ],
"cardNumber" : [ "Card id was provided, cardNumber is obtained from data center card: 1906455" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "bf4ea967-cb90-4e46-b215-67c1765b2b44"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:44:14 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "fa5deaaa-3c9f-460d-8a14-26f4656deff4"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 403 Forbidden
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 135
Date: Wed, 20 Nov 2024 17:44:15 GMT
{
"status" : "E8001",
"message" : "Forbidden",
"httpStatus" : "FORBIDDEN",
"traceId" : "2ccdd9a6-bb2b-43d1-9ac1-6781a6f681e1"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0122",
"message" : "Merchant not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "3fe9bcee-fb84-4e6e-b789-4bc0cf900c48"
}
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0132",
"message" : "Terminal not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "05b5b8d2-8d3f-4d3b-9254-6da9ef89f0c2"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 163
{
"status" : "E0137",
"message" : "Default terminal not exist",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "b5977dd8-fa64-432b-b52d-7b3f6b36dde3"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 159
{
"status" : "E0135",
"message" : "Terminals for merchant not exists",
"httpStatus" : "NOT_FOUND",
"traceId" : "2d420800-a7f1-4b90-abc2-a558a583b8f2"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 246
{
"requestUuid" : "31df3fb9-06eb-4fa4-a371-9dcf74d021bc",
"transactionStatus" : "REJECTED",
"status" : "E06003",
"message" : "Datacenter card not found",
"httpStatus" : "NOT_FOUND",
"traceId" : "9dffef25-4b4d-4781-8d48-6719bc46f56c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 242
{
"requestUuid" : "cb122416-9047-4e00-8a69-e3aea07dffc4",
"transactionStatus" : "REJECTED",
"status" : "E15006",
"message" : "Error token not found",
"httpStatus" : "NOT_FOUND",
"traceId" : "b1073a0f-060d-4822-9223-10bb48b5e6e4"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 251
{
"requestUuid" : "dfe02f36-d928-4f2d-b20e-ba6c08895425",
"transactionStatus" : "REJECTED",
"status" : "E0150",
"message" : "Transaction rejected",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "0d3f3089-de45-4434-ab41-5e9695cc5fe1"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 275
{
"requestUuid" : "c6f1a2ea-a0ee-4756-9352-528bf08e2fe6",
"transactionStatus" : "REJECTED",
"status" : "E0151",
"message" : "Transaction rejected, currency not supported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "0616cbde-aac2-46f5-8dcf-3a221e161214"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 278
{
"requestUuid" : "3541ad62-6ebd-4f3a-afd8-659ca6d803ea",
"transactionStatus" : "REJECTED",
"status" : "E0152",
"message" : "Transaction rejected, issuer card not supported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "cea80e9e-8e88-483b-8038-f56e94558e83"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 270
{
"requestUuid" : "2ecee493-91ce-4048-94f6-16a89bcb911c",
"transactionStatus" : "REJECTED",
"status" : "E01580",
"message" : "Transaction rejected. Card is expired.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "5c06f460-e772-4d5e-a42e-95ddf1fde2be"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 295
{
"requestUuid" : "3312a397-2369-4e8b-8aab-d8bdc5a94208",
"transactionStatus" : "REJECTED",
"status" : "E0159",
"message" : "Transaction rejected, restricted transaction amount has occurred",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f5156801-ca81-4a16-bd2b-89b82ac94e67"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 267
{
"requestUuid" : "4321b974-52ec-4cfe-92ae-caf38a096e91",
"transactionStatus" : "REJECTED",
"status" : "E0201",
"message" : "Transaction rejected, bin is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "14374237-9a37-4ca5-8a92-a842eb089744"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "243b4f42-a5a3-450a-812b-64069b447715",
"transactionStatus" : "REJECTED",
"status" : "E0202",
"message" : "Transaction rejected, terminal is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "16bf7f18-3f63-4c90-af55-2b17a808a17c"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "69caf517-48f7-4695-81a7-40b5d34e5b2f",
"transactionStatus" : "REJECTED",
"status" : "E0204",
"message" : "Transaction rejected, user is on aml list",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "609617f6-7d38-4801-88ae-b6865d592ea0"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 268
{
"requestUuid" : "e8ce4352-7b4a-4c43-85d7-d22506c122c2",
"transactionStatus" : "REJECTED",
"status" : "E0205",
"message" : "Transaction rejected, bank is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "3cca3508-e4c9-4f17-b89a-97741b44c764"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 301
{
"requestUuid" : "2cf3f66c-faf0-4fcf-99d0-bc37d7656a4a",
"transactionStatus" : "REJECTED",
"status" : "E0206",
"message" : "Transaction rejected, too many reject transactions and card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "cb5a2ba3-9475-4b44-98bd-364bc0444a2a"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 299
{
"requestUuid" : "4d205a3a-ec10-4856-991b-a14882c5f734",
"transactionStatus" : "REJECTED",
"status" : "E0207",
"message" : "Transaction rejected, too many attempts declined and card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "d69eda4d-48f6-458e-ab05-da487c58d921"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 321
{
"requestUuid" : "fffaf8ce-2ab5-43d3-b846-557cbd06fec3",
"transactionStatus" : "REJECTED",
"status" : "E0208",
"message" : "Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "bd158d13-d7f0-4dd2-a0ab-9f617fac17e5"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 292
{
"requestUuid" : "ee3b6dc0-6c6a-4a59-b197-69064b3a68c3",
"transactionStatus" : "REJECTED",
"status" : "E0209",
"message" : "Transaction rejected, sender name contains fraudulent phrase.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "73c0a2c6-b712-4742-ab57-ccbcb3880dba"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 276
{
"requestUuid" : "c60b31a9-b34b-4b19-9fd4-7458799f6a34",
"transactionStatus" : "REJECTED",
"status" : "E0210",
"message" : "Transaction rejected, suspicious sender name.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "89d4ebd8-6271-4b44-be8b-3a700abd179e"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 277
{
"requestUuid" : "6aa4ab52-e351-4166-992c-035a71321ad3",
"transactionStatus" : "REJECTED",
"status" : "E0211",
"message" : "Transaction rejected, card country restricted.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "60af1bcc-e676-40a5-bf88-f8da8dfbc1c9"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 321
{
"requestUuid" : "195a3940-7310-4e97-bacd-031877bf3a2e",
"transactionStatus" : "REJECTED",
"status" : "E01596",
"message" : "Transaction rejected, terminal blocks transactions with card issued in given card country",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "e76d7544-601c-4734-aec3-e7e330205d30"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 369
{
"requestUuid" : "19a4bddc-74b4-4575-993e-a383c78e8743",
"transactionStatus" : "REJECTED",
"status" : "E01597",
"message" : "Transaction rejected, 3DS version of terminal are not compatible with 3DS version defined in request. Please contact the sales department",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "684f5bf7-f3a4-4e0f-8a0c-ab679ce501fe"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 315
{
"requestUuid" : "3d15f0c5-dd34-40c7-8339-cef0335c0de8",
"transactionStatus" : "REJECTED",
"status" : "E01607",
"message" : "Transaction rejected, internal server error during authorization request generation",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "67bb51e4-deed-4939-8dc1-45446121d59f"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 298
{
"requestUuid" : "3b6a48e4-8f8e-4e0f-a5a6-53af87fe6a41",
"transactionStatus" : "REJECTED",
"status" : "E01598",
"message" : "Transaction rejected, ECI value is not available for card provider",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "9b33c58c-442b-4853-bd22-8e231fa2144c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 381
{
"requestUuid" : "751c5120-e7d9-45a1-a7ba-4064b6fcb842",
"transactionStatus" : "REJECTED",
"cardBlockadeAdditionalData" : {
"blockType" : "TEMP",
"blockedUntil" : "2022-11-01T12:51:32.000"
},
"status" : "E0200",
"message" : "Transaction rejected, card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "44c2e3e1-9b5a-458c-b22e-45cc4aac4e61"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
|
|
Block type. Possible values: TEMP - temporary, PERMANENT - permanent. |
|
|
Date until card will be blocked in yyyy-MM-ddThh-mm-ss.SSS format. |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 326
{
"requestUuid" : "c132546c-4a59-4ab0-8e09-9b52d049849f",
"transactionStatus" : "REJECTED",
"status" : "E01584",
"message" : "Transaction rejected, 3DS 2.X flow invoked for other card number than specified in the request",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "7f07a1c7-624b-4962-8197-7aaee8ec75b7"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 286
{
"requestUuid" : "b27147a5-3afc-463a-b179-f93c0c4012f3",
"transactionStatus" : "REJECTED",
"status" : "E01601",
"message" : "Transaction rejected, terminal is blocked for provider",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f4b91d72-d5f0-4878-8907-9c3d948767fc"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 308
{
"requestUuid" : "fbbfe31e-8580-43b6-bf2e-87f36e44d032",
"transactionStatus" : "REJECTED",
"status" : "E01602",
"message" : "Transaction rejected, geographic scope is not permitted for this transaction",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "41ea36da-ec1b-4103-abfb-4e074c1719b5"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 282
{
"requestUuid" : "5503a1f8-fa3d-4769-b962-1ba159fc4ba1",
"transactionStatus" : "REJECTED",
"status" : "E13000",
"message" : "Transaction rejected, merchant risk score exceeded",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "4b53b0e4-b631-45d7-bb01-570b9e780d82"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 183
{
"status" : "E0142",
"message" : "Commission configuration not add for terminal",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "2e9d1d1a-0726-4eed-a6e0-5e8e734581b8"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 280
{
"requestUuid" : "90e3e6ac-72f2-472d-a7c5-01020798420e",
"transactionStatus" : "PENDING",
"status" : "E0153",
"message" : "Transaction declined, problem with MIP connection",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "e21dd196-1615-4772-a797-92a161b8e062"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 273
{
"requestUuid" : "2eff7197-f602-4734-a9ee-fab8dc72d745",
"transactionStatus" : "DECLINED",
"status" : "E01599",
"message" : "Transaction declined, processing timeout",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "03d75114-aed9-458d-b2a2-fdcbbdbc9af1"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 166
{
"status" : "E0190",
"message" : "Failed to get currency rates",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "a0c77fe1-13f4-480e-b5d6-e65481ec5bb2"
}
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "d47125f6-edb2-4ec0-8a61-4ca6581b8482"
}
Path | Type | Description |
---|---|---|
|
|
Message for response code from Fenige system |
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:12 GMT
Connection: close
Content-Length: 169
{
"status" : "E0400",
"message" : "Failed to get currency for card",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "0293825c-eaf0-45bb-909b-6282b869c44c"
}
HTTP/1.1 503 Service Unavailable
Content-Type: application/json
Content-Length: 258
{
"requestUuid" : "4ede443b-11df-4536-85da-0d2709493ad5",
"transactionStatus" : "REJECTED",
"status" : "E9010",
"message" : "Error data center connection",
"httpStatus" : "SERVICE_UNAVAILABLE",
"traceId" : "23fd63a5-7677-4bcf-ae79-52e65ab0b5ce"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
7.7.2. CoF Subsequent transaction
The second phase is the subsequent transaction, which requires a successful initial transaction containing the consent to store card data. Merchant provides the cofInitialUuid parameter received in the initial transaction, which defines the customer's card data saved in the transaction. Subsequent transactions are intended for multiple execution.
From January 2021, there is an internal functionality to restrict access for the PSP to specific method. The Fenige employee can disable access to a given endpoint, then the HTTP status 403 FORBIDDEN will be returned. The PSP will be informed about each access restriction action. |
Request
POST /client/payments/cof/subsequent HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 502
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "1d050dfb-cdb5-412f-8c99-8b28e0bc80a1",
"requestUuid" : "e966e945-9d54-45f7-a1eb-d49a64ee1f17",
"cofInitialUuid" : "78512267-4a75-4545-86bc-6bc6795f8971",
"amount" : 1000,
"currency" : "USD",
"autoClear" : true,
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"province" : "NY",
"postalCode" : "24-110",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
cofInitialUuid |
String |
@Must not be null |
CoF initial transaction identifier uuid |
amount |
Number |
@Must not be null |
The total transfer amount (in pennies) |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "^[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as Payment Facilitator.. |
POST /client/payments/cof/subsequent HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 561
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "1de402d2-7e83-47f4-8a8a-289f0663476b",
"terminalUuid" : "7322081a-1e41-447e-9f8a-d77967616825",
"requestUuid" : "5378f9e8-02a2-4d3a-b13a-aab4bc3ef1b0",
"cofInitialUuid" : "1de402d2-7e83-47f4-8a8a-289f0663476b",
"amount" : 1000,
"currency" : "USD",
"autoClear" : true,
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"subMerchantName" : "Sub-Merchant",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"postalCode" : "24-110",
"province" : "NY"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
cofInitialUuid |
String |
@Must not be null |
CoF initial transaction identifier uuid |
amount |
Number |
@Must not be null |
The total transfer amount (in pennies) |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "^[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as Payment Facilitator.. |
terminalUuid |
String |
Terminals’s unique uuid in system |
Response
Status | Description |
---|---|
|
Returned when transaction was successfully authorized. |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0122 - Returned when merchant is not existing. STATUS: E0128 - Returned when sub merchant does not exists. STATUS: E0132 - Returned when terminal is not existing. STATUS: E0135 - Returned when terminal for merchant not exist or all of them are inactive. STATUS: E0137 - Returned when there is not terminal marked as default |
|
STATUS: E0150 - Returned when transaction is rejected. STATUS: E0151 - Returned when transaction is rejected, because currency is not supported. STATUS: E0152 - Returned when transaction is rejected, because issuer is not supported. STATUS: E0159 - Returned when transaction is rejected, because restricted transaction amount has occurred STATUS: E01590 - Returned when transaction is rejected, because initial CoF card not found in DC. STATUS: E01591 - Returned when transaction is rejected, because initial CoF transaction not approved. STATUS: E01601 - Returned when transaction is rejected, because terminal is blocked for provider STATUS: E01602 - Transaction rejected, geographic scope is not permitted for this transaction STATUS: E01607 - Transaction rejected, internal server error during authorization request generation STATUS: E0200 - Returned when transaction is rejected, because card is blocked in Fenige System STATUS: E0201 - Returned when transaction is rejected, because BIN is blocked in Fenige System STATUS: E0202 - Returned when transaction is rejected, because Terminal is blocked in Fenige System STATUS: E0204 - Returned when transaction is rejected, because user’s personal data was found on AML (sanctions) list STATUS: E0205 - Returned when transaction is rejected, because Bank is blocked in Fenige System STATUS: E0206 - Returned when transaction is rejected, because to many reject transactions and card is blocked STATUS: E0207 - Returned when transaction is rejected, bacause to many attempts declined and card is blocked STATUS: E0208 - Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days STATUS: E0209 - Returned when sender or receiver name contains fraudulent phrase STATUS: E0210 - Returned when sender has suspicious name STATUS: E0211 - Returned when transaction is rejected, because card country is blocked in Fenige System. STATUS: E11000 - Returned when transaction processing time set by terminal was exceeded STATUS: E13000 - Returned when transaction risk score was exceeded |
|
STATUS: E0142 - Returned when commission configuration is not added for terminal. STATUS: E0153 - Returned when transaction is declined, by problem with MIP connection. STATUS: E01599 - Transaction declined, processing timeout. STATUS: E0190 - Returned when currency rate is invalid. STATUS: E9000 - Returned when reason is unknown. |
|
STATUS: E9001 - Returned when is error acquirer connection. STATUS: E9002 - Returned when is error mpi connection. STATUS: E9010 - Returned when is error data center connection. |
{
"requestUuid" : "808d6f1b-e4cf-4ca0-8c2b-3547cb0eca1d",
"cofInitialUuid" : "db069550-1c0c-4c0e-8c9e-dc047bc83485",
"transactionStatus" : "APPROVED",
"responseCode" : "CODE_00",
"status" : "S0002",
"message" : "Success transaction",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Request unique uuid in system |
|
|
CoF transaction unique uuid in system |
|
|
Transaction status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Response code |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:07 GMT
Connection: close
Content-Length: 345
{
"errors" : {
"amount" : [ "must not be null" ],
"merchantUuid" : [ "must not be null" ],
"requestUuid" : [ "must not be null" ],
"currency" : [ "must not be null" ],
"cofInitialUuid" : [ "must not be null" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "4a588d9a-2386-43db-a565-cd1198225234"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:44:07 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "bf76200d-96a2-4ffe-8d91-2caa0ce58544"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 403 Forbidden
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 135
Date: Wed, 20 Nov 2024 17:44:08 GMT
{
"status" : "E8001",
"message" : "Forbidden",
"httpStatus" : "FORBIDDEN",
"traceId" : "934c2671-e8c7-4076-b361-99333de62ccc"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0122",
"message" : "Merchant not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "9f80afee-fdb4-4d91-8def-32e77c9027a5"
}
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0132",
"message" : "Terminal not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "a12c628c-d47f-413c-9de8-de399acf710b"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 163
{
"status" : "E0137",
"message" : "Default terminal not exist",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "19ef324e-1904-4879-b434-ab5966c6089b"
}
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 159
{
"status" : "E0135",
"message" : "Terminals for merchant not exists",
"httpStatus" : "NOT_FOUND",
"traceId" : "6defb2b9-330b-42cb-b1ee-bee64cf4d389"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 251
{
"requestUuid" : "c49d0b23-6004-4aaf-ad4b-3ad36c59201d",
"transactionStatus" : "REJECTED",
"status" : "E0150",
"message" : "Transaction rejected",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "af97b565-b0d5-400a-8e63-61e83e5b42fd"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 275
{
"requestUuid" : "0a939c46-3fc4-4d28-aece-9447608ec2c9",
"transactionStatus" : "REJECTED",
"status" : "E0151",
"message" : "Transaction rejected, currency not supported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "faa23631-bdcd-47df-b920-0c6e2fa71c5c"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 278
{
"requestUuid" : "bd460dff-6b77-49fa-a826-3a0453f6ee90",
"transactionStatus" : "REJECTED",
"status" : "E0152",
"message" : "Transaction rejected, issuer card not supported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f21277b6-ba75-4563-bbef-679401fb41c8"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 295
{
"requestUuid" : "3312a397-2369-4e8b-8aab-d8bdc5a94208",
"transactionStatus" : "REJECTED",
"status" : "E0159",
"message" : "Transaction rejected, restricted transaction amount has occurred",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f5156801-ca81-4a16-bd2b-89b82ac94e67"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 278
{
"requestUuid" : "dcb80831-179d-41a1-9170-51a129e0eb20",
"transactionStatus" : "REJECTED",
"status" : "E01590",
"message" : "Transaction rejected, cof card not found in db",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "8763ce66-165d-4971-8f57-40bc73fdda6a"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 278
{
"requestUuid" : "15cb7acf-0dc6-4ef7-98b8-6cfe9f91d068",
"transactionStatus" : "REJECTED",
"status" : "E01590",
"message" : "Transaction rejected, cof card not found in db",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "560ef5d6-89d9-4e0a-8b5e-91a520917bd0"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 381
{
"requestUuid" : "d3ceaca4-f4a3-42dd-9f11-887078f41b50",
"transactionStatus" : "REJECTED",
"cardBlockadeAdditionalData" : {
"blockType" : "TEMP",
"blockedUntil" : "2022-11-01T12:51:32.000"
},
"status" : "E0200",
"message" : "Transaction rejected, card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "a1bd0bed-788a-491c-aff0-230bf8dcd073"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 267
{
"requestUuid" : "4cc2f8fe-aa0a-4fa6-af6b-e380904f66f3",
"transactionStatus" : "REJECTED",
"status" : "E0201",
"message" : "Transaction rejected, bin is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "4a85f8d5-413a-478d-991d-17d6d0dad710"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "b57e5dd5-00e4-4849-8ba0-5730cdb46e70",
"transactionStatus" : "REJECTED",
"status" : "E0202",
"message" : "Transaction rejected, terminal is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "8501ef5b-053f-4b3a-a115-f2c1b740565b"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "2f059890-3441-4d14-b011-a4e0940c718f",
"transactionStatus" : "REJECTED",
"status" : "E0204",
"message" : "Transaction rejected, user is on aml list",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "895c327a-0ee7-4c8c-afb6-fd2828634b06"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 268
{
"requestUuid" : "eaf79655-8863-471d-b4ea-c80427aaa44f",
"transactionStatus" : "REJECTED",
"status" : "E0205",
"message" : "Transaction rejected, bank is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "e214d8b7-e42b-457d-9ada-03d8b4374ae2"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 301
{
"requestUuid" : "2cf3f66c-faf0-4fcf-99d0-bc37d7656a4a",
"transactionStatus" : "REJECTED",
"status" : "E0206",
"message" : "Transaction rejected, too many reject transactions and card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "cb5a2ba3-9475-4b44-98bd-364bc0444a2a"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 299
{
"requestUuid" : "4d205a3a-ec10-4856-991b-a14882c5f734",
"transactionStatus" : "REJECTED",
"status" : "E0207",
"message" : "Transaction rejected, too many attempts declined and card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "d69eda4d-48f6-458e-ab05-da487c58d921"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 321
{
"requestUuid" : "fffaf8ce-2ab5-43d3-b846-557cbd06fec3",
"transactionStatus" : "REJECTED",
"status" : "E0208",
"message" : "Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "bd158d13-d7f0-4dd2-a0ab-9f617fac17e5"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 292
{
"requestUuid" : "ee3b6dc0-6c6a-4a59-b197-69064b3a68c3",
"transactionStatus" : "REJECTED",
"status" : "E0209",
"message" : "Transaction rejected, sender name contains fraudulent phrase.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "73c0a2c6-b712-4742-ab57-ccbcb3880dba"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 276
{
"requestUuid" : "c60b31a9-b34b-4b19-9fd4-7458799f6a34",
"transactionStatus" : "REJECTED",
"status" : "E0210",
"message" : "Transaction rejected, suspicious sender name.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "89d4ebd8-6271-4b44-be8b-3a700abd179e"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 277
{
"requestUuid" : "6aa4ab52-e351-4166-992c-035a71321ad3",
"transactionStatus" : "REJECTED",
"status" : "E0211",
"message" : "Transaction rejected, card country restricted.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "60af1bcc-e676-40a5-bf88-f8da8dfbc1c9"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 286
{
"requestUuid" : "b27147a5-3afc-463a-b179-f93c0c4012f3",
"transactionStatus" : "REJECTED",
"status" : "E01601",
"message" : "Transaction rejected, terminal is blocked for provider",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f4b91d72-d5f0-4878-8907-9c3d948767fc"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 308
{
"requestUuid" : "fbbfe31e-8580-43b6-bf2e-87f36e44d032",
"transactionStatus" : "REJECTED",
"status" : "E01602",
"message" : "Transaction rejected, geographic scope is not permitted for this transaction",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "41ea36da-ec1b-4103-abfb-4e074c1719b5"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 315
{
"requestUuid" : "3d15f0c5-dd34-40c7-8339-cef0335c0de8",
"transactionStatus" : "REJECTED",
"status" : "E01607",
"message" : "Transaction rejected, internal server error during authorization request generation",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "67bb51e4-deed-4939-8dc1-45446121d59f"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 282
{
"requestUuid" : "5503a1f8-fa3d-4769-b962-1ba159fc4ba1",
"transactionStatus" : "REJECTED",
"status" : "E13000",
"message" : "Transaction rejected, merchant risk score exceeded",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "4b53b0e4-b631-45d7-bb01-570b9e780d82"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 183
{
"status" : "E0142",
"message" : "Commission configuration not add for terminal",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "72fad9c5-cd9c-4275-8951-236ebfb590a4"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 280
{
"requestUuid" : "34c078ab-2b9c-4b86-9820-324cf921c981",
"transactionStatus" : "PENDING",
"status" : "E0153",
"message" : "Transaction declined, problem with MIP connection",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "ca5042dc-749e-41d5-8a7c-a1a65eccf507"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 273
{
"requestUuid" : "61d596ac-64b0-4662-a453-9861802bcf5d",
"transactionStatus" : "DECLINED",
"status" : "E01599",
"message" : "Transaction declined, processing timeout",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "57a303b8-c2ea-4bec-8e92-69ab5a680b7a"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 166
{
"status" : "E0190",
"message" : "Failed to get currency rates",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "a2e65826-d972-460a-a246-c601659f6009"
}
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "d47125f6-edb2-4ec0-8a61-4ca6581b8482"
}
Path | Type | Description |
---|---|---|
|
|
Message for response code from Fenige system |
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:12 GMT
Connection: close
Content-Length: 169
{
"status" : "E0400",
"message" : "Failed to get currency for card",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "0293825c-eaf0-45bb-909b-6282b869c44c"
}
HTTP/1.1 503 Service Unavailable
Content-Type: application/json
Content-Length: 164
{
"status" : "E9010",
"message" : "Error data center connection",
"httpStatus" : "SERVICE_UNAVAILABLE",
"traceId" : "6b6e9baa-457a-44a5-889f-89412aef778d"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
7.8. Recurring payment
A Recurring Payment is a type of the transaction performed as a result of an agreement between a cardholder and a merchant in which the cardholder authorizes the merchant to bill the cardholder’s Mastercard account, with no specified end date. Billing may occur periodically, such as monthly, quarterly or annually. Each payment may be for a variable or a fixed amount. The method is used to charge the cardholder with no need to collect account data (PAN, exp date) from merchant at every transaction. Only initial transaction requires providing card information which are saved in secure Fenige environment according to PCI-DSS Compliance. This endpoint is idempotent so if you execute more than one requests with the same data even at the same time, only first registered transaction will be processed further. In response, we receive transaction status.
The Recurring Payment consists of two parts: initial and subsequent, which are discussed in detail below. Please see detailed Recurring Payment with 3-DS flow described on below listing.
Merchant has the ability to make a payment for goods which causes the cardholder to be debited in the currency of purchase, terminal or card currency based on the parameters provided: currency of transaction, different currency terminals held and currencies supported by the card. The optional terminalUuid field provided during any of the authorisation methods forces the card to be debited in the currency of the terminal specified if the purchase currency is different from the terminal currency a currency conversion will take place.
The Fenige Payment API methods optionally allows merchants to store card data and sensitive personal data in order to allow performing subsequent transactions. If merchant decides to use DataCenter transaction flow then is required to provide the card id of the card previously stored in the Fenige DataCenter, from which card the relevant required parameters will be downloaded and used for authorization. Card data and sensitive personal data according to the Fenige API specification are: cardNumber, expiryDate, firstName, lastName and email. All card data are stored securely on Fenige DataCenter servers in accordance with applicable security requirements. In addition, the Recurring process can be initialized using a Tokenized card - see Tokenize Cards chapter. In this case, to initialize you need to provide the tokenUuid of the tokenized card instead of the full card number.
When performing authorization, remember that there are currencies with different number of decimal places. For example: VND has no pennies and KWD has three decimal places. Please take this into account in the Amout field. For more information on other currencies, see ISO 4217. |
7.8.1. Recurring Initial transaction
The start phase is a one-time initial transaction, which is a simple e-commerce payment with forced 3-DS authentication, but contains the customer's consent to store card data for recurring subsequent purchases. Card data are stored in a secure FENIGE environment. After completing the recurring initial merchant receives the unique recurringInitialUuid identifier needed to perform subsequent Recurring Payments transactions without having to enter card data in the future.
From January 2021, there is an internal functionality to restrict access for the PSP to specific method. The Fenige employee can disable access to a given endpoint, then the HTTP status 403 FORBIDDEN will be returned. The PSP will be informed about each access restriction action. |
Request
POST /client/payments/recurring/initial HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 935
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "1d050dfb-cdb5-412f-8c99-8b28e0bc80a1",
"requestUuid" : "342496cd-d35f-4fda-a145-4f3f075b32ff",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 1000,
"currency" : "USD",
"cardNumber" : "5453131785534417",
"expiryDate" : "11/26",
"cvc2" : "123",
"phoneNumber" : "500500500",
"email" : "test@fenige.pl",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"outside3ds" : {
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"cavvAlgorithm" : "01",
"eci" : "02",
"authenticationStatus" : "Y",
"transactionXId" : "d543820d-683e-4589-86d9-6c9e40db4b53"
},
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"subMerchantName" : "Sub-Merchant",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"postalCode" : "24-110",
"province" : "NY"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
firstName |
String |
Must match regular expression |
First name of cardholder |
lastName |
String |
Must match regular expression |
Last name of cardholder |
cardNumber |
String |
Full cardholder’s card number must be between 12-digits and 19-digits |
|
expiryDate |
String |
Expiration date of card mm/yy |
|
cvc2 |
String |
@Optional only for Google pay, @Length must be 3 characters, @Must match regular expression: \d+ |
Cardholder’s card cvc2 |
amount |
Number |
@Must be positive or zero, @Must not be null |
The total transfer amount (in pennies). If the amount is equal to zero there is sent account status inquiry to validate aspects of a cardholder account. |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
phoneNumber |
String |
@Optional @Must match regular expression [0-9]{3,14} |
Cardholder’s phone number |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
outside3ds |
Object |
There are outside 3ds data authorization that have been send to our API |
|
outside3ds.cavv |
String |
@Must be base 64 encoded, @Size must be between 28 and 28 inclusive |
Cardholder Authentication Verification Value |
outside3ds.transactionXId |
String |
Cardholder Authentication Verification Value. The transactionXId is the field that defines the 3DS version. The presence of this field in the HTTP request specifies that the transaction will be processed with 3DS 2.x. TransactionXId can be obtained by executing the /authentication method. |
|
outside3ds.cavvAlgorithm |
String |
Indicates the algorithm used to generate the AuthenticationCAVV value 0 - HMAC 1 - CVV 2 - CVV with ATN 3 - MasterCard SPA algorithm |
|
outside3ds.eci |
String |
@Length must be between 1 and 2 inclusive, @Must match 01 or 02 or 05 or 06, @Must not be null |
Electronic Commerce Indicator: 5 (Visa) or 2 (SecureCode) - The cardholder was successfully authenticated. 6 (Visa) or 1 (SecureCode) - Authentication was attempted, but the cardholder was not enrolled. Chargeback protection applies. |
outside3ds.authenticationStatus |
String |
@Must match Y or A, @Must not be null |
Authentication status: Y - (Full Authentication) - The customer was successfully authenticated. A - (Successful Attempted Authentication) - Authentication was not available, but functionality was available to generate a proof of authentication attempt. |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
POST /client/payments/recurring/initial HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 994
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "e3f323e5-5fbe-4d39-b675-f6011085ea54",
"terminalUuid" : "a90c4232-84ea-48df-b874-699bb70bad3f",
"requestUuid" : "a983d445-8961-4019-9a5a-bbbbd33b21a0",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 1000,
"currency" : "USD",
"cardNumber" : "5453131785534417",
"expiryDate" : "11/26",
"cvc2" : "123",
"phoneNumber" : "500500500",
"email" : "test@fenige.pl",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"outside3ds" : {
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"cavvAlgorithm" : "01",
"eci" : "02",
"authenticationStatus" : "Y",
"transactionXId" : "d543820d-683e-4589-86d9-6c9e40db4b53"
},
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"subMerchantName" : "Sub-Merchant",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"postalCode" : "24-110",
"province" : "NY"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
firstName |
String |
Must match regular expression |
First name of cardholder |
lastName |
String |
Must match regular expression |
Last name of cardholder |
cardNumber |
String |
Full cardholder’s card number must be between 12-digits and 19-digits |
|
expiryDate |
String |
Expiration date of card mm/yy |
|
cvc2 |
String |
@Optional only for Google pay, @Length must be 3 characters, @Must match regular expression: \d+ |
Cardholder’s card cvc2 |
amount |
Number |
@Must be positive or zero, @Must not be null |
The total transfer amount (in pennies). If the amount is equal to zero there is sent account status inquiry to validate aspects of a cardholder account. |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
phoneNumber |
String |
@Optional @Must match regular expression [0-9]{3,14} |
Cardholder’s phone number |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
outside3ds |
Object |
There are outside 3ds data authorization that have been send to our API |
|
outside3ds.cavv |
String |
@Must be base 64 encoded, @Size must be between 28 and 28 inclusive |
Cardholder Authentication Verification Value |
outside3ds.transactionXId |
String |
Cardholder Authentication Verification Value. The transactionXId is the field that defines the 3DS version. The presence of this field in the HTTP request specifies that the transaction will be processed with 3DS 2.x. TransactionXId can be obtained by executing the /authentication method. |
|
outside3ds.cavvAlgorithm |
String |
Indicates the algorithm used to generate the AuthenticationCAVV value 0 - HMAC 1 - CVV 2 - CVV with ATN 3 - MasterCard SPA algorithm |
|
outside3ds.eci |
String |
@Length must be between 1 and 2 inclusive, @Must match 01 or 02 or 05 or 06, @Must not be null |
Electronic Commerce Indicator: 5 (Visa) or 2 (SecureCode) - The cardholder was successfully authenticated. 6 (Visa) or 1 (SecureCode) - Authentication was attempted, but the cardholder was not enrolled. Chargeback protection applies. |
outside3ds.authenticationStatus |
String |
@Must match Y or A, @Must not be null |
Authentication status: Y - (Full Authentication) - The customer was successfully authenticated. A - (Successful Attempted Authentication) - Authentication was not available, but functionality was available to generate a proof of authentication attempt. |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
terminalUuid |
String |
Terminals’s unique uuid in system |
POST /client/payments/recurring/initial HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 782
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "1d050dfb-cdb5-412f-8c99-8b28e0bc80a1",
"requestUuid" : "af63a725-6543-4765-8b20-e02f4a9fa486",
"cvc2" : "123",
"cardId" : 1906455,
"amount" : 1000,
"currency" : "USD",
"outside3ds" : {
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"cavvAlgorithm" : "01",
"eci" : "02",
"authenticationStatus" : "Y",
"transactionXId" : "d543820d-683e-4589-86d9-6c9e40db4b53"
},
"addressIp" : "192.0.0.1",
"autoClear" : true,
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"province" : "NY",
"postalCode" : "24-110",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
cardId |
Number |
@Must not be null, @Numeric |
DataCenter card id. Required to obtain card information data from DataCenter such as (cardNumber, expiryDate, firstName, lastName, email) |
cvc2 |
String |
@Optional only for Google pay, @Length must be 3 characters, @Must match regular expression: \d+ |
Cardholder’s card cvc2 |
amount |
Number |
@Must be positive or zero, @Must not be null |
The total transfer amount (in pennies). If the amount is equal to zero there is sent account status inquiry to validate aspects of a cardholder account. |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
outside3ds |
Object |
There are outside 3ds data authorization that have been send to our API |
|
outside3ds.cavv |
String |
@Must be base 64 encoded, @Size must be between 28 and 28 inclusive |
Cardholder Authentication Verification Value |
outside3ds.transactionXId |
String |
Cardholder Authentication Verification Value. The transactionXId is the field that defines the 3DS version. The presence of this field in the HTTP request specifies that the transaction will be processed with 3DS 2.x. TransactionXId can be obtained by executing the /authentication method. |
|
outside3ds.cavvAlgorithm |
String |
Indicates the algorithm used to generate the AuthenticationCAVV value 0 - HMAC 1 - CVV 2 - CVV with ATN 3 - MasterCard SPA algorithm |
|
outside3ds.eci |
String |
@Length must be between 1 and 2 inclusive, @Must match 01 or 02 or 05 or 06, @Must not be null |
Electronic Commerce Indicator: 5 (Visa) or 2 (SecureCode) - The cardholder was successfully authenticated. 6 (Visa) or 1 (SecureCode) - Authentication was attempted, but the cardholder was not enrolled. Chargeback protection applies. |
outside3ds.authenticationStatus |
String |
@Must match Y or A, @Must not be null |
Authentication status: Y - (Full Authentication) - The customer was successfully authenticated. A - (Successful Attempted Authentication) - Authentication was not available, but functionality was available to generate a proof of authentication attempt. |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as Payment Facilitator.. |
POST /client/payments/recurring/initial HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 987
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "ee673606-0390-4128-a5a1-4594bab896fd",
"terminalUuid" : "86ba578e-1343-4b42-9811-2a09257bead1",
"requestUuid" : "8ff7c780-c166-44e3-a387-7edc32ebdbb5",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 1000,
"currency" : "USD",
"tokenUuid" : "e93910e7-ecf7-4fe7-9cf5-aca730ca973b",
"cvc2" : "123",
"phoneNumber" : "500500500",
"email" : "test@fenige.pl",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"outside3ds" : {
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"cavvAlgorithm" : "01",
"eci" : "02",
"authenticationStatus" : "Y",
"transactionXId" : "d543820d-683e-4589-86d9-6c9e40db4b53"
},
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"subMerchantName" : "Sub-Merchant",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"postalCode" : "24-110",
"province" : "NY"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
firstName |
String |
Must match regular expression |
First name of cardholder |
lastName |
String |
Must match regular expression |
Last name of cardholder |
tokenUuid |
String |
Unique tokenized card identifier corresponding to token |
|
cvc2 |
String |
@Optional only for Google pay, @Length must be 3 characters, @Must match regular expression: \d+ |
Cardholder’s card cvc2 |
amount |
Number |
@Must be positive or zero, @Must not be null |
The total transfer amount (in pennies). If the amount is equal to zero there is sent account status inquiry to validate aspects of a cardholder account. |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
phoneNumber |
String |
@Optional @Must match regular expression [0-9]{3,14} |
Cardholder’s phone number |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
outside3ds |
Object |
There are outside 3ds data authorization that have been send to our API |
|
outside3ds.cavv |
String |
@Must be base 64 encoded, @Size must be between 28 and 28 inclusive |
Cardholder Authentication Verification Value |
outside3ds.transactionXId |
String |
Cardholder Authentication Verification Value. The transactionXId is the field that defines the 3DS version. The presence of this field in the HTTP request specifies that the transaction will be processed with 3DS 2.x. TransactionXId can be obtained by executing the /authentication method. |
|
outside3ds.cavvAlgorithm |
String |
Indicates the algorithm used to generate the AuthenticationCAVV value 0 - HMAC 1 - CVV 2 - CVV with ATN 3 - MasterCard SPA algorithm |
|
outside3ds.eci |
String |
@Length must be between 1 and 2 inclusive, @Must match 01 or 02 or 05 or 06, @Must not be null |
Electronic Commerce Indicator: 5 (Visa) or 2 (SecureCode) - The cardholder was successfully authenticated. 6 (Visa) or 1 (SecureCode) - Authentication was attempted, but the cardholder was not enrolled. Chargeback protection applies. |
outside3ds.authenticationStatus |
String |
@Must match Y or A, @Must not be null |
Authentication status: Y - (Full Authentication) - The customer was successfully authenticated. A - (Successful Attempted Authentication) - Authentication was not available, but functionality was available to generate a proof of authentication attempt. |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
terminalUuid |
String |
Terminals’s unique uuid in system |
POST /client/payments/recurring/initial HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 1146
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "1d050dfb-cdb5-412f-8c99-8b28e0bc80a1",
"requestUuid" : "b30e42a4-f339-46d0-a71a-06949c508010",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 1000,
"currency" : "USD",
"authMethod" : "CRYPTOGRAM_3DS",
"tokenType" : "GOOGLE_PAY",
"terminalLocation" : "HOME",
"paymentData" : {
"onlinePaymentCryptogram" : "/0OL1zEABL+gk70RYJ8lMAABAAA=",
"eciIndicator" : "02"
},
"cardNumber" : "5453131785534417",
"expiryDate" : "11/26",
"cvc2" : "123",
"phoneNumber" : "500500500",
"email" : "test@fenige.pl",
"addressIp" : "192.0.0.1",
"autoClear" : true,
"outside3ds" : {
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"cavvAlgorithm" : "01",
"eci" : "02",
"authenticationStatus" : "Y",
"transactionXId" : "d543820d-683e-4589-86d9-6c9e40db4b53"
},
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"subMerchantName" : "Sub-Merchant",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"postalCode" : "24-110",
"province" : "NY"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
firstName |
String |
Must match regular expression |
First name of cardholder |
lastName |
String |
Must match regular expression |
Last name of cardholder |
cardNumber |
String |
Full cardholder’s Token Pan must be between 12-digits and 19-digits |
|
expiryDate |
String |
Expiration date of card mm/yy |
|
cvc2 |
String |
@Optional only for Google pay, @Length must be 3 characters, @Must match regular expression: \d+ |
Cardholder’s card cvc2 |
amount |
Number |
@Must be positive or zero, @Must not be null |
The total transfer amount (in pennies). If the amount is equal to zero there is sent account status inquiry to validate aspects of a cardholder account. |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
tokenType |
String |
@Optional |
Token used - value may be set as |
authMethod |
String |
@Optional |
Required only if tokenType is 'GOOGLE_PAY'. Type of token transaction authorization - value may be set as If authMethod is 'CRYPTOGRAM_3DS' then paymentData is required and outside3ds is optional. If authMethod is 'PAN_ONLY' then outside3ds is required and there is no paymentData. |
terminalLocation |
String |
Location of terminal - value must be set as |
|
paymentData |
Object |
Required payment tokenization data object. Not required when tokenType = 'GOOGLE_PAY' and authMethod = 'PAN_ONLY'. |
|
paymentData.onlinePaymentCryptogram |
String |
Payment secure cryptogram obtained during merchant card tokenization in mobile app (TAVV in GOOGLE_PAY case). Base64 encoded payment crypto value. |
|
paymentData.eciIndicator |
String |
@Must match 01 or 02 or 05 or 06 |
Eci value returned only for tokens on the Visa card network. The value should be passed by merchant if present with payment cryptogram. Optional value. If tokenType = 'GOOGLE_PAY' and authMethod = 'CRYPTOGRAM_3DS' and provider is 'VISA' then this field is required. Possible values for VISA are 05, 06. |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
phoneNumber |
String |
@Optional @Must match regular expression [0-9]{3,14} |
Cardholder’s phone number |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
outside3ds |
Object |
There are outside 3ds data authorization that have been send to our API |
|
outside3ds.cavv |
String |
@Must be base 64 encoded, @Size must be between 28 and 28 inclusive |
Cardholder Authentication Verification Value |
outside3ds.transactionXId |
String |
Cardholder Authentication Verification Value. The transactionXId is the field that defines the 3DS version.The presence of this field in the HTTP request specifies that the transaction will be processed with 3DS 2.x.TransactionXId can be obtained by executing the /authentication method. |
|
outside3ds.cavvAlgorithm |
String |
Indicates the algorithm used to generate the AuthenticationCAVV value 0 - HMAC 1 - CVV 2 - CVV with ATN 3 - MasterCard SPA algorithm |
|
outside3ds.eci |
String |
@Length must be between 1 and 2 inclusive, @Must match 01 or 02 or 05 or 06, @Must not be null |
Electronic Commerce Indicator: 5 (Visa) or 2 (SecureCode) - The cardholder was successfully authenticated. 6 (Visa) or 1 (SecureCode) - Authentication was attempted, but the cardholder was not enrolled. Chargeback protection applies. |
outside3ds.authenticationStatus |
String |
@Must match Y or A, @Must not be null |
Authentication status: Y - (Full Authentication) - The customer was successfully authenticated. A - (Successful Attempted Authentication) - Authentication was not available, but functionality was available to generate a proof of authentication attempt. |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional@Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as Payment Facilitator.. |
Response
Status | Description |
---|---|
|
Returned when transaction was successfully authorized. |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0122 - Returned when merchant is not existing. STATUS: E0128 - Returned when sub merchant does not exists. STATUS: E0132 - Returned when terminal is not existing. STATUS: E0135 - Returned when terminal for merchant not exist or all of them are inactive. STATUS: E0137 - Returned when there is not terminal marked as default STATUS: E06003 - Returned when DataCenter card was not found. STATUS: E15006 - Returned when tokenized card was not found by tokenUuid. |
|
STATUS: E0150 - Returned when transaction is rejected. STATUS: E0151 - Returned when transaction is rejected, because currency is not supported. STATUS: E0152 - Returned when transaction is rejected, because issuer is not supported. STATUS: E0156 - Returned where terminal used for process transaction do not support 3DS STATUS: E0157 - Returned where card used for process transaction do not support 3DS STATUS: E01580 - Returned when transaction is rejected, because DataCenter card was expired. STATUS: E0159 - Returned when transaction is rejected, because restricted transaction amount has occurred STATUS: E01596 - Returned when transaction is rejected, because terminal has blocked transaction with card issued in restricted country STATUS: E01601 - Returned when transaction is rejected, because terminal is blocked for provider STATUS: E01602 - Transaction rejected, geographic scope is not permitted for this transaction STATUS: E01607 - Transaction rejected, internal server error during authorization request generation STATUS: E0200 - Returned when transaction is rejected, because card is blocked in Fenige System STATUS: E0201 - Returned when transaction is rejected, because BIN is blocked in Fenige System STATUS: E0202 - Returned when transaction is rejected, because Terminal is blocked in Fenige System STATUS: E0204 - Returned when transaction is rejected, because user’s personal data was found on AML (sanctions) list STATUS: E0205 - Returned when transaction is rejected, because Bank is blocked in Fenige System STATUS: E0206 - Returned when transaction is rejected, because to many reject transactions and card is blocked STATUS: E0207 - Returned when transaction is rejected, bacause to many attempts declined and card is blocked STATUS: E0208 - Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days STATUS: E0209 - Returned when sender or receiver name contains fraudulent phrase STATUS: E0210 - Returned when sender has suspicious name STATUS: E0211 - Returned when transaction is rejected, because card country is blocked in Fenige System. STATUS: E01600 - Returned when transaction is declined, because 3DS 2.X flow invoked for other card number than specified in the request STATUS: E11000 - Returned when transaction processing time set by terminal was exceeded STATUS: E13000 - Returned when transaction risk score was exceeded |
|
STATUS: E0142 - Returned when commission configuration is not added for terminal. STATUS: E0153 - Returned when transaction is declined, by problem with MIP connection. STATUS: E01599 - Transaction declined, processing timeout. STATUS: E0190 - Returned when currency rate is invalid. STATUS: E9000 - Returned when reason is unknown. |
|
STATUS: E9001 - Returned when is error acquirer connection. STATUS: E9002 - Returned when is error mpi connection. STATUS: E9010 - Returned when is error DataCenter connection. |
{
"requestUuid" : "0d2b9b1f-e082-415f-bc80-67836baa8946",
"recurringInitialUuid" : "c2f8d9df-3605-445a-9a2d-65aced50737b",
"transactionStatus" : "APPROVED",
"responseCode" : "CODE_00",
"status" : "S0002",
"message" : "Success transaction",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Request unique uuid in system |
|
|
Recurring transaction unique uuid in system |
|
|
Transaction status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Response code |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:45 GMT
Connection: close
Content-Length: 679
{
"errors" : {
"expiryDate" : [ "Card id was provided, expiryDate is obtained from data center card: 1906455" ],
"firstName" : [ "Card id was provided, firstName is obtained from data center card: 1906455" ],
"lastName" : [ "Card id was provided, lastName is obtained from data center card: 1906455" ],
"cardId" : [ "Please provide cardId for DATACENTER transaction or fields: cardNumber, expiryDate, firstName, lastName for PLAIN transaction" ],
"cardNumber" : [ "Card id was provided, cardNumber is obtained from data center card: 1906455" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "69195b6d-63dd-4853-a709-bcd3a4b5d2f9"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:45 GMT
Connection: close
Content-Length: 679
{
"errors" : {
"expiryDate" : [ "Card id was provided, expiryDate is obtained from data center card: 1906455" ],
"lastName" : [ "Card id was provided, lastName is obtained from data center card: 1906455" ],
"firstName" : [ "Card id was provided, firstName is obtained from data center card: 1906455" ],
"cardId" : [ "Please provide cardId for DATACENTER transaction or fields: cardNumber, expiryDate, firstName, lastName for PLAIN transaction" ],
"cardNumber" : [ "Card id was provided, cardNumber is obtained from data center card: 1906455" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "1afb3470-7a66-41ee-b43e-b521ffbf9039"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:44:45 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "bacc351a-37f4-4615-9674-02c446957f5e"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 403 Forbidden
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 135
Date: Wed, 20 Nov 2024 17:44:47 GMT
{
"status" : "E8001",
"message" : "Forbidden",
"httpStatus" : "FORBIDDEN",
"traceId" : "c306dfaf-ce7a-492d-943d-007a3f126bfe"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0122",
"message" : "Merchant not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "c8c91543-bfbe-4554-b34f-559f7aa3521d"
}
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0132",
"message" : "Terminal not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "2256e736-fba6-4baf-be6b-4554f279252a"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 163
{
"status" : "E0137",
"message" : "Default terminal not exist",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f1608996-ae60-42b3-aff8-3a64c00de571"
}
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 159
{
"status" : "E0135",
"message" : "Terminals for merchant not exists",
"httpStatus" : "NOT_FOUND",
"traceId" : "cd4fb1a2-c6d3-46a1-863a-e0caf9865d08"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 246
{
"requestUuid" : "31df3fb9-06eb-4fa4-a371-9dcf74d021bc",
"transactionStatus" : "REJECTED",
"status" : "E06003",
"message" : "Datacenter card not found",
"httpStatus" : "NOT_FOUND",
"traceId" : "9dffef25-4b4d-4781-8d48-6719bc46f56c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 242
{
"requestUuid" : "cb122416-9047-4e00-8a69-e3aea07dffc4",
"transactionStatus" : "REJECTED",
"status" : "E15006",
"message" : "Error token not found",
"httpStatus" : "NOT_FOUND",
"traceId" : "b1073a0f-060d-4822-9223-10bb48b5e6e4"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 251
{
"requestUuid" : "6318901d-c5b0-4197-b6ec-0cc2a0d64fda",
"transactionStatus" : "REJECTED",
"status" : "E0150",
"message" : "Transaction rejected",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "6fd73e66-1ac9-4d1e-8bd1-06cdc18229b3"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 275
{
"requestUuid" : "fcdd84a5-82e7-4d89-a2ec-a8eee2bf5954",
"transactionStatus" : "REJECTED",
"status" : "E0151",
"message" : "Transaction rejected, currency not supported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "35fe8ef9-6ade-4e9e-b7ce-3df157c5d0ac"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 278
{
"requestUuid" : "d71f1d61-1fe3-4c99-b418-38ede8eaf8b8",
"transactionStatus" : "REJECTED",
"status" : "E0152",
"message" : "Transaction rejected, issuer card not supported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "a770fad0-f223-482d-8cf5-88a7ca89988a"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 185
{
"status" : "E0156",
"message" : "Transaction rejected, terminal not supported 3ds",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "952a8ed3-c7c7-472d-a6d5-fab2430e80f2"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 181
{
"status" : "E0157",
"message" : "Transaction rejected, card not supported 3ds",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "a38715a3-82bf-4bb2-bde2-9e64e97db641"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 270
{
"requestUuid" : "2ecee493-91ce-4048-94f6-16a89bcb911c",
"transactionStatus" : "REJECTED",
"status" : "E01580",
"message" : "Transaction rejected. Card is expired.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "5c06f460-e772-4d5e-a42e-95ddf1fde2be"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 295
{
"requestUuid" : "3312a397-2369-4e8b-8aab-d8bdc5a94208",
"transactionStatus" : "REJECTED",
"status" : "E0159",
"message" : "Transaction rejected, restricted transaction amount has occurred",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f5156801-ca81-4a16-bd2b-89b82ac94e67"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 267
{
"requestUuid" : "f6acd7f5-f7ae-49dc-86b2-491e569dcd6d",
"transactionStatus" : "REJECTED",
"status" : "E0201",
"message" : "Transaction rejected, bin is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "a63ed001-f273-4fd2-8226-836fe8ec38cd"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "8aeac714-5a8f-4f21-aad4-e701c0eca641",
"transactionStatus" : "REJECTED",
"status" : "E0202",
"message" : "Transaction rejected, terminal is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "5bbcc8b6-1df4-42c0-8049-ad65aa3b72fe"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "e1ffed01-20d5-49b1-b636-8ff9ca3dde69",
"transactionStatus" : "REJECTED",
"status" : "E0204",
"message" : "Transaction rejected, user is on aml list",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "e687dc4c-144c-4eab-91ba-644cab41394d"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 268
{
"requestUuid" : "a23e913a-a5bc-424c-9167-0eaf970fd4ec",
"transactionStatus" : "REJECTED",
"status" : "E0205",
"message" : "Transaction rejected, bank is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "4603ed7f-d890-49e3-9811-ab08ae4a122e"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 301
{
"requestUuid" : "2cf3f66c-faf0-4fcf-99d0-bc37d7656a4a",
"transactionStatus" : "REJECTED",
"status" : "E0206",
"message" : "Transaction rejected, too many reject transactions and card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "cb5a2ba3-9475-4b44-98bd-364bc0444a2a"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 299
{
"requestUuid" : "4d205a3a-ec10-4856-991b-a14882c5f734",
"transactionStatus" : "REJECTED",
"status" : "E0207",
"message" : "Transaction rejected, too many attempts declined and card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "d69eda4d-48f6-458e-ab05-da487c58d921"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 321
{
"requestUuid" : "fffaf8ce-2ab5-43d3-b846-557cbd06fec3",
"transactionStatus" : "REJECTED",
"status" : "E0208",
"message" : "Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "bd158d13-d7f0-4dd2-a0ab-9f617fac17e5"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 321
{
"requestUuid" : "195a3940-7310-4e97-bacd-031877bf3a2e",
"transactionStatus" : "REJECTED",
"status" : "E01596",
"message" : "Transaction rejected, terminal blocks transactions with card issued in given card country",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "e76d7544-601c-4734-aec3-e7e330205d30"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 369
{
"requestUuid" : "19a4bddc-74b4-4575-993e-a383c78e8743",
"transactionStatus" : "REJECTED",
"status" : "E01597",
"message" : "Transaction rejected, 3DS version of terminal are not compatible with 3DS version defined in request. Please contact the sales department",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "684f5bf7-f3a4-4e0f-8a0c-ab679ce501fe"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 315
{
"requestUuid" : "3d15f0c5-dd34-40c7-8339-cef0335c0de8",
"transactionStatus" : "REJECTED",
"status" : "E01607",
"message" : "Transaction rejected, internal server error during authorization request generation",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "67bb51e4-deed-4939-8dc1-45446121d59f"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 298
{
"requestUuid" : "3b6a48e4-8f8e-4e0f-a5a6-53af87fe6a41",
"transactionStatus" : "REJECTED",
"status" : "E01598",
"message" : "Transaction rejected, ECI value is not available for card provider",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "9b33c58c-442b-4853-bd22-8e231fa2144c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 381
{
"requestUuid" : "96f52118-eb58-45fd-b072-2493d4a6c02c",
"transactionStatus" : "REJECTED",
"cardBlockadeAdditionalData" : {
"blockType" : "TEMP",
"blockedUntil" : "2022-11-01T12:51:32.000"
},
"status" : "E0200",
"message" : "Transaction rejected, card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "45aa6922-a50a-4f00-bc89-af6e9b9242a9"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
|
|
Block type. Possible values: TEMP - temporary, PERMANENT - permanent. |
|
|
Date until card will be blocked in yyyy-MM-ddThh-mm-ss.SSS format. |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 326
{
"requestUuid" : "c132546c-4a59-4ab0-8e09-9b52d049849f",
"transactionStatus" : "REJECTED",
"status" : "E01584",
"message" : "Transaction rejected, 3DS 2.X flow invoked for other card number than specified in the request",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "7f07a1c7-624b-4962-8197-7aaee8ec75b7"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 286
{
"requestUuid" : "b27147a5-3afc-463a-b179-f93c0c4012f3",
"transactionStatus" : "REJECTED",
"status" : "E01601",
"message" : "Transaction rejected, terminal is blocked for provider",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f4b91d72-d5f0-4878-8907-9c3d948767fc"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 308
{
"requestUuid" : "fbbfe31e-8580-43b6-bf2e-87f36e44d032",
"transactionStatus" : "REJECTED",
"status" : "E01602",
"message" : "Transaction rejected, geographic scope is not permitted for this transaction",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "41ea36da-ec1b-4103-abfb-4e074c1719b5"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 282
{
"requestUuid" : "5503a1f8-fa3d-4769-b962-1ba159fc4ba1",
"transactionStatus" : "REJECTED",
"status" : "E13000",
"message" : "Transaction rejected, merchant risk score exceeded",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "4b53b0e4-b631-45d7-bb01-570b9e780d82"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 183
{
"status" : "E0142",
"message" : "Commission configuration not add for terminal",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "13516d66-22e6-402b-9f22-6dc675860b99"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 280
{
"requestUuid" : "7d641a65-8348-41f0-8393-9de0244b99ed",
"transactionStatus" : "PENDING",
"status" : "E0153",
"message" : "Transaction declined, problem with MIP connection",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "63861b4d-0f75-4563-877b-6af244e425c8"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 273
{
"requestUuid" : "b38ee0f0-d4b1-4d51-9a51-8883efee24d5",
"transactionStatus" : "DECLINED",
"status" : "E01599",
"message" : "Transaction declined, processing timeout",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "73d5af23-e74a-4b19-8773-bdf8b33b6fd0"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 166
{
"status" : "E0190",
"message" : "Failed to get currency rates",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "8294506f-dbe5-4391-b969-bf66a35bdcee"
}
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "d47125f6-edb2-4ec0-8a61-4ca6581b8482"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 265
{
"requestUuid" : "aeebc3af-3832-4f99-80d0-bb699b6e5085",
"transactionStatus" : "DECLINED",
"status" : "E9008",
"message" : "Error mpi - 3ds initialize failed",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "b6dcaf7f-5b17-4fc3-846a-868366060b75"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:12 GMT
Connection: close
Content-Length: 169
{
"status" : "E0400",
"message" : "Failed to get currency for card",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "0293825c-eaf0-45bb-909b-6282b869c44c"
}
HTTP/1.1 503 Service Unavailable
Content-Type: application/json
Content-Length: 258
{
"requestUuid" : "4ede443b-11df-4536-85da-0d2709493ad5",
"transactionStatus" : "REJECTED",
"status" : "E9010",
"message" : "Error data center connection",
"httpStatus" : "SERVICE_UNAVAILABLE",
"traceId" : "23fd63a5-7677-4bcf-ae79-52e65ab0b5ce"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
7.8.2. Recurring Subsequent transaction
The next phase is the Recurring Payment subsequent transaction, which requires a successful and cleared initial transaction containing the consent to store card data. Merchant provides the recurringInitialUuid parameter received in the initial transaction, which defines the customer's card data saved in the transaction.
Recurring Payment subsequent transactions are intended for multiple execution by merchant at any time intervals defined in the contract with the customer also the amount of the transaction may change over time.
From January 2021, there is an internal functionality to restrict access for the PSP to specific method. The Fenige employee can disable access to a given endpoint, then the HTTP status 403 FORBIDDEN will be returned. The PSP will be informed about each access restriction action. |
Request
POST /client/payments/recurring/subsequent HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 508
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "1d050dfb-cdb5-412f-8c99-8b28e0bc80a1",
"requestUuid" : "49319a14-3e65-4e9a-be80-a157f510e86b",
"recurringInitialUuid" : "e47716e1-24cb-4025-a561-cb2a31f26b39",
"amount" : 1000,
"currency" : "USD",
"autoClear" : true,
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"province" : "NY",
"postalCode" : "24-110",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
recurringInitialUuid |
String |
@Must not be null |
Recurring initial transaction identifier uuid |
amount |
Number |
@Must be at least 100, @Must not be null |
The total transfer amount (in pennies) |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
POST /client/payments/recurring/subsequent HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 567
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "602ab241-90b8-468a-918e-3ff06813f642",
"terminalUuid" : "2d30275c-dbfa-4b85-a95d-b23451bdc294",
"requestUuid" : "6c12a104-d573-4e8b-8078-e75ef0943393",
"recurringInitialUuid" : "602ab241-90b8-468a-918e-3ff06813f642",
"amount" : 1000,
"currency" : "USD",
"autoClear" : true,
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"subMerchantName" : "Sub-Merchant",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"postalCode" : "24-110",
"province" : "NY"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
recurringInitialUuid |
String |
@Must not be null |
Recurring initial transaction identifier uuid |
amount |
Number |
@Must be at least 100, @Must not be null |
The total transfer amount (in pennies) |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
autoClear |
Boolean |
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
terminalUuid |
String |
Terminals’s unique uuid in system |
Response
Status | Description |
---|---|
|
Returned when transaction was successfully authorized. |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0122 - Returned when merchant is not existing. STATUS: E0128 - Returned when sub merchant does not exists. STATUS: E0132 - Returned when terminal is not existing. STATUS: E0135 - Returned when terminal for merchant not exist or all of them are inactive. STATUS: E0137 - Returned when there is not terminal marked as default |
|
STATUS: E0150 - Returned when transaction is rejected. STATUS: E0151 - Returned when transaction is rejected, because currency is not supported. STATUS: E0152 - Returned when transaction is rejected, because issuer is not supported. STATUS: E0159 - Returned when transaction is rejected, because restricted transaction amount has occurred STATUS: E01592 - Returned when transaction is rejected, because initial Recurring card not found in DC. STATUS: E01593 - Returned when transaction is rejected, because initial Recurring transaction not cleared. STATUS: E01601 - Returned when transaction is rejected, because terminal is blocked for provider STATUS: E01602 - Transaction rejected, geographic scope is not permitted for this transaction STATUS: E01607 - Transaction rejected, internal server error during authorization request generation STATUS: E0200 - Returned when transaction is rejected, because card is blocked in Fenige System STATUS: E0201 - Returned when transaction is rejected, because BIN is blocked in Fenige System STATUS: E0202 - Returned when transaction is rejected, because Terminal is blocked in Fenige System STATUS: E0204 - Returned when transaction is rejected, because user’s personal data was found on AML (sanctions) list STATUS: E0205 - Returned when transaction is rejected, because Bank is blocked in Fenige System STATUS: E0206 - Returned when transaction is rejected, because to many reject transactions and card is blocked STATUS: E0207 - Returned when transaction is rejected, bacause to many attempts declined and card is blocked STATUS: E0208 - Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days STATUS: E0209 - Returned when sender or receiver name contains fraudulent phrase STATUS: E0210 - Returned when sender has suspicious name STATUS: E0211 - Returned when transaction is rejected, because card country is blocked in Fenige System. STATUS: E11000 - Returned when transaction processing time set by terminal was exceeded STATUS: E13000 - Returned when transaction risk score was exceeded |
|
STATUS: E0142 - Returned when commission configuration is not added for terminal. STATUS: E0153 - Returned when transaction is declined, by problem with MIP connection. STATUS: E01599 - Transaction declined, processing timeout. STATUS: E0190 - Returned when currency rate is invalid. STATUS: E9000 - Returned when reason is unknown. |
|
STATUS: E9001 - Returned when is error acquirer connection. STATUS: E9002 - Returned when is error mpi connection. STATUS: E9010 - Returned when is error data center connection. |
{
"requestUuid" : "056d9cb0-9507-45f7-bb5d-433a9a35c041",
"recurringInitialUuid" : "932f13ff-203e-4dea-a296-7528d582eb9b",
"transactionStatus" : "APPROVED",
"responseCode" : "CODE_00",
"status" : "S0002",
"message" : "Success transaction",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Request unique uuid in system |
|
|
Recurring transaction unique uuid in system |
|
|
Transaction status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Response code |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:41 GMT
Connection: close
Content-Length: 351
{
"errors" : {
"amount" : [ "must not be null" ],
"merchantUuid" : [ "must not be null" ],
"requestUuid" : [ "must not be null" ],
"currency" : [ "must not be null" ],
"recurringInitialUuid" : [ "must not be null" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "4d988d5f-b81e-4957-a9d8-d011216c7122"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:44:40 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "a72e09b7-2384-4162-8cca-f9b457425478"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 403 Forbidden
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 135
Date: Wed, 20 Nov 2024 17:44:41 GMT
{
"status" : "E8001",
"message" : "Forbidden",
"httpStatus" : "FORBIDDEN",
"traceId" : "dc2ead9e-3aa2-45eb-be63-5bef407eb344"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0122",
"message" : "Merchant not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "9eea3486-c003-492b-ba21-ad94448b08c4"
}
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0132",
"message" : "Terminal not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "3618d55e-970c-4ef8-82af-ed43cf5c79dc"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 163
{
"status" : "E0137",
"message" : "Default terminal not exist",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "aefbbf04-c2f3-42e1-a387-b15a7d376d3c"
}
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 159
{
"status" : "E0135",
"message" : "Terminals for merchant not exists",
"httpStatus" : "NOT_FOUND",
"traceId" : "607ea258-18c7-463e-9dd9-18846b467861"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 251
{
"requestUuid" : "0bfd4b68-a659-4134-bce1-ff700db125f4",
"transactionStatus" : "REJECTED",
"status" : "E0150",
"message" : "Transaction rejected",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "48d5d66e-7bf4-40fe-ac50-fbc969d83d19"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 275
{
"requestUuid" : "c3407b4f-21e2-4498-9d38-f293d69352cd",
"transactionStatus" : "REJECTED",
"status" : "E0151",
"message" : "Transaction rejected, currency not supported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "06f74373-6bca-4778-8951-bedfb6be1f87"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 278
{
"requestUuid" : "b64db59e-dc10-4274-b3c9-0ae9061212d9",
"transactionStatus" : "REJECTED",
"status" : "E0152",
"message" : "Transaction rejected, issuer card not supported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "518fea0b-504b-43a1-b2b0-050d6ba7b173"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 295
{
"requestUuid" : "3312a397-2369-4e8b-8aab-d8bdc5a94208",
"transactionStatus" : "REJECTED",
"status" : "E0159",
"message" : "Transaction rejected, restricted transaction amount has occurred",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f5156801-ca81-4a16-bd2b-89b82ac94e67"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 278
{
"requestUuid" : "5c1e307c-bbf1-4eac-bfa2-7b2b7be2d85f",
"transactionStatus" : "REJECTED",
"status" : "E01590",
"message" : "Transaction rejected, cof card not found in db",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "5bfd7f3a-c469-462e-b055-331c18591902"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 295
{
"requestUuid" : "00ffe64e-bbd0-45ac-b4c5-a6e508a9e9fd",
"transactionStatus" : "REJECTED",
"status" : "E01593",
"message" : "Transaction rejected, initial recurring transaction not cleared",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "a1240c09-930c-4e69-9ab7-81eeb06ed77a"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 381
{
"requestUuid" : "96b9ed8f-8069-4439-a37f-65bf1b9543a5",
"transactionStatus" : "REJECTED",
"cardBlockadeAdditionalData" : {
"blockType" : "TEMP",
"blockedUntil" : "2022-11-01T12:51:32.000"
},
"status" : "E0200",
"message" : "Transaction rejected, card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "ff636917-ea64-4c6d-b798-44457cf6ad5a"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 267
{
"requestUuid" : "27b2c7df-cbea-4fed-af1d-ed99297e4505",
"transactionStatus" : "REJECTED",
"status" : "E0201",
"message" : "Transaction rejected, bin is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "8edc68f7-2b09-409b-a566-0ce43ad570c1"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "b7061e5b-e39b-4511-bc53-da4fb352bb64",
"transactionStatus" : "REJECTED",
"status" : "E0202",
"message" : "Transaction rejected, terminal is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "5d48d1e0-1fa9-4b19-b60f-91969e827d9c"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "7af47fc9-ae03-422f-8468-4665822f53ea",
"transactionStatus" : "REJECTED",
"status" : "E0204",
"message" : "Transaction rejected, user is on aml list",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "97fba118-95ee-4ec6-8294-68b0c8aaa018"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 268
{
"requestUuid" : "48d7163c-65b2-43e7-b592-88ef737a2b74",
"transactionStatus" : "REJECTED",
"status" : "E0205",
"message" : "Transaction rejected, bank is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "bf22dfec-3fcf-4e26-8fcd-9a419a7c4f2d"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 301
{
"requestUuid" : "2cf3f66c-faf0-4fcf-99d0-bc37d7656a4a",
"transactionStatus" : "REJECTED",
"status" : "E0206",
"message" : "Transaction rejected, too many reject transactions and card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "cb5a2ba3-9475-4b44-98bd-364bc0444a2a"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 299
{
"requestUuid" : "4d205a3a-ec10-4856-991b-a14882c5f734",
"transactionStatus" : "REJECTED",
"status" : "E0207",
"message" : "Transaction rejected, too many attempts declined and card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "d69eda4d-48f6-458e-ab05-da487c58d921"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 321
{
"requestUuid" : "fffaf8ce-2ab5-43d3-b846-557cbd06fec3",
"transactionStatus" : "REJECTED",
"status" : "E0208",
"message" : "Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "bd158d13-d7f0-4dd2-a0ab-9f617fac17e5"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 292
{
"requestUuid" : "ee3b6dc0-6c6a-4a59-b197-69064b3a68c3",
"transactionStatus" : "REJECTED",
"status" : "E0209",
"message" : "Transaction rejected, sender name contains fraudulent phrase.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "73c0a2c6-b712-4742-ab57-ccbcb3880dba"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 276
{
"requestUuid" : "c60b31a9-b34b-4b19-9fd4-7458799f6a34",
"transactionStatus" : "REJECTED",
"status" : "E0210",
"message" : "Transaction rejected, suspicious sender name.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "89d4ebd8-6271-4b44-be8b-3a700abd179e"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 277
{
"requestUuid" : "6aa4ab52-e351-4166-992c-035a71321ad3",
"transactionStatus" : "REJECTED",
"status" : "E0211",
"message" : "Transaction rejected, card country restricted.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "60af1bcc-e676-40a5-bf88-f8da8dfbc1c9"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 286
{
"requestUuid" : "b27147a5-3afc-463a-b179-f93c0c4012f3",
"transactionStatus" : "REJECTED",
"status" : "E01601",
"message" : "Transaction rejected, terminal is blocked for provider",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f4b91d72-d5f0-4878-8907-9c3d948767fc"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 308
{
"requestUuid" : "fbbfe31e-8580-43b6-bf2e-87f36e44d032",
"transactionStatus" : "REJECTED",
"status" : "E01602",
"message" : "Transaction rejected, geographic scope is not permitted for this transaction",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "41ea36da-ec1b-4103-abfb-4e074c1719b5"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 315
{
"requestUuid" : "3d15f0c5-dd34-40c7-8339-cef0335c0de8",
"transactionStatus" : "REJECTED",
"status" : "E01607",
"message" : "Transaction rejected, internal server error during authorization request generation",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "67bb51e4-deed-4939-8dc1-45446121d59f"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 282
{
"requestUuid" : "5503a1f8-fa3d-4769-b962-1ba159fc4ba1",
"transactionStatus" : "REJECTED",
"status" : "E13000",
"message" : "Transaction rejected, merchant risk score exceeded",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "4b53b0e4-b631-45d7-bb01-570b9e780d82"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 183
{
"status" : "E0142",
"message" : "Commission configuration not add for terminal",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "2f021e65-02c9-4f76-923a-f44d9bc334b6"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 280
{
"requestUuid" : "3c3077fd-066c-42fe-8b69-a626baa76e7b",
"transactionStatus" : "PENDING",
"status" : "E0153",
"message" : "Transaction declined, problem with MIP connection",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "cc811323-4210-4892-b66e-9be0016d7f8b"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 273
{
"requestUuid" : "e0b590f4-c7fb-44f0-a5c0-62638482368e",
"transactionStatus" : "DECLINED",
"status" : "E01599",
"message" : "Transaction declined, processing timeout",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "ef205cef-b2f8-4578-9ebb-e72e0628e80e"
}
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "d47125f6-edb2-4ec0-8a61-4ca6581b8482"
}
Path | Type | Description |
---|---|---|
|
|
Message for response code from Fenige system |
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:12 GMT
Connection: close
Content-Length: 169
{
"status" : "E0400",
"message" : "Failed to get currency for card",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "0293825c-eaf0-45bb-909b-6282b869c44c"
}
HTTP/1.1 503 Service Unavailable
Content-Type: application/json
Content-Length: 164
{
"status" : "E9010",
"message" : "Error data center connection",
"httpStatus" : "SERVICE_UNAVAILABLE",
"traceId" : "d74fcd54-2b1b-4864-a42f-5517f7da824a"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
7.9. Installment Payment
Installment Payment is an API method that allows users to make payments for online purchases in the form of monthly installments. Installlment plan is an offer of the bank to spread the payment in installments and may vary depending on the bank of the card issuer. API methods offers decision whether user wants to make payment in installments, pay in full or cancel. In case of payment in installments, the customer is presented with a plan of possible payment options. Depending on the configuration the customer decides how many installments he wants to make the payment in. The user's goal is to choose the right plan that best suits his requirements. In case of payment in full at the moment of authorization the transaction is treated as an ordinary e-commerce payment. In case of cancel, the whole payment is immediately rejected.
After completing the initialization method and receiving possible installment plans for the transaction, the user has a limited time to decide on the choice of installments. The decision and sending of the confirmation method must be executed within 15 minutes, otherwise the transaction is immediately accepted and cleared in full.
The Installment Payment functionality is only possible for users of cards issued by Mastercard.
Merchant has the ability to make a payment for goods which causes the cardholder to be debited in the currency of purchase, terminal or card currency based on the parameters provided: currency of transaction, different currency terminals held and currencies supported by the card. The optional terminalUuid field provided during any of the authorisation methods forces the card to be debited in the currency of the terminal specified if the purchase currency is different from the terminal currency a currency conversion will take place.
The Fenige Payment API methods optionally allows merchants to store card data and sensitive personal data in order to allow performing subsequent transactions. If merchant decides to use DataCenter transaction flow then is required to provide the card id of the card previously stored in the Fenige DataCenter, from which card the relevant required parameters will be downloaded and used for authorization. Card data and sensitive personal data according to the Fenige API specification are: cardNumber, expiryDate, firstName, lastName and email. All card data are stored securely on Fenige DataCenter servers in accordance with applicable security requirements.
7.9.1. Installment Initial
The method is used as a request to spread payments into installments and is a request to present a list of installment possibilities depending on whether a given bank offers such functionality. The transaction may be a transaction with outside 3ds.
From January 2021, there is an internal functionality to restrict access for the PSP to specific method. The Fenige employee can disable access to a given endpoint, then the HTTP status 403 FORBIDDEN will be returned. The PSP will be informed about each access restriction action. |
When performing authorization, remember that there are currencies with different number of decimal places. For example: VND has no pennies and KWD has three decimal places. Please take this into account in the Amout field. For more information on other currencies, see ISO 4217. |
Request
POST /client/payments/installment/initial HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 882
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "1d050dfb-cdb5-412f-8c99-8b28e0bc80a1",
"requestUuid" : "83d778a9-8d6b-4e47-8eb9-622bf033ca2a",
"firstName" : "user",
"lastName" : "testUser",
"amount" : 1000,
"currency" : "USD",
"cardNumber" : "5453131785534417",
"expiryDate" : "11/26",
"cvc2" : "123",
"email" : "test@fenige.pl",
"addressIp" : "192.0.0.1",
"outside3ds" : {
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"cavvAlgorithm" : "01",
"eci" : "02",
"authenticationStatus" : "Y",
"transactionXId" : "d543820d-683e-4589-86d9-6c9e40db4b53"
},
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"province" : "NY",
"postalCode" : "24-110",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
firstName |
String |
Must match regular expression |
First name of cardholder |
lastName |
String |
Must match regular expression |
Last name of cardholder |
cardNumber |
String |
Full cardholder’s card number must be between 12-digits and 19-digits |
|
expiryDate |
String |
Expiration date of card mm/yy |
|
cvc2 |
String |
@Optional only for Google pay, @Length must be 3 characters, @Must match regular expression: \d+ |
Cardholder’s card cvc2 |
amount |
Number |
@Must be at least 100, @Must not be null |
The total transfer amount (in pennies) |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
outside3ds |
Object |
There are outside 3ds data authorization that have been send to our API |
|
outside3ds.cavv |
String |
@Must be base 64 encoded, @Size must be between 28 and 28 inclusive |
Cardholder Authentication Verification Value. |
outside3ds.transactionXId |
String |
Server transaction Id generated by DS. Required for 3DS 2.x version. The transactionXId is the field that defines the 3DS version. The presence of this field in the HTTP request specifies that the transaction will be processed with 3DS 2.x. TransactionXId can be obtained by executing the /authentication method. |
|
outside3ds.cavvAlgorithm |
String |
Indicates the algorithm used to generate the AuthenticationCAVV value 0 - HMAC 1 - CVV 2 - CVV with ATN 3 - MasterCard SPA algorithm |
|
outside3ds.eci |
String |
@Length must be between 1 and 2 inclusive, @Must match 01 or 02 or 05 or 06, @Must not be null |
Electronic Commerce Indicator: 5 (Visa) or 2 (SecureCode) - The cardholder was successfully authenticated. 6 (Visa) or 1 (SecureCode) - Authentication was attempted, but the cardholder was not enrolled. More info. |
outside3ds.authenticationStatus |
String |
@Must match Y or A or U, @Must not be null |
Authentication status: Y - (Full Authentication) - The customer was successfully authenticated. A - (Successful Attempted Authentication) - Authentication was not available, but functionality was available to generate a proof of authentication attempt. |
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional@Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as Payment Facilitator.. |
POST /client/payments/installment/initial HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 760
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "1d050dfb-cdb5-412f-8c99-8b28e0bc80a1",
"requestUuid" : "a47ff2df-b41d-449a-afd6-7998b135e47f",
"amount" : 1000,
"currency" : "USD",
"cardId" : 1906455,
"cvc2" : "123",
"addressIp" : "192.0.0.1",
"outside3ds" : {
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"cavvAlgorithm" : "01",
"eci" : "02",
"authenticationStatus" : "Y",
"transactionXId" : "d543820d-683e-4589-86d9-6c9e40db4b53"
},
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 900,
"countryOfResidence" : "US",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"province" : "NY",
"postalCode" : "24-110",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
cvc2 |
String |
@Optional only for Google pay, @Length must be 3 characters, @Must match regular expression: \d+ |
Cardholder’s card cvc2 |
amount |
Number |
@Must be at least 100, @Must not be null |
The total transfer amount (in pennies) |
receiverAmount |
Number |
@Optional field, @Must be greater or equals 0 if exists |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
@Must not be null |
Currency for transaction (in accordance with ISO-4217), example: USD |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
outside3ds |
Object |
There are outside 3ds data authorization that have been send to our API |
|
outside3ds.cavv |
String |
@Must be base 64 encoded, @Size must be between 28 and 28 inclusive |
Server transaction Id generated by DS. Required for 3DS 2.x version |
outside3ds.transactionXId |
String |
Cardholder Authentication Verification Value |
|
outside3ds.cavvAlgorithm |
String |
Indicates the algorithm used to generate the AuthenticationCAVV value 0 - HMAC 1 - CVV 2 - CVV with ATN 3 - MasterCard SPA algorithm |
|
outside3ds.eci |
String |
@Length must be between 1 and 2 inclusive, @Must match 01 or 02 or 05 or 06, @Must not be null |
Electronic Commerce Indicator: 5 (Visa) or 2 (SecureCode) - The cardholder was successfully authenticated. 6 (Visa) or 1 (SecureCode) - Authentication was attempted, but the cardholder was not enrolled. More info. |
outside3ds.authenticationStatus |
String |
@Must match Y or A, @Must not be null |
Authentication status: Y - (Full Authentication) - The customer was successfully authenticated. A - (Successful Attempted Authentication) - Authentication was not available, but functionality was available to generate a proof of authentication attempt. |
cardId |
Number |
@Must not be null, @Numeric |
DataCenter card id. Required to obtain card information data from DataCenter such as (cardNumber, expiryDate, firstName, lastName, email) |
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03 |
transactionRef |
String |
@Optional, @Length must be between 1 and 10, @Must not be blank, @Must match the regular expression ^[a-zA-Z0-9]*$ |
An additional transaction identifier defined by the merchant. This can be, for example, the document number of a sales receipt or the number of an offer or product |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional @Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as Payment Facilitator.. |
Response
Status | Description |
---|---|
|
Returned when transaction was successfully authorized. |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0122 - Returned when merchant is not existing. STATUS: E0128 - Returned when sub merchant does not exists. STATUS: E0132 - Returned when terminal is not existing. STATUS: E0135 - Returned when terminal for merchant not exist or all of them are inactive. STATUS: E0137 - Returned when there is not terminal marked as default STATUS: E06003 - Returned when DataCenter card was not found. |
|
STATUS: E0150 - Returned when transaction is rejected. STATUS: E0151 - Returned when transaction is rejected, because currency is not supported. STATUS: E0152 - Returned when transaction is rejected, because issuer is not supported. STATUS: E01580 - Returned when transaction is rejected, because DataCenter card was expired. STATUS: E0159 - Returned when transaction is rejected, because restricted transaction amount has occurred STATUS: E0200 - Returned when transaction is rejected, because card is blocked in Fenige System STATUS: E0201 - Returned when transaction is rejected, because BIN is blocked in Fenige System STATUS: E0202 - Returned when transaction is rejected, because Terminal is blocked in Fenige System STATUS: E0204 - Returned when transaction is rejected, because user’s personal data was found on AML (sanctions) list STATUS: E0205 - Returned when transaction is rejected, because Bank is blocked in Fenige System STATUS: E0206 - Returned when transaction is rejected, because to many reject transactions and card is blocked STATUS: E0207 - Returned when transaction is rejected, bacause to many attempts declined and card is blocked STATUS: E0208 - Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days STATUS: E0209 - Returned when sender or receiver name contains fraudulent phrase STATUS: E0210 - Returned when sender has suspicious name STATUS: E0211 - Returned when transaction is rejected, because card country is blocked in Fenige System. STATUS: E01600 - Returned when transaction is declined, because 3DS 2.X flow invoked for other card number than specified in the request STATUS: E01596 - Returned when transaction is rejected, because terminal has blocked transaction with card issued in restricted country |
|
STATUS: E0142 - Returned when commission configuration is not added for terminal. STATUS: E0153 - Returned when transaction is declined, by problem with MIP connection. STATUS: E01599 - Transaction declined, processing timeout. STATUS: E0190 - Returned when currency rate is invalid. STATUS: E9000 - Returned when reason is unknown. STATUS: E05015 - Returned when VISA card was used (VISA cards are not supported). |
|
STATUS: E9001 - Returned when is error acquirer connection. STATUS: E9010 - Returned when is error DataCenter connection. |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1656
{
"requestUuid" : "2cb3cdb4-9581-41c5-b392-6dcfd4f55adc",
"installmentPaymentInitialUuid" : "b62ca829-4123-4273-b299-a8ceffd10eca",
"transactionStatus" : "APPROVED",
"responseCode" : "CODE_00",
"installmentStatus" : "WAITING_FOR_CONFIRMATION",
"installmentPaymentType" : "ISSUER_FINANCED",
"installmentPaymentOptions" : [ "PAY_IN_INSTALLMENTS", "PAY_IN_FULL", "CANCEL" ],
"installmentPaymentFormat1" : [ {
"uuid" : "ddacd416-aec2-43f7-ae86-e0683417685e",
"installmentPaymentFormat" : "FORMAT_1",
"numberOfInstallments" : "03",
"interestRate" : "00000",
"installmentFee" : "000000001215",
"annualPercentageRate" : " ",
"firstInstallmentAmount" : "000000013905",
"subsequentInstallmentAmount" : "000000013905",
"totalAmountDue" : "000000041715"
}, {
"uuid" : "31bf72c3-a116-4ac2-b40a-3f5aba8f9efc",
"installmentPaymentFormat" : "FORMAT_1",
"numberOfInstallments" : "06",
"interestRate" : "00000",
"installmentFee" : "000000002430",
"annualPercentageRate" : " ",
"firstInstallmentAmount" : "000000007155",
"subsequentInstallmentAmount" : "000000007155",
"totalAmountDue" : "000000042930"
}, {
"uuid" : "ccc38138-5c2e-483d-a390-cc190f8511ca",
"installmentPaymentFormat" : "FORMAT_1",
"numberOfInstallments" : "12",
"interestRate" : "00000",
"installmentFee" : "000000004860",
"annualPercentageRate" : " ",
"firstInstallmentAmount" : "000000003780",
"subsequentInstallmentAmount" : "000000003780",
"totalAmountDue" : "000000045360"
} ],
"status" : "S0002",
"message" : "Success transaction",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Request unique uuid in system |
|
|
Unique transaction uuid which, together with the merchantId, identifies transactions, is used in installment step 2 to identify initial transaction |
|
|
Transaction status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Response code |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Transaction Installment Payment processing status |
|
|
Transaction Installment Payment type information, may be: ISSUER_FINANCED, MERCHANT_FINANCED, ACQUIRER_FINANCED, CO_BRANDED_MERCHANT_FINANCED, ISSUER_MERCHANT_CO_FINANCED |
|
|
Transaction Installment Payment user possible options may be: PAY_IN_INSTALLMENTS, PAY_IN_FULL or CANCEL |
|
|
Unique plan uuid in system. Required to select in step 2 installment decision |
|
|
Plan format label, may be FORMAT_1 for this configuration |
|
|
Number of installments contains the number of installment payments provided by the issuer |
|
|
Interest rate contains the rate (two decimal places) that the issuer assesses the cardholder for the installment payment |
|
|
Installment Fee contains the fee amount in cardholder billing currency that the issuer assesses the cardholder for the installment payments |
|
|
Annual Percentage Rate contains the rate (two decimal places) that the issuer charges the cardholder for the installment payment |
|
|
First Installment Amount contains the amount of the first installment in cardholder billing currency that the issuer will charge the cardholder for the installment payments |
|
|
Subsequent Installment Amount contains the amount of the subsequent installments in cardholder billing currency that the issuer will charge the cardholder for the installment payments |
|
|
Total Amount Due contains the total amount due in cardholder billing currency that the issuer charges the cardholder for the installment payments |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 818
{
"requestUuid" : "9f8e4c20-615e-4946-823d-3ed4b854c9e8",
"installmentPaymentInitialUuid" : "60da9567-5229-4ffa-9c90-48ae285f5588",
"transactionStatus" : "APPROVED",
"responseCode" : "CODE_00",
"installmentStatus" : "WAITING_FOR_CONFIRMATION",
"installmentPaymentType" : "ISSUER_FINANCED",
"installmentPaymentOptions" : [ "PAY_IN_INSTALLMENTS", "CANCEL" ],
"installmentPaymentFormat2" : {
"uuid" : "74f1b137-3c5c-4d2f-89ed-37c37fd50943",
"installmentPaymentFormat" : "FORMAT_2",
"minimumNumberOfInstallments" : "5",
"maximumNumberOfInstallments" : "10",
"interestRate" : "00010",
"installmentFee" : "000000000010",
"annualPercentageRate" : "00010",
"totalAmountDue" : "000000001000"
},
"status" : "S0002",
"message" : "Success transaction",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Request unique uuid in system |
|
|
Unique transaction uuid which, together with the merchantId, identifies transactions, is used in installment step 2 to identify initial transaction |
|
|
Transaction status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Response code |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Transaction Installment Payment processing status |
|
|
Transaction Installment Payment type information, may be: ISSUER_FINANCED, MERCHANT_FINANCED, ACQUIRER_FINANCED, CO_BRANDED_MERCHANT_FINANCED, ISSUER_MERCHANT_CO_FINANCED |
|
|
Transaction Installment Payment user possible options may be: PAY_IN_INSTALLMENTS, PAY_IN_FULL or CANCEL |
|
|
Unique plan uuid in system. Required to select in step 2 installment decision |
|
|
Plan format label, may be FORMAT_2 for this configuration |
|
|
Minimum number of installments contains the minimum number of installments payments provided by the issuer |
|
|
Maximum number of installments contains the maximum number of installments payments provided by the issuer |
|
|
Interest rate contains the rate (two decimal places) that the issuer assesses the cardholder for the installment payment |
|
|
Installment Fee contains the fee amount in cardholder billing currency that the issuer assesses the cardholder for the installment payments |
|
|
Annual Percentage Rate contains the rate (two decimal places) that the issuer charges the cardholder for the installment payment |
|
|
Total Amount Due contains the total amount due in cardholder billing currency that the issuer charges the cardholder for the installment payments |
Path | Type | Description |
---|---|---|
|
|
Request unique uuid in system |
|
|
Unique transaction uuid which, together with the merchantId, identifies transactions, is used in installment step 2 to identify initial transaction |
|
|
Transaction status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Response code |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Transaction Installment Payment processing status |
|
|
Transaction Installment Payment user possible options may be: PAY_IN_INSTALLMENTS, PAY_IN_FULL or CANCEL |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:31 GMT
Connection: close
Content-Length: 502
{
"errors" : {
"expiryDate" : [ "invalid card expiration date" ],
"lastName" : [ "must not be null", "" ],
"firstName" : [ "must not be null", "" ],
"amount" : [ "must not be null" ],
"merchantUuid" : [ "must not be null" ],
"requestUuid" : [ "must not be null" ],
"currency" : [ "must not be null" ],
"cvc2" : [ "must not be blank", "must not be null" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "d05ca22c-bd1b-40d1-8aff-5d99520dd699"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:31 GMT
Connection: close
Content-Length: 475
{
"errors" : {
"firstName" : [ "Card id was provided, firstName is obtained from data center card: 1906455" ],
"lastName" : [ "Card id was provided, lastName is obtained from data center card: 1906455" ],
"cardId" : [ "Please provide cardId for DATACENTER transaction or fields: cardNumber, expiryDate, firstName, lastName for PLAIN transaction" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "a1adb2f4-4b71-4304-b014-545e2383c9e9"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:44:31 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "fe2e3f36-388c-4603-b5d8-da71188268b8"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 403 Forbidden
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 135
Date: Wed, 20 Nov 2024 17:44:32 GMT
{
"status" : "E8001",
"message" : "Forbidden",
"httpStatus" : "FORBIDDEN",
"traceId" : "64e1059c-3c59-49fa-bcdf-51f8f0fc27e0"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0122",
"message" : "Merchant not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "4ed05bd8-2b8c-4c9f-ac34-df4338663be9"
}
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0132",
"message" : "Terminal not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "9bbb269d-d42b-4158-864c-2f1c9fcb095f"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 163
{
"status" : "E0137",
"message" : "Default terminal not exist",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "178ec38e-c980-4220-95c5-34c4cb223ac5"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 159
{
"status" : "E0135",
"message" : "Terminals for merchant not exists",
"httpStatus" : "NOT_FOUND",
"traceId" : "bc4cac16-c4a8-4bc9-9e16-ca79cb429d4a"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 246
{
"requestUuid" : "31df3fb9-06eb-4fa4-a371-9dcf74d021bc",
"transactionStatus" : "REJECTED",
"status" : "E06003",
"message" : "Datacenter card not found",
"httpStatus" : "NOT_FOUND",
"traceId" : "9dffef25-4b4d-4781-8d48-6719bc46f56c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 251
{
"requestUuid" : "9b111fac-3257-43e5-8226-d86880b5dd96",
"transactionStatus" : "REJECTED",
"status" : "E0150",
"message" : "Transaction rejected",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "c775492b-5152-4ac2-93dc-606dd6e5bb4e"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 275
{
"requestUuid" : "32b7ac46-e7b3-4f6d-9629-c1aedb5d489b",
"transactionStatus" : "REJECTED",
"status" : "E0151",
"message" : "Transaction rejected, currency not supported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "968ec8ff-d8cb-4456-b87a-ef12c057afc7"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 278
{
"requestUuid" : "a1ce754e-d973-4912-b6be-670eef40da71",
"transactionStatus" : "REJECTED",
"status" : "E0152",
"message" : "Transaction rejected, issuer card not supported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "1bc5b58b-22ee-4643-a4e3-f064cba61196"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 270
{
"requestUuid" : "2ecee493-91ce-4048-94f6-16a89bcb911c",
"transactionStatus" : "REJECTED",
"status" : "E01580",
"message" : "Transaction rejected. Card is expired.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "5c06f460-e772-4d5e-a42e-95ddf1fde2be"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 295
{
"requestUuid" : "3312a397-2369-4e8b-8aab-d8bdc5a94208",
"transactionStatus" : "REJECTED",
"status" : "E0159",
"message" : "Transaction rejected, restricted transaction amount has occurred",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f5156801-ca81-4a16-bd2b-89b82ac94e67"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 381
{
"requestUuid" : "a0f37f3b-5092-4a01-937f-8c4ed398f0c2",
"transactionStatus" : "REJECTED",
"cardBlockadeAdditionalData" : {
"blockType" : "TEMP",
"blockedUntil" : "2022-11-01T12:51:32.000"
},
"status" : "E0200",
"message" : "Transaction rejected, card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "8617dde7-724e-4f3e-94a7-f61210103db5"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 267
{
"requestUuid" : "d2046470-c313-4c80-93af-b06bf07c5755",
"transactionStatus" : "REJECTED",
"status" : "E0201",
"message" : "Transaction rejected, bin is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "2cea295d-fa32-4dc5-a818-f9c16615ee9c"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "85a12515-ecb3-42fc-be86-e92d688b01b4",
"transactionStatus" : "REJECTED",
"status" : "E0202",
"message" : "Transaction rejected, terminal is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "b94c3b7b-250c-495d-94e5-60c20f9680c3"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "8c83a841-898e-4b95-93c2-d1f0858d30ea",
"transactionStatus" : "REJECTED",
"status" : "E0204",
"message" : "Transaction rejected, user is on aml list",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "311a8bc5-f7e8-4dce-9d08-1e3effc3502a"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 268
{
"requestUuid" : "65405a07-b33e-4e4e-a6d1-26b6eff52149",
"transactionStatus" : "REJECTED",
"status" : "E0205",
"message" : "Transaction rejected, bank is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "3f1cd4f8-f721-4413-9f65-7405dcb7c3ba"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 301
{
"requestUuid" : "2cf3f66c-faf0-4fcf-99d0-bc37d7656a4a",
"transactionStatus" : "REJECTED",
"status" : "E0206",
"message" : "Transaction rejected, too many reject transactions and card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "cb5a2ba3-9475-4b44-98bd-364bc0444a2a"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 299
{
"requestUuid" : "4d205a3a-ec10-4856-991b-a14882c5f734",
"transactionStatus" : "REJECTED",
"status" : "E0207",
"message" : "Transaction rejected, too many attempts declined and card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "d69eda4d-48f6-458e-ab05-da487c58d921"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 321
{
"requestUuid" : "fffaf8ce-2ab5-43d3-b846-557cbd06fec3",
"transactionStatus" : "REJECTED",
"status" : "E0208",
"message" : "Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "bd158d13-d7f0-4dd2-a0ab-9f617fac17e5"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 292
{
"requestUuid" : "ee3b6dc0-6c6a-4a59-b197-69064b3a68c3",
"transactionStatus" : "REJECTED",
"status" : "E0209",
"message" : "Transaction rejected, sender name contains fraudulent phrase.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "73c0a2c6-b712-4742-ab57-ccbcb3880dba"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 276
{
"requestUuid" : "c60b31a9-b34b-4b19-9fd4-7458799f6a34",
"transactionStatus" : "REJECTED",
"status" : "E0210",
"message" : "Transaction rejected, suspicious sender name.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "89d4ebd8-6271-4b44-be8b-3a700abd179e"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 277
{
"requestUuid" : "6aa4ab52-e351-4166-992c-035a71321ad3",
"transactionStatus" : "REJECTED",
"status" : "E0211",
"message" : "Transaction rejected, card country restricted.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "60af1bcc-e676-40a5-bf88-f8da8dfbc1c9"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 317
{
"requestUuid" : "e430b311-1428-4195-b17f-513eeca8bc3f",
"transactionStatus" : "REJECTED",
"status" : "E01594",
"message" : "Transaction rejected, transactionXId parameter had registered for another transaction",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "4af81f92-c084-449c-9a39-8c0d1ee0356a"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 326
{
"requestUuid" : "c132546c-4a59-4ab0-8e09-9b52d049849f",
"transactionStatus" : "REJECTED",
"status" : "E01584",
"message" : "Transaction rejected, 3DS 2.X flow invoked for other card number than specified in the request",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "7f07a1c7-624b-4962-8197-7aaee8ec75b7"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 321
{
"requestUuid" : "195a3940-7310-4e97-bacd-031877bf3a2e",
"transactionStatus" : "REJECTED",
"status" : "E01596",
"message" : "Transaction rejected, terminal blocks transactions with card issued in given card country",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "e76d7544-601c-4734-aec3-e7e330205d30"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 282
{
"requestUuid" : "5503a1f8-fa3d-4769-b962-1ba159fc4ba1",
"transactionStatus" : "REJECTED",
"status" : "E13000",
"message" : "Transaction rejected, merchant risk score exceeded",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "4b53b0e4-b631-45d7-bb01-570b9e780d82"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 183
{
"status" : "E0142",
"message" : "Commission configuration not add for terminal",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "86b08fc8-bde1-4240-80ed-4f313a7eca90"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 187
{
"status" : "E0153",
"message" : "Transaction declined, problem with MIP connection",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "ca2f4c67-faca-4a28-858f-c0ce63e76874"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 283
{
"requestUuid" : "8e8bbce1-774d-46c7-a563-df63517aa3c9",
"transactionStatus" : "REJECTED",
"status" : "E05015",
"message" : "Installment Payment unsupported card provider VISA",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "4b025d89-22e9-4a29-824f-5f91e3208794"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 179
{
"status" : "E01599",
"message" : "Transaction declined, processing timeout",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "09e04370-05cb-4fde-8d8c-d39c56b20f8a"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 166
{
"status" : "E0190",
"message" : "Failed to get currency rates",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "2cc7fd4c-5d6f-4a76-afa8-05de318d8c0c"
}
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "d47125f6-edb2-4ec0-8a61-4ca6581b8482"
}
Path | Type | Description |
---|---|---|
|
|
Message for response code from Fenige system |
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:12 GMT
Connection: close
Content-Length: 169
{
"status" : "E0400",
"message" : "Failed to get currency for card",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "0293825c-eaf0-45bb-909b-6282b869c44c"
}
HTTP/1.1 503 Service Unavailable
Content-Type: application/json
Content-Length: 258
{
"requestUuid" : "4ede443b-11df-4536-85da-0d2709493ad5",
"transactionStatus" : "REJECTED",
"status" : "E9010",
"message" : "Error data center connection",
"httpStatus" : "SERVICE_UNAVAILABLE",
"traceId" : "23fd63a5-7677-4bcf-ae79-52e65ab0b5ce"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Request unique uuid in system |
|
|
Transaction status |
7.9.2. Installment Confirm
The method is used to communicate the user's decision to start or reject installments the bank's proposal. If accept the installments, the user sends a specific uuid of the plan to which he agrees and optional number of installments (depending on installment Format 1 or Format 2 bank returns). Format 2 of Mastercard installment plan requires providing speciffic number of installments value which is in allowed range. In case of full payment user selects PAY_IN_FULL option. In case of cancellation it sends CANCEL.
From January 2021, there is an internal functionality to restrict access for the PSP to specific method. The Fenige employee can disable access to a given endpoint, then the HTTP status 403 FORBIDDEN will be returned. The PSP will be informed about each access restriction action. |
Request
POST /client/payments/installment/confirm HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 533
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "dc5f071f-3f8d-4813-90b0-c7d946e8ee6d",
"requestUuid" : "a6d04357-e5bc-4e32-b032-aafe69fccb19",
"installmentPaymentInitialUuid" : "edee242c-428d-4761-9f4a-63ae14968336",
"installmentPaymentOption" : "PAY_IN_INSTALLMENTS",
"installmentPaymentPlanUuid" : "dcc027c3-87b8-4d9a-bd42-2cadf12f1131",
"installmentPaymentNumberOfInstallments" : "12",
"countryOfResidence" : "US",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"province" : "NY",
"postalCode" : "24-110"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
installmentPaymentInitialUuid |
String |
@Must not be null |
Transaction uuid of initial Installment Payment transaction |
installmentPaymentOption |
String |
@Must not be null |
Transaction Installment Payment user possible options may be: PAY_IN_INSTALLMENTS, PAY_IN_FULL or CANCEL |
installmentPaymentPlanUuid |
String |
Installment Payment plan uuid from previously returned plans. Required for PAY_IN_INSTALLMENTS. Required for FORMAT 1 and FORMAT 2 plans |
|
installmentPaymentNumberOfInstallments |
String |
Number of installments from allowed range (minimumNumberOfInstallments and maximumNumberOfInstallments). Required for PAY_IN_INSTALLMENTS. Required for FORMAT 2 plan. |
|
countryOfResidence |
String |
Country of residence is only required for merchants crypto |
|
city |
String |
@Optional@Length(min = 1, max = 55) |
Optional city of sender |
street |
String |
@Optional @Length(min = 1, max = 55) @Pattern(regexp = "[\\s\](\\s[^\\s]+)*$") |
Optional street name of sender |
province |
String |
@Optional @Length(min = 2, max = 2) |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = "^[1-9][0-9]{0,4}(?:[A-z]?[0-9]{0,4})?((?:[-/ ][1-9]?[A-z]?[0-9]{0,4})*[A-z]?)?$") |
Optional house number of sender |
postalCode |
String |
@Optional @Length(min = 1, max = 10) @Pattern(regexp = (^[a-zA-Z\d][a-zA-Z\d\- ]{0,9}[a-zA-Z\d]$)|^[a-zA-Z1-9]$ |
Optional postal code of sender |
Response
Status | Description |
---|---|
|
Returned when transaction was successfully authorized. |
|
STATUS: E80000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E80002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E001900 - Installment Payment initial not found. STATUS: E001901 - Installment Payment already confirmed. STATUS: E001902 - Installment Payment already cancelled. STATUS: E001903 - Installment Payment already pay in full. STATUS: E001904 - Installment Payment not confirmed in required time. STATUS: E001905 - Installment Payment Initial was failed. STATUS: E001906 - Installment Payment could not find valid installment plan for requested uuid. STATUS: E001907 - Installment Payment Option not allowed for transaction. STATUS: E001908 - Installment Payment missing plan uuid. STATUS: E001909 - Installment Payment missing request number of installments. STATUS: E001910 - Installment Payment requested number of installments is outside of allowed range. STATUS: E90000 - Returned when reason is unknown. |
|
STATUS: E90001 - Returned when is error acquirer connection. STATUS: E90002 - Returned when is error mpi connection. |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 263
{
"installmentPaymentInitialUuid" : "cb212803-b610-4e1f-925a-fa3abf98dd1e",
"transactionStatus" : "APPROVED",
"responseCode" : "CODE_00",
"installmentStatus" : "CONFIRMED",
"status" : "S0002",
"message" : "Success transaction",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Unique transaction uuid which, together with the merchantId, identifies transactions |
|
|
Transaction status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Response code |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Transaction Installment Payment processing status |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 262
{
"installmentPaymentInitialUuid" : "be9f4fe4-1fc2-4fd8-924d-749a67b8813e",
"transactionStatus" : "APPROVED",
"responseCode" : "CODE_00",
"installmentStatus" : "CANCELED",
"status" : "S0002",
"message" : "Success transaction",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Unique transaction uuid which, together with the merchantId, identifies transactions |
|
|
Transaction status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Response code |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Transaction Installment Payment processing status |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:34 GMT
Connection: close
Content-Length: 337
{
"errors" : {
"installmentPaymentInitialUuid" : [ "must not be null" ],
"merchantUuid" : [ "must not be null" ],
"requestUuid" : [ "must not be null" ],
"installmentPaymentOption" : [ "must not be null" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "db08cb23-5467-4d61-80b1-ea325013bdf8"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:44:34 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "7de786e8-afc6-4255-a203-cf3b2d35ea07"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 403 Forbidden
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 135
Date: Wed, 20 Nov 2024 17:44:34 GMT
{
"status" : "E8001",
"message" : "Forbidden",
"httpStatus" : "FORBIDDEN",
"traceId" : "a3d13700-52b8-49f6-a7fb-c2f9b2413a4e"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 176
{
"status" : "E05000",
"message" : "Installment Payment initial not found",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "df2d9071-5752-4cf9-9097-8712e14bfe9e"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 176
{
"status" : "E05001",
"message" : "Installment Payment already confirmed",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "bbf8d594-16a0-44cf-a60d-fd80d914932a"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 176
{
"status" : "E05002",
"message" : "Installment Payment already cancelled",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "e7de2670-b930-4eb2-832d-ae881433e6ce"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 178
{
"status" : "E05003",
"message" : "Installment Payment already pay in full",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "57722e33-b472-4c83-9327-4732b551ba0f"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 189
{
"status" : "E05004",
"message" : "Installment Payment not confirmed in required time",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "b1406825-e898-4505-aca6-d7e347e2033a"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 177
{
"status" : "E05005",
"message" : "Installment Payment Initial was failed",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "371fe537-6954-4259-b987-b78fcf5cfdff"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 215
{
"status" : "E05006",
"message" : "Installment Payment could not find valid installment plan for requested uuid",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "8cc4a1b1-8d8d-4f34-8d37-6205806bd3ce"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 193
{
"status" : "E05007",
"message" : "Installment Payment Option not allowed for transaction",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "c9352c1b-360d-48a0-8c1a-b8023ce3e710"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 176
{
"status" : "E05008",
"message" : "Installment Payment missing plan uuid",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "9d7828d7-b3d0-489f-b8ba-0259843b0d64"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 197
{
"status" : "E05009",
"message" : "Installment Payment missing request number of installments",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "80b881b8-8ded-4504-bdd4-268c32cd8f84"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 219
{
"status" : "E05010",
"message" : "Installment Payment requested number of installments is outside of allowed range",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "f5054ce4-e42e-4b7a-9159-5501ec4395fa"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 234
{
"status" : "E05011",
"message" : "Installment Payment operation not allowed, installment type allows ISSUER_FINANCED installments",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "8748e995-431f-43e3-a70c-8172f66bdc88"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 203
{
"status" : "E05014",
"message" : "Installment Payment outside 3ds request is required for terminal",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "3343315c-8b89-4e1e-b6a9-7b959835c788"
}
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:12 GMT
Connection: close
Content-Length: 169
{
"status" : "E0400",
"message" : "Failed to get currency for card",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "0293825c-eaf0-45bb-909b-6282b869c44c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
7.9.3. Installment Payment Processing Test Cases
There are some rules imposed by the Mastercard which are required to be able to properly test the Installment Payment flow on the staging environment. Test card. Based on the special Mastercard test documentation we know that to be able to test the IP flow correctly you have to use specially defined card numbers otherwise the test environment of the Mastercard will not return proposals for monthly installments for approval. Allowed test card numbers are shown below. Terminal settlement currency. Mastercard requires you to enter and send the appropriate transaction amount to the test environment in order to call a specific test case. In order to achieve this, currency conversions must be avoided during the execution of the transaction, which is possible when: card currency = terminal currency = transaction currency. The full list of test cases is presented below. Transaction currency. As described above, the transaction currency should be the same as the terminal and card currency.
Terminal settlement currency should be EUR. Card default currency = EUR. Transaction currency = EUR. Transaction amount must be one of the values described in below table. |
Test Cases
Case ID |
Transaction details |
Response |
1 |
"amount" : 95000, "currency" : "EUR", "cardNumber" : "5457210001000050", |
Issuer does not offer installment payment plan "installmentStatus": "INSTALLMENT_PAYMENT_NOT_SUPPORTED_WAITING_FOR_CONFIRMATION", "installmentPaymentOptions": [ "PAY_IN_FULL", "CANCEL" ], |
2 |
"amount" : 95100, "currency" : "EUR", "cardNumber" : "5457210001000050", |
Issuer offers "Pay in Full Only", no installments. "installmentStatus": "INSTALLMENT_PAYMENT_NOT_SUPPORTED_WAITING_FOR_CONFIRMATION", "installmentPaymentOptions": [ "PAY_IN_FULL", "CANCEL" ], |
3 |
"amount" : 95200, "currency" : "EUR", "cardNumber" : "5457210001000050", |
Issuer offers "Pay in Installments Only" "installmentStatus": "WAITING_FOR_CONFIRMATION", "installmentPaymentType": "ISSUER_FINANCED", "installmentPaymentOptions": [ "PAY_IN_INSTALLMENTS", "CANCEL" ], "installmentPaymentFormat1": [ { "uuid": "42b37dc0-0bdb-42fe-b4a7-d02225ef32ea", "installmentPaymentFormat": "FORMAT_1", "numberOfInstallments": "05", "interestRate": "00100", "installmentFee": "000000000010", "annualPercentageRate": "00050", "firstInstallmentAmount": "000000001000", "subsequentInstallmentAmount": "000000001000", "totalAmountDue": "000000001000" } ], |
4 |
"amount" : 95300, "currency" : "EUR", "cardNumber" : "5457210001000050", |
Issuer offers "Pay in Full or Pay in Installments" "installmentStatus": "WAITING_FOR_CONFIRMATION", "installmentPaymentType": "ISSUER_FINANCED", "installmentPaymentOptions": [ "PAY_IN_INSTALLMENTS", "PAY_IN_FULL", "CANCEL" ], "installmentPaymentFormat1": [ { "uuid": "4ee7c0b8-93c7-4a7b-8d81-3623c5907986", "installmentPaymentFormat": "FORMAT_1", "numberOfInstallments": "10", "interestRate": "00100", "installmentFee": "000000000010", "annualPercentageRate": "00050", "firstInstallmentAmount": "000000001000", "subsequentInstallmentAmount": "000000001000", "totalAmountDue": "000000100000" }, { "uuid": "0ef86c37-7c2a-41fd-b2bf-71ec04e622e9", "installmentPaymentFormat": "FORMAT_1", "numberOfInstallments": "10", "interestRate": "00100", "installmentFee": "000000000010", "annualPercentageRate": "00050", "firstInstallmentAmount": "000000001000", "subsequentInstallmentAmount": "000000001000", "totalAmountDue": "000000090000" }, ….. ….. |
5 |
"amount" : 95400, "currency" : "EUR", "cardNumber" : "5457210001000050", |
Issuer offers "Pay in Installments Only" - Format 2 "installmentStatus": "WAITING_FOR_CONFIRMATION", "installmentPaymentType": "ISSUER_FINANCED", "installmentPaymentOptions": [ "PAY_IN_INSTALLMENTS", "CANCEL" ], "installmentPaymentFormat2": { "uuid": "bfd6d122-0903-446d-9b26-c40973f82aea", "installmentPaymentFormat": "FORMAT_2", "minimumNumberOfInstallments": "10", "maximumNumberOfInstallments": "10", "interestRate": "00010", "installmentFee": "000000000010", "annualPercentageRate": "00010", "totalAmountDue": "000000001000" }, |
6 |
"amount" : 95500, "currency" : "EUR", "cardNumber" : "5457210001000050", |
Issuer offers "Pay in Full or Pay in Installments" - Format 2 "installmentStatus": "WAITING_FOR_CONFIRMATION", "installmentPaymentType": "ISSUER_FINANCED", "installmentPaymentOptions": [ "PAY_IN_INSTALLMENTS", "PAY_IN_FULL", "CANCEL" ], "installmentPaymentFormat2": { "uuid": "6479c6f3-2e39-4fb5-bd3b-9ee45437b80b", "installmentPaymentFormat": "FORMAT_2", "minimumNumberOfInstallments": "10", "maximumNumberOfInstallments": "10", "interestRate": "00010", "installmentFee": "000000000010", "annualPercentageRate": "00010", "totalAmountDue": "000000001000" }, |
7 |
"amount" : 95600, "currency" : "EUR", "cardNumber" : "5457210001000050", |
Issuer offers "Pay in Full Only" "installmentStatus": "WAITING_FOR_CONFIRMATION", "installmentPaymentType": "ISSUER_FINANCED", "installmentPaymentOptions": [ "PAY_IN_FULL", "CANCEL" ], "installmentPaymentFormat1": [ { "uuid": "8e9e8afa-3e57-4e40-909e-b53aa475a4d2", "installmentPaymentFormat": "FORMAT_1", "numberOfInstallments": "10", "interestRate": "00100", "installmentFee": "000000000010", "annualPercentageRate": "00050", "firstInstallmentAmount": "000000001000", "subsequentInstallmentAmount": "000000001000", "totalAmountDue": "000000100000" } ], "installmentPaymentFormat2": { "uuid": "7897ecb7-78b0-4243-99a5-87965ecb537f", "installmentPaymentFormat": "FORMAT_2", "minimumNumberOfInstallments": "10", "maximumNumberOfInstallments": "10", "interestRate": "00010", "installmentFee": "000000000010", "annualPercentageRate": "00010", "totalAmountDue": "000000001000" }, |
8 |
"amount" : 95600, "currency" : "EUR", "cardNumber" : "5457210001000050", |
Issuer offers "Pay in Full Only" "installmentStatus": "WAITING_FOR_CONFIRMATION", "installmentPaymentType": "ISSUER_FINANCED", "installmentPaymentOptions": [ "PAY_IN_FULL", "CANCEL" ], "installmentPaymentFormat1": [ { "uuid": "8e9e8afa-3e57-4e40-909e-b53aa475a4d2", "installmentPaymentFormat": "FORMAT_1", "numberOfInstallments": "10", "interestRate": "00100", "installmentFee": "000000000010", "annualPercentageRate": "00050", "firstInstallmentAmount": "000000001000", "subsequentInstallmentAmount": "000000001000", "totalAmountDue": "000000100000" } ], "installmentPaymentFormat2": { "uuid": "7897ecb7-78b0-4243-99a5-87965ecb537f", "installmentPaymentFormat": "FORMAT_2", "minimumNumberOfInstallments": "10", "maximumNumberOfInstallments": "10", "interestRate": "00010", "installmentFee": "000000000010", "annualPercentageRate": "00010", "totalAmountDue": "000000001000" }, |
Test Card numbers
Test Cards, default currency = EUR |
---|
5299050250000019, 5185520050000010, 5457210001000019, 5299050320000015, 5185520270000014, 5457210001000027, 5457210001000035, 5457210001000043, 5457210001000050 |
7.10. Details
This method could be used for check transaction details. In response for the request you can find out more about registered transaction and check its status etc.
7.10.1. Request
GET /client/payments/query/e7ef8542-27d5-4f32-841f-cb5e0dfbb3d9 HTTP/1.1
accept-encoding: gzip
user-agent: ReactorNetty/1.0.39
accept: */*
Authorization: Basic dXNlcjpwYXNzd29yZA==
Host: ecom-staging.fenige.pl
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Parameter | Description |
---|---|
|
Request’s unique uuid in system |
7.10.2. Response
Response status
Status | Description |
---|---|
|
Returned when transaction details was successfully returned. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0154 - Returned when failed to fetch transaction details. STATUS: E9000 - Returned when reason is unknown. |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:18 GMT
Content-Length: 1530
{
"requestUuid" : "4def297e-ce07-433d-a658-2f008f2a204a",
"createdDate" : "2024-11-20T18:45:13.957Z",
"transactionStatus" : "CLEARED",
"responseCode" : "CODE_00",
"authorizeRRN" : "014011103023",
"authorizeStan" : "103023",
"clearingStatus" : "APPROVED",
"clearingDate" : "2024-11-20T18:45:13.957Z",
"arn" : "05411640143500000019325",
"autoClear" : true,
"hiddenCardNumber" : "545313******4417",
"amount" : 100.0,
"currency" : "USD",
"finalAmount" : 100.0,
"finalCurrency" : "USD",
"geographicScope" : "DOMESTIC",
"pspUuid" : "b4f9f313-52a6-4bdc-b83a-c85769436d94",
"merchantUuid" : "5d96b258-d006-4264-a695-0ece0c2c180f",
"terminalUuid" : "b983f0bc-5f1e-4571-a527-2f2fb214c84b",
"firstName" : "user",
"lastName" : "testUser",
"email" : "test@fenige.pl",
"refundAmount" : 1.0,
"refundStatus" : "APPROVED",
"refundArn" : "74350824095000000006387",
"refundDate" : "2024-11-20T18:45:13.957Z",
"clearingAmount" : 100.0,
"authorizationType" : "ELECTRONIC_COMMERCE_PURCHASE",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 1.0,
"terminalSettlementCurrency" : "USD",
"amountInTerminalSettlementCurrency" : 100.0,
"commissionFenigeInTerminalSettlementCurrency" : 10.0,
"refunds" : [ {
"amount" : 1.0,
"status" : "APPROVED",
"arn" : "74350824095000000006387",
"rrn" : "428910113225",
"date" : "2024-11-20T18:45:13.957Z",
"responseCode" : "CODE_00"
} ],
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK",
"3DS" : false
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
Transaction creation date |
|
|
Transaction Status |
|
|
Transaction Retrieval Reference Number |
|
|
Transaction System Trace Audit Number (STAN) |
|
|
Response code |
|
|
Clearing status |
|
|
Clearing creation date |
|
|
Acquirer Reference Number |
|
|
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
|
Hidden card number |
|
|
The total transfer amount |
|
|
Declared amount. Fenige Information field |
|
|
Currency for transaction. Example: USD |
|
|
The final total transfer amount |
|
|
Final currency for transaction. Example: USD |
|
|
Type of transaction scope (DOMESTIC, CROSSBORDER, DOMESTIC_PL, INTRA_EU, INTER) |
|
|
Psp’s unique uuid in system |
|
|
Merchant’s unique uuid in system |
|
|
Terminal’s unique uuid in system |
|
|
First name of cardholder |
|
|
Last name of cardholder |
|
|
Cardholder’s email |
|
|
Response code |
|
|
The total refund amount |
|
|
Refund status |
|
|
Refund Acquirer Reference Number |
|
|
Refund creation date |
|
|
The clearing amount. This field is returned if this transaction has been cleared |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Is 3DS enabled for transaction. Enabled if true, is not enabled if false |
|
|
Authorization type: ECOMMERCE, COF, TOKEN |
|
|
Merchant defined transaction reference identifier |
|
|
Terminal settlement currency |
|
|
Amount in terminal settlement currency |
|
|
Commission Fenige in terminal settlement currency |
|
|
Refund date |
|
|
Refund amount |
|
|
Refund acquirer reference number |
|
|
Refund retrival reference number |
|
|
Refund iso response code |
|
|
Refund status |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:16 GMT
Content-Length: 1603
{
"requestUuid" : "e7ef8542-27d5-4f32-841f-cb5e0dfbb3d9",
"createdDate" : "2024-11-20T18:45:13.957Z",
"transactionStatus" : "CLEARED",
"responseCode" : "CODE_00",
"authorizeRRN" : "014011103023",
"authorizeStan" : "103023",
"clearingStatus" : "APPROVED",
"clearingDate" : "2024-11-20T18:45:13.957Z",
"arn" : "05411640143500000019325",
"autoClear" : true,
"hiddenCardNumber" : "545313******4417",
"amount" : 100.0,
"currency" : "USD",
"finalAmount" : 100.0,
"finalCurrency" : "USD",
"geographicScope" : "DOMESTIC",
"pspUuid" : "b4f9f313-52a6-4bdc-b83a-c85769436d94",
"merchantUuid" : "607a4660-d090-4569-9283-d3be82eb4bd8",
"terminalUuid" : "9d649d87-0e6c-4de3-b4ab-3637479db2ab",
"firstName" : "user",
"lastName" : "testUser",
"email" : "test@fenige.pl",
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"mpiStatus" : "Finalize: Y",
"refundAmount" : 1.0,
"refundStatus" : "APPROVED",
"refundArn" : "74350824095000000006387",
"refundDate" : "2024-11-20T18:45:13.957Z",
"clearingAmount" : 100.0,
"authorizationType" : "ELECTRONIC_COMMERCE_PURCHASE",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 1.0,
"terminalSettlementCurrency" : "USD",
"amountInTerminalSettlementCurrency" : 100.0,
"commissionFenigeInTerminalSettlementCurrency" : 10.0,
"refunds" : [ {
"amount" : 1.0,
"status" : "APPROVED",
"arn" : "74350824095000000006387",
"rrn" : "428910113225",
"date" : "2024-11-20T18:45:13.957Z",
"responseCode" : "CODE_00"
} ],
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK",
"3DS" : true
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
Transaction creation date |
|
|
Transaction Status |
|
|
Transaction Retrieval Reference Number |
|
|
Transaction System Trace Audit Number (STAN) |
|
|
Response code |
|
|
Clearing status |
|
|
Clearing creation date |
|
|
Acquirer Reference Number |
|
|
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
|
Hidden card number |
|
|
The total transfer amount |
|
|
Declared amount. Fenige Information field |
|
|
Currency for transaction. Example: USD |
|
|
The final total transfer amount |
|
|
Final currency for transaction. Example: USD |
|
|
Type of transaction scope (DOMESTIC, CROSSBORDER, DOMESTIC_PL, INTRA_EU, INTER) |
|
|
Psp’s unique uuid in system |
|
|
Merchant’s unique uuid in system |
|
|
Terminal’s unique uuid in system |
|
|
First name of cardholder |
|
|
Last name of cardholder |
|
|
Cardholder’s email |
|
|
The clearing amount. This field is returned if this transaction has been cleared |
|
|
Cardholder Authentication Verification Value |
|
|
MPI status |
|
|
The total refund amount |
|
|
Refund status |
|
|
Refund Acquirer Reference Number |
|
|
Refund creation date |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Is 3DS enabled for transaction. Enabled if true, is not enabled if false |
|
|
Authorization type: ELECTRONIC_COMMERCE_PURCHASE, ELECTRONIC_COMMERCE_PURCHASE_REFUND, ELECTRONIC_COMMERCE_TOKEN_AUTHORIZATION, CREDENTIAL_ON_FILE_AUTHORIZATION |
|
|
Merchant defined transaction reference identifier |
|
|
Terminal settlement currency |
|
|
Amount in terminal settlement currency |
|
|
Commission Fenige in terminal settlement currency |
|
|
Refund date |
|
|
Refund amount |
|
|
Refund acquirer reference number |
|
|
Refund retrival reference number |
|
|
Refund iso response code |
|
|
Refund status |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:13 GMT
Content-Length: 1550
{
"requestUuid" : "f915c518-8e02-4dd0-9f31-849ceb9dcce5",
"createdDate" : "2024-11-20T18:45:13.957Z",
"transactionStatus" : "CLEARED",
"responseCode" : "CODE_00",
"authorizeRRN" : "014011103023",
"authorizeStan" : "103023",
"clearingStatus" : "APPROVED",
"clearingDate" : "2024-11-20T18:45:13.957Z",
"arn" : "05411640143500000019325",
"autoClear" : true,
"hiddenCardNumber" : "545313******4417",
"cardId" : 54604,
"amount" : 100.0,
"currency" : "USD",
"finalAmount" : 100.0,
"finalCurrency" : "USD",
"geographicScope" : "DOMESTIC",
"pspUuid" : "b4f9f313-52a6-4bdc-b83a-c85769436d94",
"merchantUuid" : "33fd990b-8e94-4610-a6a7-47ce2395a679",
"terminalUuid" : "01aac296-f18e-4685-a2ec-5fbdf3263cf0",
"firstName" : "user",
"lastName" : "testUser",
"email" : "test@fenige.pl",
"refundAmount" : 1.0,
"refundStatus" : "APPROVED",
"refundArn" : "74350824095000000006387",
"refundDate" : "2024-11-20T18:45:13.957Z",
"clearingAmount" : 100.0,
"authorizationType" : "ELECTRONIC_COMMERCE_PURCHASE",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 1.0,
"terminalSettlementCurrency" : "USD",
"amountInTerminalSettlementCurrency" : 100.0,
"commissionFenigeInTerminalSettlementCurrency" : 10.0,
"refunds" : [ {
"amount" : 1.0,
"status" : "APPROVED",
"arn" : "74350824095000000006387",
"rrn" : "428910113225",
"date" : "2024-11-20T18:45:13.957Z",
"responseCode" : "CODE_00"
} ],
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK",
"3DS" : false
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
Transaction creation date |
|
|
Transaction Status |
|
|
Transaction Retrieval Reference Number |
|
|
Transaction System Trace Audit Number (STAN) |
|
|
Response code |
|
|
Clearing status |
|
|
Clearing creation date |
|
|
Acquirer Reference Number |
|
|
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
|
Hidden card number |
|
|
DataCenter card identifier used to process transaction |
|
|
The total transfer amount |
|
|
Declared amount. Fenige Information field |
|
|
Currency for transaction. Example: USD |
|
|
The final total transfer amount |
|
|
Final currency for transaction. Example: USD |
|
|
Type of transaction scope (DOMESTIC, CROSSBORDER, DOMESTIC_PL, INTRA_EU, INTER) |
|
|
Psp’s unique uuid in system |
|
|
Merchant’s unique uuid in system |
|
|
Terminal’s unique uuid in system |
|
|
First name of cardholder |
|
|
Last name of cardholder |
|
|
Cardholder’s email |
|
|
Response code |
|
|
The total refund amount |
|
|
Refund status |
|
|
Refund Acquirer Reference Number |
|
|
Refund creation date |
|
|
The clearing amount. This field is returned if this transaction has been cleared |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Is 3DS enabled for transaction. Enabled if true, is not enabled if false |
|
|
Authorization type: ECOMMERCE, COF, TOKEN |
|
|
Merchant defined transaction reference identifier |
|
|
Terminal settlement currency |
|
|
Amount in terminal settlement currency |
|
|
Commission Fenige in terminal settlement currency |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Refund date |
|
|
Refund amount |
|
|
Refund acquirer reference number |
|
|
Refund retrival reference number |
|
|
Refund iso response code |
|
|
Refund status |
|
|
Commission Fenige in terminal settlement currency |
|
|
Commission Fenige in terminal settlement currency |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:17 GMT
Content-Length: 1270
{
"requestUuid" : "bd5dc937-be6d-4db6-bd21-0b7321367361",
"createdDate" : "2024-11-20T18:45:17.162Z",
"transactionStatus" : "REVERSED",
"responseCode" : "CODE_00",
"authorizeRRN" : "014011103023",
"authorizeStan" : "103023",
"reversalStatus" : "APPROVED",
"reversalResponseCode" : "CODE_00",
"reversalDate" : "2024-11-20T18:45:13.957Z",
"autoClear" : true,
"hiddenCardNumber" : "545313******4417",
"amount" : 100.0,
"currency" : "USD",
"finalAmount" : 100.0,
"finalCurrency" : "USD",
"geographicScope" : "DOMESTIC",
"pspUuid" : "b4f9f313-52a6-4bdc-b83a-c85769436d94",
"merchantUuid" : "8716d1c2-4266-45ed-86d8-0f98ee39a7b2",
"terminalUuid" : "49e97e18-e242-4528-a645-f15c2543fed9",
"firstName" : "user",
"lastName" : "testUser",
"email" : "test@fenige.pl",
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"mpiStatus" : "Finalize: Y",
"clearingAmount" : 100.0,
"authorizationType" : "ELECTRONIC_COMMERCE_PURCHASE",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 1.0,
"terminalSettlementCurrency" : "USD",
"amountInTerminalSettlementCurrency" : 100.0,
"commissionFenigeInTerminalSettlementCurrency" : 10.0,
"refunds" : [ ],
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK",
"3DS" : true
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
Transaction creation date |
|
|
Transaction Status |
|
|
Transaction Retrieval Reference Number |
|
|
Transaction System Trace Audit Number (STAN) |
|
|
Response code |
|
|
Reversal status |
|
|
Reversal response code |
|
|
Reversal creation date |
|
|
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
|
Hidden card number |
|
|
The total transfer amount |
|
|
Declared amount. Fenige Information field |
|
|
Currency for transaction. Example: USD |
|
|
The final total transfer amount |
|
|
Final currency for transaction. Example: USD |
|
|
Type of transaction scope (DOMESTIC, CROSSBORDER, DOMESTIC_PL, INTRA_EU, INTER) |
|
|
Psp’s unique uuid in system |
|
|
Merchant’s unique uuid in system |
|
|
Terminal’s unique uuid in system |
|
|
First name of cardholder |
|
|
Last name of cardholder |
|
|
Cardholder’s email |
|
|
The clearing amount. This field is returned if this transaction has been cleared |
|
|
Cardholder Authentication Verification Value |
|
|
MPI status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Is 3DS enabled for transaction. Enabled if true, is not enabled if false |
|
|
Authorization type: ECOMMERCE, COF, TOKEN |
|
|
Merchant defined transaction reference identifier |
|
|
Terminal settlement currency |
|
|
Amount in terminal settlement currency |
|
|
Commission Fenige in terminal settlement currency |
|
|
Refund list |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:16 GMT
Content-Length: 1645
{
"requestUuid" : "4d2d4968-3460-4258-8a4e-b72ad89a9f24",
"createdDate" : "2024-11-20T18:45:13.957Z",
"transactionStatus" : "CLEARED",
"responseCode" : "CODE_00",
"authorizeRRN" : "014011103023",
"authorizeStan" : "103023",
"clearingStatus" : "APPROVED",
"clearingDate" : "2024-11-20T18:45:13.957Z",
"arn" : "05411640143500000019325",
"autoClear" : true,
"hiddenCardNumber" : "545313******4417",
"amount" : 100.0,
"currency" : "USD",
"finalAmount" : 100.0,
"finalCurrency" : "USD",
"geographicScope" : "DOMESTIC",
"pspUuid" : "b4f9f313-52a6-4bdc-b83a-c85769436d94",
"merchantUuid" : "a12b5091-8d68-49f0-9085-7a73a5fa6367",
"terminalUuid" : "21d7fa06-c0dd-4112-9f59-5cee94d73357",
"firstName" : "user",
"lastName" : "testUser",
"email" : "test@fenige.pl",
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"mpiStatus" : "Finalize: Y",
"refundAmount" : 1.0,
"refundStatus" : "APPROVED",
"refundArn" : "74350824095000000006387",
"refundDate" : "2024-11-20T18:45:13.957Z",
"clearingAmount" : 100.0,
"authorizationType" : "ELECTRONIC_COMMERCE_TOKEN_AUTHORIZATION",
"terminalLocation" : "HOME",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 1.0,
"terminalSettlementCurrency" : "USD",
"amountInTerminalSettlementCurrency" : 100.0,
"commissionFenigeInTerminalSettlementCurrency" : 10.0,
"refunds" : [ {
"amount" : 1.0,
"status" : "APPROVED",
"arn" : "74350824095000000006387",
"rrn" : "428910113225",
"date" : "2024-11-20T18:45:13.957Z",
"responseCode" : "CODE_00"
} ],
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK",
"3DS" : true
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
Transaction creation date |
|
|
Transaction Status |
|
|
Transaction Retrieval Reference Number |
|
|
Transaction System Trace Audit Number (STAN) |
|
|
Response code |
|
|
Clearing status |
|
|
Clearing creation date |
|
|
Acquirer Reference Number |
|
|
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
|
Hidden card number |
|
|
The total transfer amount |
|
|
Declared amount. Fenige Information field |
|
|
Currency for transaction. Example: USD |
|
|
The final total transfer amount |
|
|
Final currency for transaction. Example: USD |
|
|
Type of transaction scope (DOMESTIC, CROSSBORDER, DOMESTIC_PL, INTRA_EU, INTER) |
|
|
Psp’s unique uuid in system |
|
|
Merchant’s unique uuid in system |
|
|
Terminal’s unique uuid in system |
|
|
First name of cardholder |
|
|
Last name of cardholder |
|
|
Cardholder’s email |
|
|
The clearing amount. This field is returned if this transaction has been cleared |
|
|
Cardholder Authentication Verification Value |
|
|
MPI status |
|
|
The total refund amount |
|
|
Refund status |
|
|
Refund Acquirer Reference Number |
|
|
Refund creation date |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Is 3DS enabled for transaction. Enabled if true, is not enabled if false |
|
|
Authorization type: ELECTRONIC_COMMERCE_PURCHASE, ELECTRONIC_COMMERCE_PURCHASE_REFUND, ELECTRONIC_COMMERCE_TOKEN_AUTHORIZATION, CREDENTIAL_ON_FILE_AUTHORIZATION |
|
|
Location of the consumer at the time of the transaction (HOME, PREMISES) |
|
|
Merchant defined transaction reference identifier |
|
|
Terminal settlement currency |
|
|
Amount in terminal settlement currency |
|
|
Commission Fenige in terminal settlement currency |
|
|
Refund date |
|
|
Refund amount |
|
|
Refund acquirer reference number |
|
|
Refund retrival reference number |
|
|
Refund iso response code |
|
|
Refund status |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:14 GMT
Content-Length: 1312
{
"requestUuid" : "63633774-0db4-493a-b8d6-2f913b0e0d28",
"createdDate" : "2024-11-20T18:45:15.047Z",
"transactionStatus" : "REVERSED",
"responseCode" : "CODE_00",
"authorizeRRN" : "014011103023",
"authorizeStan" : "103023",
"reversalStatus" : "APPROVED",
"reversalResponseCode" : "CODE_00",
"reversalDate" : "2024-11-20T18:45:13.957Z",
"autoClear" : true,
"hiddenCardNumber" : "545313******4417",
"amount" : 100.0,
"currency" : "USD",
"finalAmount" : 100.0,
"finalCurrency" : "USD",
"geographicScope" : "DOMESTIC",
"pspUuid" : "b4f9f313-52a6-4bdc-b83a-c85769436d94",
"merchantUuid" : "5baedb32-9e8c-4b76-8e22-5ec64609cc14",
"terminalUuid" : "982641c6-d11e-48c0-b9c7-ccbb2c8c7450",
"firstName" : "user",
"lastName" : "testUser",
"email" : "test@fenige.pl",
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"mpiStatus" : "Finalize: Y",
"clearingAmount" : 100.0,
"authorizationType" : "ELECTRONIC_COMMERCE_TOKEN_AUTHORIZATION",
"terminalLocation" : "HOME",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 1.0,
"terminalSettlementCurrency" : "USD",
"amountInTerminalSettlementCurrency" : 100.0,
"commissionFenigeInTerminalSettlementCurrency" : 10.0,
"refunds" : [ ],
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK",
"3DS" : true
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
Transaction creation date |
|
|
Transaction Status |
|
|
Transaction Retrieval Reference Number |
|
|
Transaction System Trace Audit Number (STAN) |
|
|
Response code |
|
|
Reversal status |
|
|
Reversal response code |
|
|
Reversal creation date |
|
|
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
|
Hidden card number |
|
|
The total transfer amount |
|
|
Declared amount. Fenige Information field |
|
|
Currency for transaction. Example: USD |
|
|
The final total transfer amount |
|
|
Final currency for transaction. Example: USD |
|
|
Type of transaction scope (DOMESTIC, CROSSBORDER, DOMESTIC_PL, INTRA_EU, INTER) |
|
|
Psp’s unique uuid in system |
|
|
Merchant’s unique uuid in system |
|
|
Terminal’s unique uuid in system |
|
|
First name of cardholder |
|
|
Last name of cardholder |
|
|
Cardholder’s email |
|
|
The clearing amount. This field is returned if this transaction has been cleared |
|
|
Cardholder Authentication Verification Value |
|
|
MPI status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Is 3DS enabled for transaction. Enabled if true, is not enabled if false |
|
|
Authorization type: ELECTRONIC_COMMERCE_PURCHASE, ELECTRONIC_COMMERCE_PURCHASE_REFUND, ELECTRONIC_COMMERCE_TOKEN_AUTHORIZATION, CREDENTIAL_ON_FILE_AUTHORIZATION |
|
|
Location of the consumer at the time of the transaction (HOME, PREMISES) |
|
|
Merchant defined transaction reference identifier |
|
|
Terminal settlement currency |
|
|
Amount in terminal settlement currency |
|
|
Commission Fenige in terminal settlement currency |
|
|
Refund list |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:16 GMT
Content-Length: 1589
{
"requestUuid" : "bcf17d40-d593-47b0-b545-dd22ca06ed11",
"cofInitialUuid" : "86f04cfa-92d4-4ad4-80fb-51717961fcbd",
"createdDate" : "2024-11-20T18:45:13.957Z",
"transactionStatus" : "CLEARED",
"responseCode" : "CODE_00",
"authorizeRRN" : "014011103023",
"authorizeStan" : "103023",
"clearingStatus" : "APPROVED",
"clearingDate" : "2024-11-20T18:45:13.957Z",
"arn" : "05411640143500000019325",
"autoClear" : true,
"hiddenCardNumber" : "545313******4417",
"amount" : 100.0,
"currency" : "USD",
"finalAmount" : 100.0,
"finalCurrency" : "USD",
"geographicScope" : "DOMESTIC",
"pspUuid" : "b4f9f313-52a6-4bdc-b83a-c85769436d94",
"merchantUuid" : "991d810b-7643-4bae-84d8-51ae362aeda5",
"terminalUuid" : "95bd49cd-a9c5-421b-b4a3-cd50f5d98654",
"firstName" : "user",
"lastName" : "testUser",
"email" : "test@fenige.pl",
"refundAmount" : 1.0,
"refundStatus" : "APPROVED",
"refundArn" : "74350824095000000006387",
"refundDate" : "2024-11-20T18:45:13.957Z",
"clearingAmount" : 100.0,
"authorizationType" : "CREDENTIAL_ON_FILE_INITIAL",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 1.0,
"terminalSettlementCurrency" : "USD",
"amountInTerminalSettlementCurrency" : 100.0,
"commissionFenigeInTerminalSettlementCurrency" : 10.0,
"refunds" : [ {
"amount" : 1.0,
"status" : "APPROVED",
"arn" : "74350824095000000006387",
"rrn" : "428910113225",
"date" : "2024-11-20T18:45:13.957Z",
"responseCode" : "CODE_00"
} ],
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK",
"3DS" : false
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
CoF Initial Uuid |
|
|
Transaction creation date |
|
|
Transaction Status |
|
|
Transaction Retrieval Reference Number |
|
|
Transaction System Trace Audit Number (STAN) |
|
|
Response code |
|
|
Clearing status |
|
|
Clearing creation date |
|
|
Acquirer Reference Number |
|
|
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
|
Hidden card number |
|
|
The total transfer amount |
|
|
Declared amount. Fenige Information field |
|
|
Currency for transaction. Example: USD |
|
|
The final total transfer amount |
|
|
Final currency for transaction. Example: USD |
|
|
Type of transaction scope (DOMESTIC, CROSSBORDER, DOMESTIC_PL, INTRA_EU, INTER) |
|
|
Psp’s unique uuid in system |
|
|
Merchant’s unique uuid in system |
|
|
Terminal’s unique uuid in system |
|
|
First name of cardholder |
|
|
Last name of cardholder |
|
|
Cardholder’s email |
|
|
The total refund amount |
|
|
Refund status |
|
|
Refund Acquirer Reference Number |
|
|
Refund creation date |
|
|
The clearing amount. This field is returned if this transaction has been cleared |
|
|
Authorization type: ECOMMERCE, COF, TOKEN |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Is 3DS enabled for transaction. Enabled if true, is not enabled if false |
|
|
Merchant defined transaction reference identifier |
|
|
Terminal settlement currency |
|
|
Amount in terminal settlement currency |
|
|
Commission Fenige in terminal settlement currency |
|
|
Refund date |
|
|
Refund amount |
|
|
Refund acquirer reference number |
|
|
Refund retrival reference number |
|
|
Refund iso response code |
|
|
Refund status |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:18 GMT
Content-Length: 1592
{
"requestUuid" : "ad511ffd-721e-4110-9f57-eac1cad06816",
"cofInitialUuid" : "6b62baac-7972-4bb8-8789-39c800be3fff",
"createdDate" : "2024-11-20T18:45:13.957Z",
"transactionStatus" : "CLEARED",
"responseCode" : "CODE_00",
"authorizeRRN" : "014011103023",
"authorizeStan" : "103023",
"clearingStatus" : "APPROVED",
"clearingDate" : "2024-11-20T18:45:13.957Z",
"arn" : "05411640143500000019325",
"autoClear" : true,
"hiddenCardNumber" : "545313******4417",
"amount" : 100.0,
"currency" : "USD",
"finalAmount" : 100.0,
"finalCurrency" : "USD",
"geographicScope" : "DOMESTIC",
"pspUuid" : "b4f9f313-52a6-4bdc-b83a-c85769436d94",
"merchantUuid" : "109fc2d4-cc6c-4ac2-88e4-cd4fad13618e",
"terminalUuid" : "18997c16-64cd-4972-9556-c8ec473a46c6",
"firstName" : "user",
"lastName" : "testUser",
"email" : "test@fenige.pl",
"refundAmount" : 1.0,
"refundStatus" : "APPROVED",
"refundArn" : "74350824095000000006387",
"refundDate" : "2024-11-20T18:45:13.957Z",
"clearingAmount" : 100.0,
"authorizationType" : "CREDENTIAL_ON_FILE_SUBSEQUENT",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 1.0,
"terminalSettlementCurrency" : "USD",
"amountInTerminalSettlementCurrency" : 100.0,
"commissionFenigeInTerminalSettlementCurrency" : 10.0,
"refunds" : [ {
"amount" : 1.0,
"status" : "APPROVED",
"arn" : "74350824095000000006387",
"rrn" : "428910113225",
"date" : "2024-11-20T18:45:13.957Z",
"responseCode" : "CODE_00"
} ],
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK",
"3DS" : false
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
CoF Initial Uuid |
|
|
Transaction creation date |
|
|
Transaction Status |
|
|
Transaction Retrieval Reference Number |
|
|
Transaction System Trace Audit Number (STAN) |
|
|
Response code |
|
|
Clearing status |
|
|
Clearing creation date |
|
|
Acquirer Reference Number |
|
|
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
|
Hidden card number |
|
|
The total transfer amount |
|
|
Declared amount. Fenige Information field |
|
|
Currency for transaction. Example: USD |
|
|
The final total transfer amount |
|
|
Final currency for transaction. Example: USD |
|
|
Type of transaction scope (DOMESTIC, CROSSBORDER, DOMESTIC_PL, INTRA_EU, INTER) |
|
|
Psp’s unique uuid in system |
|
|
Merchant’s unique uuid in system |
|
|
Terminal’s unique uuid in system |
|
|
First name of cardholder |
|
|
Last name of cardholder |
|
|
Cardholder’s email |
|
|
The total refund amount |
|
|
Refund status |
|
|
Refund Acquirer Reference Number |
|
|
Refund creation date |
|
|
The clearing amount. This field is returned if this transaction has been cleared |
|
|
Authorization type: ECOMMERCE, COF, TOKEN |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Is 3DS enabled for transaction. Enabled if true, is not enabled if false |
|
|
Merchant defined transaction reference identifier |
|
|
Terminal settlement currency |
|
|
Amount in terminal settlement currency |
|
|
Commission Fenige in terminal settlement currency |
|
|
Refund date |
|
|
Refund amount |
|
|
Refund acquirer reference number |
|
|
Refund retrival reference number |
|
|
Refund iso response code |
|
|
Refund status |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:17 GMT
Content-Length: 1602
{
"requestUuid" : "eb81a639-7447-48b9-ac5e-8dd69f3b639e",
"recurringInitialUuid" : "cd7bcff5-89cb-4fb5-8bc2-b4dc5a1c914b",
"createdDate" : "2024-11-20T18:45:13.957Z",
"transactionStatus" : "CLEARED",
"responseCode" : "CODE_00",
"authorizeRRN" : "014011103023",
"authorizeStan" : "103023",
"clearingStatus" : "APPROVED",
"clearingDate" : "2024-11-20T18:45:13.957Z",
"arn" : "05411640143500000019325",
"autoClear" : true,
"hiddenCardNumber" : "545313******4417",
"amount" : 100.0,
"currency" : "USD",
"finalAmount" : 100.0,
"finalCurrency" : "USD",
"geographicScope" : "DOMESTIC",
"pspUuid" : "b4f9f313-52a6-4bdc-b83a-c85769436d94",
"merchantUuid" : "fc8054e3-1ac3-49ba-9ac1-858c60e69047",
"terminalUuid" : "80fd27d4-6a2c-47e5-800c-4d8353e44d9c",
"firstName" : "user",
"lastName" : "testUser",
"email" : "test@fenige.pl",
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"mpiStatus" : "Finalize: Y",
"refundAmount" : 1.0,
"refundStatus" : "APPROVED",
"refundArn" : "74350824095000000006387",
"refundDate" : "2024-11-20T18:45:13.957Z",
"clearingAmount" : 100.0,
"authorizationType" : "RECURRING_INITIAL",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 1.0,
"terminalSettlementCurrency" : "USD",
"amountInTerminalSettlementCurrency" : 100.0,
"refunds" : [ {
"amount" : 1.0,
"status" : "APPROVED",
"arn" : "74350824095000000006387",
"rrn" : "428910113225",
"date" : "2024-11-20T18:45:13.957Z",
"responseCode" : "CODE_00"
} ],
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK",
"3DS" : true
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
Recurring Initial Uuid |
|
|
Transaction creation date |
|
|
Transaction Status |
|
|
Transaction Retrieval Reference Number |
|
|
Transaction System Trace Audit Number (STAN) |
|
|
Response code |
|
|
Clearing status |
|
|
Clearing creation date |
|
|
Acquirer Reference Number |
|
|
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
|
Hidden card number |
|
|
The total transfer amount |
|
|
Declared amount. Fenige Information field |
|
|
Currency for transaction. Example: USD |
|
|
The final total transfer amount |
|
|
Final currency for transaction. Example: USD |
|
|
Type of transaction scope (DOMESTIC, CROSSBORDER, DOMESTIC_PL, INTRA_EU, INTER) |
|
|
Psp’s unique uuid in system |
|
|
Merchant’s unique uuid in system |
|
|
Terminal’s unique uuid in system |
|
|
First name of cardholder |
|
|
Last name of cardholder |
|
|
Cardholder’s email |
|
|
The total refund amount |
|
|
Refund status |
|
|
Refund Acquirer Reference Number |
|
|
Refund creation date |
|
|
The clearing amount. This field is returned if this transaction has been cleared |
|
|
Cardholder Authentication Verification Value |
|
|
MPI status |
|
|
Authorization type: ECOMMERCE, COF, TOKEN |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Is 3DS enabled for transaction. Enabled if true, is not enabled if false |
|
|
Merchant defined transaction reference identifier |
|
|
Terminal settlement currency |
|
|
Amount in terminal settlement currency |
|
|
Refund date |
|
|
Refund amount |
|
|
Refund acquirer reference number |
|
|
Refund retrival reference number |
|
|
Refund iso response code |
|
|
Refund status |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:14 GMT
Content-Length: 1589
{
"requestUuid" : "487932a5-7841-4ce6-a2d1-d7761014aa00",
"recurringInitialUuid" : "e0e4144d-22cc-44cd-a2db-34a2ff4e4df6",
"createdDate" : "2024-11-20T18:45:13.957Z",
"transactionStatus" : "CLEARED",
"responseCode" : "CODE_00",
"authorizeRRN" : "014011103023",
"authorizeStan" : "103023",
"clearingStatus" : "APPROVED",
"clearingDate" : "2024-11-20T18:45:13.957Z",
"arn" : "05411640143500000019325",
"autoClear" : true,
"hiddenCardNumber" : "545313******4417",
"amount" : 100.0,
"currency" : "USD",
"finalAmount" : 100.0,
"finalCurrency" : "USD",
"geographicScope" : "DOMESTIC",
"pspUuid" : "b4f9f313-52a6-4bdc-b83a-c85769436d94",
"merchantUuid" : "a1de2653-b3ad-4727-8cd6-46ebe524e770",
"terminalUuid" : "1e1dcf98-2354-4e2a-b09a-54ea337d7b65",
"firstName" : "user",
"lastName" : "testUser",
"email" : "test@fenige.pl",
"refundAmount" : 1.0,
"refundStatus" : "APPROVED",
"refundArn" : "74350824095000000006387",
"refundDate" : "2024-11-20T18:45:13.957Z",
"clearingAmount" : 100.0,
"authorizationType" : "RECURRING_SUBSEQUENT",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 1.0,
"terminalSettlementCurrency" : "USD",
"amountInTerminalSettlementCurrency" : 100.0,
"commissionFenigeInTerminalSettlementCurrency" : 10.0,
"refunds" : [ {
"amount" : 1.0,
"status" : "APPROVED",
"arn" : "74350824095000000006387",
"rrn" : "428910113225",
"date" : "2024-11-20T18:45:13.957Z",
"responseCode" : "CODE_00"
} ],
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK",
"3DS" : false
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
Recurring Initial Uuid |
|
|
Transaction creation date |
|
|
Transaction Status |
|
|
Transaction Retrieval Reference Number |
|
|
Transaction System Trace Audit Number (STAN) |
|
|
Response code |
|
|
Clearing status |
|
|
Clearing creation date |
|
|
Acquirer Reference Number |
|
|
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
|
Hidden card number |
|
|
The total transfer amount |
|
|
Declared amount. Fenige Information field |
|
|
Currency for transaction. Example: USD |
|
|
The final total transfer amount |
|
|
Final currency for transaction. Example: USD |
|
|
Type of transaction scope (DOMESTIC, CROSSBORDER, DOMESTIC_PL, INTRA_EU, INTER) |
|
|
Psp’s unique uuid in system |
|
|
Merchant’s unique uuid in system |
|
|
Terminal’s unique uuid in system |
|
|
First name of cardholder |
|
|
Last name of cardholder |
|
|
Cardholder’s email |
|
|
The total refund amount |
|
|
Refund status |
|
|
Refund Acquirer Reference Number |
|
|
Refund creation date |
|
|
The clearing amount. This field is returned if this transaction has been cleared |
|
|
Authorization type: ECOMMERCE, COF, TOKEN |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Is 3DS enabled for transaction. Enabled if true, is not enabled if false |
|
|
Merchant defined transaction reference identifier |
|
|
Terminal settlement currency |
|
|
Amount in terminal settlement currency |
|
|
Commission Fenige in terminal settlement currency |
|
|
Refund date |
|
|
Refund amount |
|
|
Refund acquirer reference number |
|
|
Refund retrival reference number |
|
|
Refund iso response code |
|
|
Refund status |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:13 GMT
Content-Length: 1528
{
"requestUuid" : "0bf7b28f-9d37-4d86-93e9-7935825ffc77",
"createdDate" : "2024-11-20T18:45:13.957Z",
"transactionStatus" : "CLEARED",
"responseCode" : "CODE_00",
"authorizeRRN" : "014011103023",
"authorizeStan" : "103023",
"clearingStatus" : "APPROVED",
"clearingDate" : "2024-11-20T18:45:13.957Z",
"arn" : "05411640143500000019325",
"autoClear" : true,
"hiddenCardNumber" : "545313******4417",
"amount" : 100.0,
"currency" : "USD",
"finalAmount" : 100.0,
"finalCurrency" : "USD",
"geographicScope" : "DOMESTIC",
"pspUuid" : "b4f9f313-52a6-4bdc-b83a-c85769436d94",
"merchantUuid" : "8d6ab191-2ebb-4508-a695-ad3a2c1d6a5a",
"terminalUuid" : "18e0d9fe-eba1-4198-a661-0a1212cfff62",
"firstName" : "user",
"lastName" : "testUser",
"email" : "test@fenige.pl",
"refundAmount" : 1.0,
"refundStatus" : "APPROVED",
"refundArn" : "74350824095000000006387",
"refundDate" : "2024-11-20T18:45:13.957Z",
"clearingAmount" : 100.0,
"authorizationType" : "MANUAL_ENTRY_MOTO_PURCHASE",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 1.0,
"terminalSettlementCurrency" : "USD",
"amountInTerminalSettlementCurrency" : 100.0,
"commissionFenigeInTerminalSettlementCurrency" : 10.0,
"refunds" : [ {
"amount" : 1.0,
"status" : "APPROVED",
"arn" : "74350824095000000006387",
"rrn" : "428910113225",
"date" : "2024-11-20T18:45:13.957Z",
"responseCode" : "CODE_00"
} ],
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK",
"3DS" : false
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
Transaction creation date |
|
|
Transaction Status |
|
|
Transaction Retrieval Reference Number |
|
|
Transaction System Trace Audit Number (STAN) |
|
|
Response code |
|
|
Clearing status |
|
|
Clearing creation date |
|
|
Acquirer Reference Number |
|
|
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
|
Hidden card number |
|
|
The total transfer amount |
|
|
Declared amount. Fenige Information field |
|
|
Currency for transaction. Example: USD |
|
|
The final total transfer amount |
|
|
Final currency for transaction. Example: USD |
|
|
Type of transaction scope (DOMESTIC, CROSSBORDER, DOMESTIC_PL, INTRA_EU, INTER) |
|
|
Psp’s unique uuid in system |
|
|
Merchant’s unique uuid in system |
|
|
Terminal’s unique uuid in system |
|
|
First name of cardholder |
|
|
Last name of cardholder |
|
|
Cardholder’s email |
|
|
The total refund amount |
|
|
Refund status |
|
|
Refund Acquirer Reference Number |
|
|
Refund creation date |
|
|
The clearing amount. This field is returned if this transaction has been cleared |
|
|
Authorization type: ECOMMERCE, COF, TOKEN |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Is 3DS enabled for transaction. Enabled if true, is not enabled if false |
|
|
Merchant defined transaction reference identifier |
|
|
Terminal settlement currency |
|
|
Amount in terminal settlement currency |
|
|
Commission Fenige in terminal settlement currency |
|
|
Refund date |
|
|
Refund amount |
|
|
Refund acquirer reference number |
|
|
Refund retrival reference number |
|
|
Refund iso response code |
|
|
Refund status |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 200 OK
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:17 GMT
Content-Length: 2471
{
"requestUuid" : "fc18bffe-00b0-4d32-b2f4-1b0edfec4651",
"createdDate" : "2024-11-20T18:45:13.957Z",
"transactionStatus" : "CLEARED",
"responseCode" : "CODE_00",
"authorizeRRN" : "014011103023",
"authorizeStan" : "103023",
"clearingStatus" : "APPROVED",
"clearingDate" : "2024-11-20T18:45:13.957Z",
"arn" : "05411640143500000019325",
"autoClear" : true,
"hiddenCardNumber" : "545313******4417",
"amount" : 100.0,
"currency" : "USD",
"finalAmount" : 100.0,
"finalCurrency" : "USD",
"geographicScope" : "DOMESTIC",
"pspUuid" : "b4f9f313-52a6-4bdc-b83a-c85769436d94",
"merchantUuid" : "80a76720-655d-436d-b0d9-cf966a62895c",
"terminalUuid" : "ae4518d8-3318-4345-bd07-0245bb418338",
"firstName" : "user",
"lastName" : "testUser",
"email" : "test@fenige.pl",
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag=",
"mpiStatus" : "Finalize: Y",
"refundAmount" : 1.0,
"refundStatus" : "APPROVED",
"refundArn" : "74350824095000000006387",
"refundDate" : "2024-11-20T18:45:13.957Z",
"clearingAmount" : 100.0,
"authorizationType" : "ELECTRONIC_COMMERCE_PURCHASE",
"transactionRef" : "27F3250GU3",
"receiverAmount" : 1.0,
"installmentStatus" : "CONFIRMED",
"installmentPaymentType" : "ISSUER_FINANCED",
"installmentPaymentOptions" : [ "PAY_IN_INSTALLMENTS", "CANCEL" ],
"installmentPaymentFormat2" : {
"uuid" : "4a969a57-b049-4fa1-a0d3-661c8ac3412c",
"installmentPaymentFormat" : "FORMAT_2",
"minimumNumberOfInstallments" : "5",
"maximumNumberOfInstallments" : "10",
"interestRate" : "00010",
"installmentFee" : "000000000010",
"annualPercentageRate" : "00010",
"totalAmountDue" : "000000001000"
},
"installmentPaymentOptionIn" : "PAY_IN_INSTALLMENTS",
"installmentPaymentPlanUuidIn" : "cc4317c5-315c-42cf-abd3-6cd5b78eb1a9",
"instalmentNumberOfInstallmentsIn" : "10",
"instalmentAuthorizationStatus" : "APPROVED",
"instalmentResponseCode" : "CODE_00",
"instalmentAuthorizeRRN" : "029612100126",
"instalmentAuthorizeStan" : "100126",
"terminalSettlementCurrency" : "USD",
"amountInTerminalSettlementCurrency" : 100.0,
"commissionFenigeInTerminalSettlementCurrency" : 10.0,
"refunds" : [ {
"amount" : 1.0,
"status" : "APPROVED",
"arn" : "74350824095000000006387",
"rrn" : "428910113225",
"date" : "2024-11-20T18:45:13.957Z",
"responseCode" : "CODE_00"
} ],
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK",
"3DS" : true
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
Transaction creation date |
|
|
Transaction Status |
|
|
Transaction Retrieval Reference Number |
|
|
Transaction System Trace Audit Number (STAN) |
|
|
Response code |
|
|
Clearing status |
|
|
Clearing creation date |
|
|
Acquirer Reference Number |
|
|
Is auto clear enabled. Enabled if true, is not enabled if false. There is 7 days for execute clearing process if autoClear = false |
|
|
Hidden card number |
|
|
The total transfer amount |
|
|
Declared amount. Fenige Information field |
|
|
Currency for transaction. Example: USD |
|
|
The final total transfer amount |
|
|
Final currency for transaction. Example: USD |
|
|
Type of transaction scope (DOMESTIC, CROSSBORDER, DOMESTIC_PL, INTRA_EU, INTER) |
|
|
Psp’s unique uuid in system |
|
|
Merchant’s unique uuid in system |
|
|
Terminal’s unique uuid in system |
|
|
First name of cardholder |
|
|
Last name of cardholder |
|
|
Cardholder’s email |
|
|
Cardholder Authentication Verification Value |
|
|
MPI status |
|
|
The total refund amount |
|
|
Refund status |
|
|
Refund Acquirer Reference Number |
|
|
Refund creation date |
|
|
The clearing amount. This field is returned if this transaction has been cleared |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Is 3DS enabled for transaction. Enabled if true, is not enabled if false |
|
|
Merchant defined transaction reference identifier |
|
|
Authorization type: INSTALLMENT_PAYMENT_PURCHASE |
|
|
Terminal settlement currency |
|
|
Amount in terminal settlement currency |
|
|
Commission Fenige in terminal settlement currency |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
|
|
Transaction Installment Payment processing status |
|
|
Transaction Installment Payment type information, may be: ISSUER_FINANCED, MERCHANT_FINANCED, ACQUIRER_FINANCED, CO_BRANDED_MERCHANT_FINANCED, ISSUER_MERCHANT_CO_FINANCED |
|
|
Transaction Installment Payment user possible options may be: PAY_IN_INSTALLMENTS, PAY_IN_FULL or CANCEL |
|
|
Unique plan uuid in system. Required to select in step 2 installment decision |
|
|
Plan format label, may be FORMAT_2 for this configuration |
|
|
Minimum number of installments contains the minimum number of installments payments provided by the issuer |
|
|
Maximum number of installments contains the maximum number of installments payments provided by the issuer |
|
|
Interest rate contains the rate (two decimal places) that the issuer assesses the cardholder for the installment payment |
|
|
Installment Fee contains the fee amount in cardholder billing currency that the issuer assesses the cardholder for the installment payments |
|
|
Annual Percentage Rate contains the rate (two decimal places) that the issuer charges the cardholder for the installment payment |
|
|
Total Amount Due contains the total amount due in cardholder billing currency that the issuer charges the cardholder for the installment payments |
|
|
Transaction Installment Payment user selected option may be: PAY_IN_INSTALLMENTS, PAY_IN_FULL or CANCEL |
|
|
Installment Payment selected plan uuid from previously returned plans. Required for PAY_IN_INSTALLMENTS. Required for FORMAT 1 and FORMAT 2 plans |
|
|
Number of installments selected during confirmation. Required for PAY_IN_INSTALLMENTS. Required for FORMAT 2 plan. |
|
|
Installment Authorization Status |
|
|
Installment Response Code |
|
|
Installment RRN |
|
|
Refund date |
|
|
Refund amount |
|
|
Refund acquirer reference number |
|
|
Refund retrival reference number |
|
|
Refund iso response code |
|
|
Refund status |
|
|
Installment STAN |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:45:14 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "05427b89-1229-4bf2-b857-c5b0514e69ac"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 403 Forbidden
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 135
Date: Wed, 20 Nov 2024 17:45:18 GMT
{
"status" : "E8001",
"message" : "Forbidden",
"httpStatus" : "FORBIDDEN",
"traceId" : "7a16e33c-ee6f-453f-ab6b-c97c56f2c15c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 404 Not Found
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:17 GMT
Content-Length: 147
{
"status" : "E0155",
"message" : "Transaction not exist",
"httpStatus" : "NOT_FOUND",
"traceId" : "7798396d-e5f6-4386-a86b-b7f23cc99207"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:13 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "8e88ca0b-5185-46af-9b9f-74a1cdbe053e"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
7.11. Reversal
This method could be used in order to cancel payment of correctly registered transaction in system before. To process reversal method, the transaction must not be cleared. In response, we receive detailed information about the reversal.
From January 2021, there is an internal functionality to restrict access for the PSP to specific method. The Fenige employee can disable access to a given endpoint, then the HTTP status 403 FORBIDDEN will be returned. The PSP will be informed about each access restriction action. |
7.11.1. Request
POST /client/payments/reversal HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 119
Host: ecom-staging.fenige.pl
{
"requestUuid" : "a5f678c9-858a-4fc1-8d63-1b27379b5feb",
"merchantUuid" : "cfba9895-4b89-4ea5-9417-b26a34656a2a"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
7.11.2. Response
Response status
Status | Description |
---|---|
|
The request completed successfully |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0155 - Returned when payment not exist. |
|
STATUS: E0160 - Returned when reversal of the payment is processing. STATUS: E0161 - Returned when can’t reversal for payment. STATUS: E0162 - Returned when payment is reversed. STATUS: E0163 - Returned when payment is refunded. |
|
STATUS: E9000 - Returned when reason is unknown. STATUS: E05012 - Returned when installment payment reverse is not allowed. |
|
STATUS: E9001 - Returned when is error acquirer connection. |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 213
{
"requestUuid" : "a684186d-a1b8-4f5f-ae24-7ecba72c124e",
"reversalStatus" : "APPROVED",
"responseCode" : "CODE_00",
"status" : "S0005",
"message" : "Success reverse transaction",
"httpStatus" : "OK"
}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 246
{
"requestUuid" : "945d4383-25d4-430a-8339-a31ad56210a7",
"reversalStatus" : "DECLINED",
"responseCode" : "CODE_05",
"status" : "S0006",
"message" : "Reverse transaction declined, check response code for reason",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Request unique uuid in system |
|
|
Reversal status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Response code |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:57 GMT
Connection: close
Content-Length: 218
{
"errors" : {
"merchantUuid" : [ "must not be null" ],
"requestUuid" : [ "must not be null" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "2739707c-7e57-4f88-a6d5-79a5bc67719d"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:44:56 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "28a3b561-a201-4536-9d82-a28db8082e60"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 403 Forbidden
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 135
Date: Wed, 20 Nov 2024 17:44:58 GMT
{
"status" : "E8001",
"message" : "Forbidden",
"httpStatus" : "FORBIDDEN",
"traceId" : "f916bcaa-93cd-47e4-92ed-dd47685be1bc"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 404 Not Found
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:56 GMT
Content-Length: 260
{
"requestUuid" : "1de48183-c08f-4d16-993c-a6211ce9e06d",
"reversalStatus" : "REVERSAL_TRANSACTION_NOT_FOUND",
"status" : "E0155",
"message" : "Transaction not exist",
"httpStatus" : "NOT_FOUND",
"traceId" : "e8e8a091-d54a-45c5-ad2a-7618ac14785d"
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
Reversal status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 422 Unprocessable Entity
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:57 GMT
Content-Length: 267
{
"requestUuid" : "cd52727a-5bae-44bb-bcce-cc89102ee098",
"reversalStatus" : "PROCESSING",
"status" : "E0160",
"message" : "Reversal of the payment is processing",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "95658b19-5b44-4ae4-9269-f328a5304cbe"
}
HTTP/1.1 422 Unprocessable Entity
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:56 GMT
Content-Length: 287
{
"requestUuid" : "cd52727a-5bae-44bb-bcce-cc89102ee098",
"reversalStatus" : "CANNOT_REVERSAL",
"responseCode" : "CODE_05",
"status" : "E0161",
"message" : "Can't reversal payment",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "da917051-b3df-47e1-a063-57161d33095f"
}
HTTP/1.1 422 Unprocessable Entity
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:57 GMT
Content-Length: 255
{
"requestUuid" : "cd52727a-5bae-44bb-bcce-cc89102ee098",
"reversalStatus" : "APPROVED",
"status" : "E0162",
"message" : "Payment is already reversed",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "3ade1a7c-d8df-45ed-8e35-dae4787e3822"
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
Reversal status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Reversal response code, if any was declined for the same transaction. |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "d47125f6-edb2-4ec0-8a61-4ca6581b8482"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 178
{
"status" : "E05012",
"message" : "Installment Payment reverse not allowed",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "283181fb-7913-4d82-9062-71991fd0e25d"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:12 GMT
Connection: close
Content-Length: 169
{
"status" : "E0400",
"message" : "Failed to get currency for card",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "0293825c-eaf0-45bb-909b-6282b869c44c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
7.12. Clearing
Clearing is the process where e-commerce and issuers exchanges information about transaction data. It includes sending information about transactions from the e-commerce to the issuer for posting to the cardholder’s account. Using this method, we can just process transaction clearing. It is possible to execute clearing with full payment amount and partial payment amount. Notice that there is 7 (for VISA) or 30 (for Mastercard) days to execute clearing process if field 'autoClear' in payment request is set as 'false'.
In the case of Mastercard, false flag means that the transaction is treated as a pre-authorization and, according to the organization's requirements, the clearing time is 30 days from the time of authorization.
From January 2021, there is an internal functionality to restrict access for the PSP to specific method. The Fenige employee can disable access to a given endpoint, then the HTTP status 403 FORBIDDEN will be returned. The PSP will be informed about each access restriction action. |
7.12.1. Full clearing
Request
POST /client/payments/clearing HTTP/1.1
Authorization: Basic VXNlcjpQYXNzd29yZA==
Content-Type: application/json
Content-Length: 119
Host: ecom-staging.fenige.pl
{
"requestUuid" : "b5b2af5d-17e6-4d14-b884-96d2739dcb0a",
"merchantUuid" : "6f4dcb2f-4e63-42e3-8e34-9c4db10ec9e0"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
Response
Response status
Status | Description |
---|---|
|
Returned when transaction was accepted. |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0155 - Returned when payment not exist. |
|
STATUS: E0170 - Returned when clearing of the payment is procesing. STATUS: E0171 - Returned when can’t clear payment. STATUS: E0172 - Returned when can’t clear payment, the time is over. STATUS: E0173 - Returned when payment is automatically cleared. STATUS: E0174 - Returned when payment is already cleared. |
|
STATUS: E9000 - Returned when reason is unknown. |
|
STATUS: E9001 - Returned when is error acquirer connection. |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 145
{
"completion" : {
"estimate" : "2024-11-20T18:46:52.778"
},
"status" : "S0004",
"message" : "PENDING",
"httpStatus" : "ACCEPTED"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Completion estimate for clearing |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:50 GMT
Connection: close
Content-Length: 218
{
"errors" : {
"merchantUuid" : [ "must not be null" ],
"requestUuid" : [ "must not be null" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "17747f19-cedf-4a32-a601-f620d9320f77"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:43:49 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "2441d8d7-5a5c-4cf2-bd9d-a6226c263e62"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 403 Forbidden
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 135
Date: Wed, 20 Nov 2024 17:43:52 GMT
{
"status" : "E8001",
"message" : "Forbidden",
"httpStatus" : "FORBIDDEN",
"traceId" : "ed7f79b5-7790-423e-9077-1c389d710873"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 404 Not Found
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:50 GMT
Content-Length: 260
{
"requestUuid" : "37f0ba05-c7bd-4bcd-a763-689ab27fdc04",
"clearingStatus" : "CLEARING_TRANSACTION_NOT_FOUND",
"status" : "E0155",
"message" : "Transaction not exist",
"httpStatus" : "NOT_FOUND",
"traceId" : "767de54d-46c8-4ea9-878e-3e39403b0ea8"
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
Clearing status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 422 Unprocessable Entity
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:49 GMT
Content-Length: 267
{
"requestUuid" : "57f800c2-3989-46ac-9f3f-c42e4acdb99c",
"clearingStatus" : "PROCESSING",
"status" : "E0170",
"message" : "Clearing of the payment is processing",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "bee727b3-f1d5-40cd-b859-1491f9825acf"
}
HTTP/1.1 422 Unprocessable Entity
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:50 GMT
Content-Length: 251
{
"requestUuid" : "57f800c2-3989-46ac-9f3f-c42e4acdb99c",
"clearingStatus" : "CANNOT_CLEAR",
"status" : "E0171",
"message" : "Can't clear payment",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "c06c0a0d-da9f-4f66-aeb9-25875d50eb4a"
}
HTTP/1.1 422 Unprocessable Entity
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:51 GMT
Content-Length: 269
{
"requestUuid" : "57f800c2-3989-46ac-9f3f-c42e4acdb99c",
"clearingStatus" : "TIME_IS_OVER",
"status" : "E0172",
"message" : "Can't clear payment, the time is over",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "593d2f04-adb0-43ce-a8c9-1295541f2ae0"
}
HTTP/1.1 422 Unprocessable Entity
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:48 GMT
Content-Length: 260
{
"requestUuid" : "57f800c2-3989-46ac-9f3f-c42e4acdb99c",
"clearingStatus" : "APPROVED",
"status" : "E0173",
"message" : "Payment is automatically cleared",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "35ba768c-5607-48f2-b483-7bb5bade6ee6"
}
HTTP/1.1 422 Unprocessable Entity
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:49 GMT
Content-Length: 254
{
"requestUuid" : "57f800c2-3989-46ac-9f3f-c42e4acdb99c",
"clearingStatus" : "APPROVED",
"status" : "E0174",
"message" : "Payment is already cleared",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "02beff25-c5af-46cd-86c7-03692df2331e"
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
Clearing status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "d47125f6-edb2-4ec0-8a61-4ca6581b8482"
}
Path | Type | Description |
---|---|---|
|
|
Message for response code from Fenige system |
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:12 GMT
Connection: close
Content-Length: 169
{
"status" : "E0400",
"message" : "Failed to get currency for card",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "0293825c-eaf0-45bb-909b-6282b869c44c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
7.12.2. Partial clearing
Request
POST /client/payments/clearing HTTP/1.1
Authorization: Basic VXNlcjpQYXNzd29yZA==
Content-Type: application/json
Content-Length: 145
Host: ecom-staging.fenige.pl
{
"clearingAmount" : 700,
"requestUuid" : "b5b2af5d-17e6-4d14-b884-96d2739dcb0a",
"merchantUuid" : "6f4dcb2f-4e63-42e3-8e34-9c4db10ec9e0"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
clearingAmount |
Number |
@Must be at least 1 |
Amount of payment (in pennies) to partial clearing |
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
Response
Response status
Status | Description |
---|---|
|
Returned when transaction was accepted. |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0155 - Returned when payment not exist. |
|
STATUS: E0170 - Returned when clearing of the payment is procesing. STATUS: E0171 - Returned when can’t clear payment. STATUS: E0172 - Returned when can’t clear payment, the time is over. STATUS: E0173 - Returned when payment is automatically cleared. STATUS: E0174 - Returned when payment is already cleared. STATUS: E0175 - Returned when can’t clear payment, clearing amount is to low STATUS: E0176 - Returned when can’t clear payment, clearing amount is to high |
|
STATUS: E9000 - Returned when reason is unknown. |
|
STATUS: E9001 - Returned when is error acquirer connection. |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 145
{
"completion" : {
"estimate" : "2024-11-20T18:46:52.896"
},
"status" : "S0004",
"message" : "PENDING",
"httpStatus" : "ACCEPTED"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Completion estimate for clearing |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:51 GMT
Connection: close
Content-Length: 283
{
"errors" : {
"merchantUuid" : [ "must not be null" ],
"requestUuid" : [ "must not be null" ],
"clearingAmount" : [ "must be greater than or equal to 1" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "b80db5b5-72e5-46d5-9189-fdaa42eb3818"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:43:49 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "2441d8d7-5a5c-4cf2-bd9d-a6226c263e62"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 403 Forbidden
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 135
Date: Wed, 20 Nov 2024 17:43:52 GMT
{
"status" : "E8001",
"message" : "Forbidden",
"httpStatus" : "FORBIDDEN",
"traceId" : "ed7f79b5-7790-423e-9077-1c389d710873"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 404 Not Found
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:50 GMT
Content-Length: 260
{
"requestUuid" : "37f0ba05-c7bd-4bcd-a763-689ab27fdc04",
"clearingStatus" : "CLEARING_TRANSACTION_NOT_FOUND",
"status" : "E0155",
"message" : "Transaction not exist",
"httpStatus" : "NOT_FOUND",
"traceId" : "767de54d-46c8-4ea9-878e-3e39403b0ea8"
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
Clearing status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 422 Unprocessable Entity
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:49 GMT
Content-Length: 267
{
"requestUuid" : "57f800c2-3989-46ac-9f3f-c42e4acdb99c",
"clearingStatus" : "PROCESSING",
"status" : "E0170",
"message" : "Clearing of the payment is processing",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "bee727b3-f1d5-40cd-b859-1491f9825acf"
}
HTTP/1.1 422 Unprocessable Entity
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:50 GMT
Content-Length: 251
{
"requestUuid" : "57f800c2-3989-46ac-9f3f-c42e4acdb99c",
"clearingStatus" : "CANNOT_CLEAR",
"status" : "E0171",
"message" : "Can't clear payment",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "c06c0a0d-da9f-4f66-aeb9-25875d50eb4a"
}
HTTP/1.1 422 Unprocessable Entity
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:51 GMT
Content-Length: 269
{
"requestUuid" : "57f800c2-3989-46ac-9f3f-c42e4acdb99c",
"clearingStatus" : "TIME_IS_OVER",
"status" : "E0172",
"message" : "Can't clear payment, the time is over",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "593d2f04-adb0-43ce-a8c9-1295541f2ae0"
}
HTTP/1.1 422 Unprocessable Entity
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:48 GMT
Content-Length: 260
{
"requestUuid" : "57f800c2-3989-46ac-9f3f-c42e4acdb99c",
"clearingStatus" : "APPROVED",
"status" : "E0173",
"message" : "Payment is automatically cleared",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "35ba768c-5607-48f2-b483-7bb5bade6ee6"
}
HTTP/1.1 422 Unprocessable Entity
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:49 GMT
Content-Length: 254
{
"requestUuid" : "57f800c2-3989-46ac-9f3f-c42e4acdb99c",
"clearingStatus" : "APPROVED",
"status" : "E0174",
"message" : "Payment is already cleared",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "02beff25-c5af-46cd-86c7-03692df2331e"
}
HTTP/1.1 422 Unprocessable Entity
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/hal+json;charset=UTF-8
Transfer-Encoding: chunked
Date: Fri, 09 Nov 2018 14:48:13 GMT
Content-Length: 253
{
"requestUuid" : "1ea7f6b6-ad07-4962-ba7d-eb145a7de55c",
"clearingStatus" : "CANNOT_CLEAR",
"status" : "E0175",
"message" : "Can’t clear payment, clearing amount is to low",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "d2868ef5-4da1-47f6-8808-5a9d19f2727f"
}
HTTP/1.1 422 Unprocessable Entity
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:51 GMT
Content-Length: 275
{
"requestUuid" : "57f800c2-3989-46ac-9f3f-c42e4acdb99c",
"clearingStatus" : "REJECTED",
"status" : "E0176",
"message" : "Can't clear payment, clearing amount is to high",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "028bc85f-a082-492b-ac6c-48e613bfefc9"
}
Path | Type | Description |
---|---|---|
|
|
Request’s unique uuid in system |
|
|
Clearing status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "d47125f6-edb2-4ec0-8a61-4ca6581b8482"
}
Path | Type | Description |
---|---|---|
|
|
Message for response code from Fenige system |
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
UUID that helps to identify request in system |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:12 GMT
Connection: close
Content-Length: 169
{
"status" : "E0400",
"message" : "Failed to get currency for card",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "0293825c-eaf0-45bb-909b-6282b869c44c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
7.13. Refund
This method can be use for refund amount of a previously performed transaction. Total amount of refund cannot exceed the payment amount. It is important to know, that you can make a refund of transaction that is cleared for now.
From January 2021, there is an internal functionality to restrict access for the PSP to specific method. The Fenige employee can disable access to a given endpoint, then the HTTP status 403 FORBIDDEN will be returned. The PSP will be informed about each access restriction action. |
7.13.1. Request
POST /client/payments/refund HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 145
Host: ecom-staging.fenige.pl
{
"requestUuid" : "6d977616-7de3-43d9-ac8a-7a5d2f13cd03",
"merchantUuid" : "0ff68a9d-f1f2-439e-b8c7-1c541f216115",
"amountToRefund" : 100
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
requestUuid |
String |
@Must not be null |
Request’s uuid from payment response |
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
amountToRefund |
Number |
@Must be at least 0.001, @Must not be null |
Amount to refund (in pennies) |
7.13.2. Response
Response status
Status | Description |
---|---|
|
STATUS: S0010 - Returned when refund was accepted. STATUS: S0011 - Returned when refund was declined |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. STATUS: E0182 - Returned when refund transaction amount is to low. STATUS: E0183 - Returned when refund transaction amount is to high. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0155 - Returned when not found transaction or transaction not exist. |
|
STATUS: E0184 - Returned when transaction is refunded. STATUS: E0185 - Returned when cannot process refund because transaction is not cleared yet. STATUS: E0186 - Returned when refund is already processing. STATUS: E0187 - Returned when transaction has chargeback reported. |
|
STATUS: E0180 - Returned when there is no Mastercard response and refund was rejected. STATUS: E0181 - Returned when refund was rejected by Mastercard. STATUS: E0188 - Returned when refund was rejected. Merchant is not active. STATUS: E9000 - Returned when refund was rejected by internal server error. STATUS: E05013 - Returned when installment payment refund is not allowed. |
|
STATUS: E9001 - Returned when is error acquirer connection. |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 191
{
"requestUuid" : "44f889c1-13c2-4a23-8c17-8a4d353bd99c",
"refundStatus" : "APPROVED",
"responseCode" : "CODE_00",
"status" : "S0010",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 199
{
"requestUuid" : "3f183b07-f5aa-467f-b7b3-3f2b1c98a886",
"refundStatus" : "DECLINED",
"responseCode" : "CODE_05",
"status" : "S0011",
"message" : "Refund declined",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Request unique uuid in system |
|
|
Refund status |
|
|
Response code |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:43:43 GMT
Connection: close
Content-Length: 265
{
"errors" : {
"merchantUuid" : [ "must not be null" ],
"requestUuid" : [ "must not be null" ],
"amountToRefund" : [ "must not be null" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "72f2b38c-7c2c-4401-acfc-8bdb5c2cdca2"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 400 Bad Request
Content-Type: application/json
Content-Length: 160
{
"status" : "E0182",
"message" : "Refund transaction amount to low",
"httpStatus" : "BAD_REQUEST",
"traceId" : "874755e6-efb9-45c5-a996-0987aaf8c5a9"
}
HTTP/1.1 400 Bad Request
Content-Type: application/json
Content-Length: 160
{
"status" : "E0182",
"message" : "Refund transaction amount to low",
"httpStatus" : "BAD_REQUEST",
"traceId" : "49354c59-51d6-4c6c-a696-e0aa278be024"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:43:43 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "d12a6170-e5ef-4aed-b4d2-5f4f4055dae1"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 403 Forbidden
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 135
Date: Wed, 20 Nov 2024 17:43:44 GMT
{
"status" : "E8001",
"message" : "Forbidden",
"httpStatus" : "FORBIDDEN",
"traceId" : "378104e0-ae46-4549-9ab4-1a0d10fd5a6d"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 256
{
"requestUuid" : "a18c8091-c26d-42dc-9d9d-3a96da2ae68a",
"refundStatus" : "REFUND_TRANSACTION_NOT_FOUND",
"status" : "E0155",
"message" : "Transaction not exist",
"httpStatus" : "NOT_FOUND",
"traceId" : "0f71ce14-c86b-4124-a536-86e855c5db44"
}
Path | Type | Description |
---|---|---|
|
|
Request unique uuid in system |
|
|
Refund status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 264
{
"requestUuid" : "434433b2-086e-49d5-8d6b-1194dec42bbe",
"refundStatus" : "REFUND_ALREADY_APPROVED",
"status" : "E0184",
"message" : "Transaction is refunded",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "7ec576c8-031a-444f-a69d-94bfebbd8331"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 278
{
"requestUuid" : "6bac8c61-3ead-41ac-bebb-30c33f9bfb4e",
"refundStatus" : "TRANSACTION_NOT_CLEARED",
"status" : "E0185",
"message" : "Transaction not cleared, can't refund",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "96517b19-b0a4-415d-bb77-1fad43c1a088"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 263
{
"requestUuid" : "d07623d1-119e-4e37-821d-34f75f1c3ca4",
"refundStatus" : "REFUND_PROCESSING",
"status" : "E0186",
"message" : "Refund is already processing",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "99ad3961-e87a-4633-883c-28c9c6d928f8"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 271
{
"requestUuid" : "bca4e22f-eb12-4351-ba10-ea3a92fb1e66",
"refundStatus" : "CHARGEBACK_REPORTED",
"status" : "E0187",
"message" : "Transaction is chargeback reported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "82c188ff-312d-4ec8-a49b-8890184315de"
}
Path | Type | Description |
---|---|---|
|
|
Request unique uuid in system |
|
|
Refund status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 263
{
"requestUuid" : "e61a6a86-2fdc-47d7-a4a7-ae17ef47e045",
"refundStatus" : "DECLINED",
"status" : "E0180",
"message" : "Refund rejected, no MC/VISA response",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "0b76e67a-4e2f-4389-badd-6f59c181f2a0"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 253
{
"requestUuid" : "9ab37c3b-3723-44de-ac09-3d88072be60d",
"refundStatus" : "DECLINED",
"status" : "E0181",
"message" : "Refund rejected by MC/VISA",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "bcc4177a-ee37-4c69-bb09-9446f43635d4"
}
Path | Type | Description |
---|---|---|
|
|
Request unique uuid in system |
|
|
Refund status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 177
{
"status" : "E05013",
"message" : "Installment Payment refund not allowed",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "facea0f5-77b7-44ee-ac4a-9898027ea118"
}
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:12 GMT
Connection: close
Content-Length: 169
{
"status" : "E0400",
"message" : "Failed to get currency for card",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "0293825c-eaf0-45bb-909b-6282b869c44c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
7.14. Account status inquiry
This method allows to send account status inquiry transaction to validate aspects of a cardholder account.
7.14.1. Request
POST /client/payments/asi HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 499
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "65667ccf-f9c0-43fc-bb29-4278f05e8945",
"terminalUuid" : "8fc8e976-9dc8-4262-9efd-e870a844ea24",
"requestUuid" : "daa27345-a1c3-407a-8807-70e4b317fa45",
"firstName" : "user",
"lastName" : "testUser",
"cardNumber" : "5453131785534417",
"expiryDate" : "11/26",
"cvc2" : "123",
"email" : "test@fenige.pl",
"phoneNumber" : "500500500",
"addressIp" : "192.0.0.1",
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"subMerchantName" : "Sub_Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
terminalUuid |
String |
@Optional |
Request’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
firstName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
First name of cardholder |
lastName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
Last name of cardholder |
cardNumber |
String |
@Card number length must be between 12 and 19, @Must not be blank, @Must not be null |
Full cardholder’s card number must be between 12-digits and 19-digits |
expiryDate |
String |
@Must not be blank, @Must not be null |
Expiration date of card mm/yy |
cvc2 |
String |
@Optional only for Google pay, @Length must be 3 characters, @Must match regular expression: \d+ |
Cardholder’s card cvc2 |
phoneNumber |
String |
@Optional @Must match regular expression [0-9]{3,14} |
Cardholder’s phone number |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03. |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
cipherCardNumber |
String |
@Optional |
Cipher card number. More in Payment API - JWE chapter |
keysVersion |
Number |
@Optional |
Field informs about keys version that was used to encrypt card number in cipherCardNumber field. More in Payment API - JWE chapter |
POST /client/payments/asi HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 407
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "65667ccf-f9c0-43fc-bb29-4278f05e8945",
"terminalUuid" : "8fc8e976-9dc8-4262-9efd-e870a844ea24",
"requestUuid" : "fd94f440-6180-40fc-908f-86629c0d2d04",
"cardId" : 1906455,
"cvc2" : "123",
"email" : "test@fenige.pl",
"phoneNumber" : "500500500",
"addressIp" : "192.0.0.1",
"terminalUrl" : "https://ecom-staging.fenige.pl/payments",
"subMerchantName" : "Sub-Merchant"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
terminalUuid |
String |
@Optional |
Request’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
cardId |
Number |
@Must not be null |
DataCenter card id. Required to obtain card information data from DataCenter such as (cardNumber, expiryDate, firstName, lastName, email) |
cvc2 |
String |
@Optional only for Google pay, @Length must be 3 characters, @Must match regular expression: \d+ |
Cardholder’s card cvc2 |
String |
Optional field, @Length(min = 1, max = 128) |
Cardholder’s email |
|
phoneNumber |
String |
@Optional @Must match regular expression [0-9]{3,14} |
Cardholder’s phone number |
addressIp |
String |
Optional field, @Must match the regular expression ^([0-9]{1,3}.){3}[0-9]{1,3}$ |
The IP address of the order of transaction. Optional field, mandatory from 2021-05-03 |
terminalUrl |
String |
@Optional |
Terminal identifier such as the business website URL or reverse domain name as presented to the consumer during checkout. Optional field, mandatory from 2021-05-03. |
subMerchantName |
String |
@Optional |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when terminal is configured as marketplace. |
7.14.2. Response
Response status
Status | Description |
---|---|
|
Returned when transaction was successfully authorized. |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0122 - Returned when merchant is not existing. STATUS: E0128 - Returned when sub merchant does not exists. STATUS: E0132 - Returned when terminal is not existing. STATUS: E0135 - Returned when terminal for merchant not exist or all of them are inactive. STATUS: E0137 - Returned when there is not terminal marked as default |
|
STATUS: E0150 - Returned when transaction is rejected. STATUS: E0152 - Returned when transaction is rejected, because issuer is not supported. STATUS: E01596 - Returned when transaction is rejected, because terminal has blocked transaction with card issued in restricted country STATUS: E0200 - Returned when transaction is rejected, because card is blocked in Fenige System STATUS: E0201 - Returned when transaction is rejected, because BIN is blocked in Fenige System STATUS: E0202 - Returned when transaction is rejected, because Terminal is blocked in Fenige System STATUS: E0204 - Returned when transaction is rejected, because user’s personal data was found on AML (sanctions) list STATUS: E0205 - Returned when transaction is rejected, because Bank is blocked in Fenige System STATUS: E0206 - Returned when transaction is rejected, because to many reject transactions and card is blocked STATUS: E0209 - Returned when sender or receiver name contains fraudulent phrase STATUS: E0210 - Returned when sender has suspicious name STATUS: E0211 - Returned when transaction is rejected, because card country is blocked in Fenige System. STATUS: E11000 - Returned when transaction processing time set by terminal was exceeded |
|
STATUS: E0153 - Returned when transaction is declined, by problem with MIP connection. STATUS: E01599 - Transaction declined, processing timeout. STATUS: E0142 - Returned when commission configuration is not added for terminal. STATUS: E9000 - Returned when reason is unknown. |
|
STATUS: E9001 - Returned when is error acquirer connection. STATUS: E9002 - Returned when is error mpi connection. |
{
"requestUuid" : "9ea7043a-ac6b-4077-8a8a-413d41dd4818",
"transactionStatus" : "APPROVED",
"responseCode" : "CODE_00",
"status" : "S0002",
"message" : "Success transaction",
"httpStatus" : "OK"
}
{
"requestUuid" : "03262b67-190a-45be-ba26-0ec8e6d7fd2b",
"transactionStatus" : "APPROVED",
"responseCode" : "CODE_85",
"status" : "S0002",
"message" : "Success transaction",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Request unique uuid in system |
|
|
Transaction status |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Response code |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:40 GMT
Connection: close
Content-Length: 422
{
"errors" : {
"expiryDate" : [ "invalid card expiration date" ],
"lastName" : [ "", "must not be null" ],
"firstName" : [ "must not be null", "" ],
"merchantUuid" : [ "must not be null" ],
"requestUuid" : [ "must not be null" ],
"cvc2" : [ "must not be null", "must not be blank" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "aabf2d33-b672-41f6-842a-a52f8a5d985b"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:44:23 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "afec24f5-a531-4216-94d7-ed1966aab6c4"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 403 Forbidden
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 135
Date: Wed, 20 Nov 2024 17:44:24 GMT
{
"status" : "E8001",
"message" : "Forbidden",
"httpStatus" : "FORBIDDEN",
"traceId" : "7c95e0c8-4f36-4791-a854-f9002b17a8cf"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0122",
"message" : "Merchant not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "f8b07626-14c7-4515-9ed3-46a38c18bddb"
}
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0132",
"message" : "Terminal not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "ee4dac06-fdbd-4bea-93c1-b422f8a0fcc6"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 163
{
"status" : "E0137",
"message" : "Default terminal not exist",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "f8542e6d-c189-4e30-b782-743299071ca3"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 159
{
"status" : "E0135",
"message" : "Terminals for merchant not exists",
"httpStatus" : "NOT_FOUND",
"traceId" : "f73527a3-0d97-4492-a2a3-b2fd26c56498"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 251
{
"requestUuid" : "ab1833ef-4c51-487c-b987-1330eb3cc5aa",
"transactionStatus" : "REJECTED",
"status" : "E0150",
"message" : "Transaction rejected",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "65d35cb9-0f23-419e-8f50-76a2fe552081"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 278
{
"requestUuid" : "4683e247-c3c0-4ae7-9979-98113200c966",
"transactionStatus" : "REJECTED",
"status" : "E0152",
"message" : "Transaction rejected, issuer card not supported",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "2adfd216-33d0-48af-9da7-5f4dcba4d81c"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 381
{
"requestUuid" : "f417626a-8a97-4ad9-8dfc-514eccb5b2ff",
"transactionStatus" : "REJECTED",
"cardBlockadeAdditionalData" : {
"blockType" : "TEMP",
"blockedUntil" : "2022-11-01T12:51:32.000"
},
"status" : "E0200",
"message" : "Transaction rejected, card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "7b8f0b5a-7537-48e7-a199-c420c9e5f4af"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 267
{
"requestUuid" : "ec077c42-6021-48b6-acc9-8722ee223e76",
"transactionStatus" : "REJECTED",
"status" : "E0201",
"message" : "Transaction rejected, bin is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "7bf25ae3-dbc7-47b5-ab20-ace63b362eb5"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "60f691c7-ad36-4e18-bbeb-d7569a1efbee",
"transactionStatus" : "REJECTED",
"status" : "E0202",
"message" : "Transaction rejected, terminal is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "1df95f96-1258-4245-96f6-4d8f1fd160d9"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 272
{
"requestUuid" : "5e4e39c5-dade-4598-8b53-a1ed17bb918e",
"transactionStatus" : "REJECTED",
"status" : "E0204",
"message" : "Transaction rejected, user is on aml list",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "6760a846-4888-4d0f-a3dd-469dcc6baaa2"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 268
{
"requestUuid" : "95dfa38e-9c80-41a7-b875-3cb9d2cb26ee",
"transactionStatus" : "REJECTED",
"status" : "E0205",
"message" : "Transaction rejected, bank is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "3007a23c-cc82-4c90-99fc-17f61acaef2e"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 301
{
"requestUuid" : "2cf3f66c-faf0-4fcf-99d0-bc37d7656a4a",
"transactionStatus" : "REJECTED",
"status" : "E0206",
"message" : "Transaction rejected, too many reject transactions and card is blocked",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "cb5a2ba3-9475-4b44-98bd-364bc0444a2a"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 292
{
"requestUuid" : "ee3b6dc0-6c6a-4a59-b197-69064b3a68c3",
"transactionStatus" : "REJECTED",
"status" : "E0209",
"message" : "Transaction rejected, sender name contains fraudulent phrase.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "73c0a2c6-b712-4742-ab57-ccbcb3880dba"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 276
{
"requestUuid" : "c60b31a9-b34b-4b19-9fd4-7458799f6a34",
"transactionStatus" : "REJECTED",
"status" : "E0210",
"message" : "Transaction rejected, suspicious sender name.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "89d4ebd8-6271-4b44-be8b-3a700abd179e"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 277
{
"requestUuid" : "6aa4ab52-e351-4166-992c-035a71321ad3",
"transactionStatus" : "REJECTED",
"status" : "E0211",
"message" : "Transaction rejected, card country restricted.",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "60af1bcc-e676-40a5-bf88-f8da8dfbc1c9"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 321
{
"requestUuid" : "195a3940-7310-4e97-bacd-031877bf3a2e",
"transactionStatus" : "REJECTED",
"status" : "E01596",
"message" : "Transaction rejected, terminal blocks transactions with card issued in given card country",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "e76d7544-601c-4734-aec3-e7e330205d30"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 315
{
"requestUuid" : "3d15f0c5-dd34-40c7-8339-cef0335c0de8",
"transactionStatus" : "REJECTED",
"status" : "E01607",
"message" : "Transaction rejected, internal server error during authorization request generation",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "67bb51e4-deed-4939-8dc1-45446121d59f"
}
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 282
{
"requestUuid" : "5503a1f8-fa3d-4769-b962-1ba159fc4ba1",
"transactionStatus" : "REJECTED",
"status" : "E13000",
"message" : "Transaction rejected, merchant risk score exceeded",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "4b53b0e4-b631-45d7-bb01-570b9e780d82"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 183
{
"status" : "E0142",
"message" : "Commission configuration not add for terminal",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "6e1cb84f-d4ff-42a1-a6a9-e85675d0d4c1"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 280
{
"requestUuid" : "e7eded19-b831-4779-8862-e7f71bc5e6a1",
"transactionStatus" : "PENDING",
"status" : "E0153",
"message" : "Transaction declined, problem with MIP connection",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "3242056d-3ce2-43a3-8215-ec45350d65f2"
}
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
Content-Length: 273
{
"requestUuid" : "9354a821-57f0-400f-91f0-52cdeeb8e828",
"transactionStatus" : "DECLINED",
"status" : "E01599",
"message" : "Transaction declined, processing timeout",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "ef8a7d04-be7f-4d32-af9a-9f47190f4e04"
}
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "d47125f6-edb2-4ec0-8a61-4ca6581b8482"
}
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:12 GMT
Connection: close
Content-Length: 169
{
"status" : "E0400",
"message" : "Failed to get currency for card",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "0293825c-eaf0-45bb-909b-6282b869c44c"
}
HTTP/1.1 503 Service Unavailable
Content-Type: application/json
Content-Length: 250
{
"requestUuid" : "7f1fabbb-21b8-40a3-a739-515fdf4a16db",
"transactionStatus" : "DECLINED",
"status" : "E9002",
"message" : "Error mpi connection",
"httpStatus" : "SERVICE_UNAVAILABLE",
"traceId" : "cffdfbf2-06a8-4d70-b767-ad3eef01c15d"
}
8. 3DS 2.X verification methods
Mastercard and Visa requires for intra-European Economic Area (EEA), plus United Kingdom, for which EMV 3DS must be used subsequent to a valid authorization soft decline DE39=65 (Mastercard)/1A(Visa).To perform a transaction for which the card has previously received CODE_65(Mastercard)/CODE_1A(Visa), the transaction must be processed with full EMV 3DS (3DS 2.x) and the authentication status must be 'Y'. Correct flow:
|
3DS status | ECI(Mastercard) | ECI(Visa) | Liability | Recommended Action |
---|---|---|---|---|
Y |
02 |
05 |
Card Issuer |
Proceed to Card Authorization |
A |
01 |
06 |
Card Issuer |
Proceed to Card Authorization |
N |
00 |
07 |
Merchant |
No liability shift, do not proceed with the transaction |
U |
00 |
07 |
Merchant |
No liability shift, consider whether to proceed with the transaction |
R |
00 |
07 |
Merchant |
No liability shift, do not proceed with the transaction |
8.1. Pre Authentication
Method to initiate 3ds authentication.
If the card is in 3ds 2.X, you can proceed to the first stage of authentication. If 'threeDSMethodURL' is returned, make a hidden iframe and post form with field name 'threeDSMethodData' on address from 'threeDSMethodURL'. Insert 'threeDSMethodData' from response to form. You should receive a response on your endpoint 'methodNotificationUrl' with 'threeDSMethodData' too. Measure the response time, the time and response are required at the 'Authentication' method, based on the response time, set the field 'methodCompletionIndicator'. 'threeDSMethodData ' is Base64 encoded string json with fields 'threeDSMethodNotificationURL' and 'threeDSServerTransID'. The range of card BINs that support 3DS 2.X for Mastercard is: 500000-549999. Use the following BINs below to generate cards for testing: - 5375912476960515 - 5117962099480048 - 5117963095204135 - 5218572540397762 - 5375913862726080 The range of card BINs that support 3DS 2.X for Visa is: 400000-449999. Use the following BINs below to generate cards for testing: - 4005520000000129 - 4164978855760477 - 4341500505113562 - 4280596505234682 In addition, the 3ds verification flow can be initialized with a tokenized card by specifying tokenUuid instead of real PAN numbers. For more information, check out the tokenize card section.
8.1.1. Request
POST /client/3ds/preAuthentication HTTP/1.1
Authorization: Basic VXNlcjpQYXNzd29yZA==
Content-Type: application/json
Content-Length: 256
Host: ecom-staging.fenige.pl
{
"cardNumber" : "5430149160516930",
"methodNotificationUrl" : "https://ecom-staging.fenige.pl",
"terminalUuid" : "0d70e13b-0dfd-4f4c-81b8-401e040bff5a",
"merchantUuid" : "d5ae214c-9b11-416e-833d-8f20ae6f0e4b",
"subMerchantName" : "Submerchant"
}
Path | Type | Constraints | Description |
---|---|---|---|
cardNumber |
String |
Card number |
|
methodNotificationUrl |
String |
@Must match the regular expression |
This field specifies the URL to which the ACS will post threeDSMethodData when the hidden iframe post form from browse |
terminalUuid |
String |
Terminal uuid. One of parameters merchantUuid or terminalUuid must not be null |
|
merchantUuid |
String |
Merchant uuid. One of parameters merchantUuid or terminalUuid must not be null |
|
subMerchantName |
String |
Identifier assigned by the Payment Facilitator to each sub-merchant. Conditional - mandatory only when merchant is configured as Payment Facilitator.. |
POST /client/3ds/preAuthentication HTTP/1.1
Authorization: Basic VXNlcjpQYXNzd29yZA==
Content-Type: application/json
Content-Length: 201
Host: ecom-staging.fenige.pl
{
"cardId" : 1723,
"methodNotificationUrl" : "https://ecom-staging.fenige.pl",
"terminalUuid" : "1ff0d050-708e-4859-9ae1-7c04e06d2fa7",
"merchantUuid" : "4518c01f-b01d-4909-bce8-b1471f4443be"
}
Path | Type | Constraints | Description |
---|---|---|---|
cardId |
Number |
DataCenter card id. Required to obtain card information data from DataCenter such as (cardNumber, expiryDate) |
|
methodNotificationUrl |
String |
@Must match the regular expression |
This field specifies the URL to which the ACS will post threeDSMethodData when the hidden iframe post form from browse |
terminalUuid |
String |
Terminal uuid. One of parameters merchantUuid or terminalUuid must not be null |
|
merchantUuid |
String |
Merchant uuid. One of parameters merchantUuid or terminalUuid must not be null |
POST /client/3ds/preAuthentication HTTP/1.1
Authorization: Basic VXNlcjpQYXNzd29yZA==
Content-Type: application/json
Content-Length: 238
Host: ecom-staging.fenige.pl
{
"tokenUuid" : "fb0cfa76-2e68-4111-8cd3-59cb79f9fd8c",
"methodNotificationUrl" : "https://ecom-staging.fenige.pl",
"terminalUuid" : "26ce075c-02dc-46c8-bd73-f1c706f43f38",
"merchantUuid" : "7443e38c-fe30-41a2-906a-4bae9b891189"
}
Path | Type | Constraints | Description |
---|---|---|---|
tokenUuid |
String |
Tokenized card uuid. Unique tokenized card identifier corresponding to token. Required to obtain tokenized card information such as token PAN |
|
methodNotificationUrl |
String |
@Must match the regular expression |
This field specifies the URL to which the ACS will post threeDSMethodData when the hidden iframe post form from browse |
terminalUuid |
String |
Terminal uuid. One of parameters merchantUuid or terminalUuid must not be null |
|
merchantUuid |
String |
Merchant uuid. One of parameters merchantUuid or terminalUuid must not be null |
8.1.2. Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 532
{
"cardAuthenticationId" : "e5b89975-0582-413f-8eea-8cb0b8d15c9b",
"threeDSMethodData" : "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly93ZWJob29rLnNpdGUvZDMyZTlkZTgtMGFiOC00ODZjLWJjNzEtMGU2Mzg2MmY4MDNhM2I1YTkzZTUtMjI1Ni00NGQ0LTg2YjItNWFkM2FhMDEyYTJhIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiIxNjNiZWMzOC1kOTM1LTQ0MGItYWYwYy01OWM3NDI3OTk2MGMifQ",
"threeDSMethodURL" : "https:/acs.com",
"protocolVersionStart" : "2.2.0",
"protocolVersionEnd" : "2.2.0",
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Unique identifier for 3ds verification |
|
|
Encoded data used for request to ACS |
|
|
ACS endpoint for hidden request. If endpoint is not present then request is not required. |
|
|
Protocol version start range |
|
|
Protocol version end range |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 491
{
"cardAuthenticationId" : "b4ab4bc5-4b8e-40a2-8ef4-adaa8d7982bd",
"threeDSMethodData" : "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly93ZWJob29rLnNpdGUvZDMyZTlkZTgtMGFiOC00ODZjLWJjNzEtMGU2Mzg2MmY4MDNhM2I1YTkzZTUtMjI1Ni00NGQ0LTg2YjItNWFkM2FhMDEyYTJhIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiIxNjNiZWMzOC1kOTM1LTQ0MGItYWYwYy01OWM3NDI3OTk2MGMifQ",
"protocolVersionStart" : "2.2.0",
"protocolVersionEnd" : "2.2.0",
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Unique identifier for 3ds verification |
|
|
Encoded data used for request to ACS |
|
|
Protocol version start range |
|
|
Protocol version end range |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
Content-Length: 171
{
"status" : "E0303",
"message" : "Card number not Enrolled in 3DS v2",
"httpStatus" : "UNPROCESSABLE_ENTITY",
"traceId" : "3d9cc3da-d77f-49f5-b8a3-d4501a580eb4"
}
Path | Type | Description |
---|---|---|
|
|
Unique id for this http request register in system |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
8.2. Authentication
Method initialize authentication process by sending required transaction data. Method can return final data like transactionXId, cavv, eci or challenge flow (showed in the diagram).
After challenge end your app get notification on 'notificationUrl'. This is a POST request with "cres" and "threeDSSessionData". "threeDSSessionData" is a encoded in base64 "cardAuthenticationId". You must use it in 'Authentication Details' method to get authentication value cavv, transactionXId and eci. 'cres' is Base64 encoded string json with fields: 'threeDSServerTransID', 'acsTransID', 'challengeCompletionInd', 'messageVersion', 'transStatus'. 'threeDSServerTransID' - is same like in 'threeDSMethodData'. 'transStatus' - is same like 'transactionStatus' in response from 'Authentication' method.
In the test environment, you have the option of calling different transactionStatus, depending on the purchaseAmount field. Eg. (1, 1000) - Y, (1001, 2000) - A, (2001, 3000) - C, (3001, 4000) - N, (4001, 5000) - U, (5001, 6000) - I, (6001, 7000) - status: E0300 errorCode: E1203, (7001, 8000) - status: E0309 errorCode: E1010
8.2.1. Request
POST /client/3ds/authentication HTTP/1.1
Authorization: Basic VXNlcjpQYXNzd29yZA==
Content-Type: application/json
Content-Length: 1731
Host: ecom-staging.fenige.pl
{
"terminalUuid" : "a72046a3-03be-49c4-8fb7-88690664bdf2",
"merchantUuid" : "aeb51003-42b5-4501-8c49-c24ea5689134",
"subMerchantName" : "Submerchant",
"cardAuthenticationId" : "5eff403d-4bc8-4570-a1ac-667ea31f4583",
"threeDSMethodData" : "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiSFRUUDQwYjgyNDQ3LTE0ODUtNDUwZi04ZGYxLTdhNGQwYmRiMWMzYiIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiNDE1MDQzY2UtYTNhMC00ODBjLTk0YTYtNzk2NGEzYTcxNWI2In0",
"methodCompletionIndicator" : "Y",
"cardNumber" : "5430149160516930",
"cardExpirationDate" : "12/26",
"cardholderName" : "John",
"purchaseAmount" : "123",
"purchaseCurrency" : "PLN",
"challengeWindowSize" : "S_250X400",
"browserAcceptHeader" : "Accept: application/json",
"browserLanguage" : "PL",
"browserScreenHeight" : "1500",
"browserScreenWidth" : "1500",
"browserTimeZone" : "60",
"browserUserAgent" : "Mozilla/5.0",
"browserScreenColorDepth" : "24",
"cardholderEmail" : "john@example.com",
"cardholderHomePhone" : "1-1234567899",
"cardholderMobilePhone" : "1-1234567899",
"cardholderWorkPhone" : "48-1234567899",
"browserIPAddress" : "77.55.135.220",
"browserJavaEnabledVal" : "ENABLED",
"browserJavaScriptEnabled" : "ENABLED",
"notificationUrl" : "notificationUrl.com",
"authenticationType" : "PAYMENT",
"requestorChallengeInd" : "CHALLENGE_REQUESTED_MANDATE",
"protocolVersion" : "2.2.0",
"cardholderBillingAddressCountry" : "US",
"cardholderBillingAddressState" : "CA",
"cardholderBillingAddressCity" : "Los Angeles",
"cardholderBillingAddressLine1" : "4101 Supreme ct",
"cardholderBillingAddressLine2" : "Chestnut Ave",
"cardholderBillingAddressLine3" : "W 225TH ST",
"cardholderBillingAddressPostalCode" : "90032-2537"
}
Path | Type | Constraints | Description |
---|---|---|---|
terminalUuid |
String |
Terminal uuid. One of parameters merchantUuid or terminalUuid must not be null |
|
merchantUuid |
String |
Merchant uuid. One of parameters merchantUuid or terminalUuid must not be null |
|
subMerchantName |
String |
Sub merchant name |
|
cardAuthenticationId |
String |
@Must not be null |
Unique identifier for 3ds verification from preAuthentication request |
cardNumber |
String |
Card number length must be between 12 and 19, @Must not be blank, @Must not be null or card id must be present |
Card number |
cardExpirationDate |
String |
@Length must be 5, @Must not be null or card id must be present |
Expiration date of card mm/yy |
cardholderName |
String |
@Length must be between 2 and 45 inclusive, |
This property contains the name of the cardholder. Name of the Cardholder. Must be ASCII characters. This is required to be set unless market or regional mandates restricts sending this information. |
purchaseAmount |
String |
@Must match the regular expression |
This field contains the purchase amount to be authorized. The transaction amount is to be presented with an implied decimal point. For example, US $10.00 must be represented as 1000, and $0.10 is likewise simply 10. The allowable number of significant digits as well as the positioning of any implied decimal point is dictated by the designated PurchaseExponent. This field may not contain a negative number. |
purchaseCurrency |
String |
@Must not be null |
Currency for transaction (in accordance with 3-digit ISO-4217), example: USD |
threeDSMethodData |
String |
@Must not be empty |
Response data from a hidden form from the Pre Authentication. If threeDSMethodURL is empty set threeDSMethodData |
methodCompletionIndicator |
String |
@Must not be null |
Y if response from hidden form from Pre Authentication is under 10s, N if response from hidden form from Pre Authentication is over 10s, U if threeDSMethodURL is empty |
protocolVersion |
String |
@Must not be empty |
This field indicates the protocol version. It is recommended to use 2.2.0 if the card supports it. You will get it from the Pre Authentication method. |
notificationUrl |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This property specifies the URL to which the final challenge response is POSTed. |
requestorChallengeInd |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
Indicates whether a challenge is requested for this transaction. For authenticationType PAYMENT possible values are: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED_MANDATE, CHALLENGE_REQUESTED_3DS_REQUESTOR_PREFERENCE For authenticationType ADD_CARD, VERIFY_CARDHOLDER, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL possible values are: CHALLENGE_REQUESTED_MANDATE, CHALLENGE_REQUESTED_3DS_REQUESTOR_PREFERENCE |
authenticationType |
String |
@Must not be null |
Authentication Type configuration prepared for specific type. Possible values are: Non payment authentication - Identity verification and account confirmation: ADD_CARD VERIFY_CARDHOLDER Payment authentication - Cardholder authentication during an e-commerce transaction: PAYMENT COF_INITIAL INSTALLMENT_PAYMENT RECURRING_INITIAL 3DS Requestor Initiated (only for protocolVersion 2.2.0) - Confirmation of account information and Cardholder authentication with no direct Cardholder present. For example, a subscription-based e-commerce merchant confirming that an account is still valid: MOTO RECURRING_SUBSEQUENT |
challengeWindowSize |
String |
Optional |
This field indicates the dimensions of the challenge window that has been displayed to the cardholder. The ACS shall reply with content that is formatted to appropriately render in this window to provide the best possible user experience. Preconfigured sizes are width x height in pixels of the window displayed in the cardholder browser. Possible values are:S_250X400 S_390X400 S_500X600 S_600X400 FULL_SCREEN This value is included in the Challenge Request Message (CReq) |
browserAcceptHeader |
String |
Max length: 2048. Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL. |
This field contains the exact content of the HTTP accept header as sent to the merchant from the cardholder’s user agent. This field is required only if the cardholder’s user agent supplied a value. e.g Accept: application/json |
browserLanguage |
String |
Min length: 1, Max length: 35 Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the cardholder’s browser language as defined in IETF BCP 47. |
browserScreenHeight |
String |
Min length: 1, Max length: 6 Regexp: ^[0-9]{1,6}$ Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the total height of the cardholder’s screen in pixels. |
browserScreenWidth |
String |
Min length: 1, Max length: 6 Regexp: ^[0-9]{1,6}$ Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the total width of the cardholder’s screen in pixels. |
browserTimeZone |
String |
Min length: 1, Max length: 5 Regexp: ^[+-]?[0-9]{1,4}$ Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the difference between UTC time and the cardholder’s browser local time in minutes. |
browserUserAgent |
String |
Max length: 2048 Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the exact content of the HTTP User-Agent header. |
browserJavaEnabledVal |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains a value representing the ability of the cardholder’s browser to execute Java. Enumerated values: NOT_PRESENT, ENABLED, DISABLED. Required if browserJavascriptEnabled is true |
cardholderEmail |
String |
Optional, Max length: 256, must not be null if cardholderMobilePhone or cardholderHomePhone or cardholderMobilePhone is null only for VISA |
This field contains the cardholder email address. |
cardholderHomePhone |
String |
Optional. Must match regex \d{1,3}-[1-9]\d{1,14}$, must not be null if cardholderEmail or cardholderMobilePhone or cardholderMobilePhone is null only for VISA |
This field contains the home phone number provided by the cardholder. Phone numbers must be specified in the following format: CountryCode-Subscriber (e.g. 1-1234567899) |
cardholderMobilePhone |
String |
Optional. Must match regex \d{1,3}-[1-9]\d{1,14}$, must not be null if cardholderEmail or cardholderHomePhone or cardholderWorkPhone is null only for VISA |
This field contains the mobile phone number provided by the cardholder. Phone numbers must be specified in the following format: CountryCode-Subscriber (e.g. 1-1234567899) |
cardholderWorkPhone |
String |
Optional. Must match regex \d{1,3}-[1-9]\d{1,14}$, must not be null if cardholderEmail or cardholderHomePhone or cardholderMobilePhone is null only for VISA |
This field contains the work phone number provided by the cardholder. Phone numbers must be specified in the following format: CountryCode-Subscriber (e.g. 1-1234567899) |
browserIPAddress |
String |
@Must not be null, Max length: 45 Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the IP address of the cardholder’s browser as returned by the HTTP headers. |
browserJavaScriptEnabled |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains a value representing the ability of the cardholder’s browser to execute JavaScript. Enumerated values: ENABLED, DISABLED. |
browserScreenColorDepth |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains a value representing the bit depth of the color palette, in bits per pixel, for displaying images. Obtained from Cardholder browser using the screen.colorDepth property. Values accepted: 1 = 1 bit, 4 = 4 bits, 8 = 8 bits, 15 = 15 bits, 16 = 16 bits, 24 = 24 bits, 32 = 32 bits, 48 = 48 bits |
cardholderBillingAddressCountry |
String |
@Max length: 3 Required if Cardholder Billing Address State is present. |
The country of the Cardholder billing address associated with the card used for this purchase. Shall be the ISO 3166-1 alfa-2 country code, other than exceptions listed in Table A.5. |
cardholderBillingAddressState |
String |
@Max length: 3 |
Country subdivision code defined in ISO 3166-2. For example, using the ISO entry US-CA (California, United States), the correct value for this field = CA. Note that the country and hyphen are not included in this value. |
cardholderBillingAddressCity |
String |
@Max length: 50 |
The city of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressLine1 |
String |
@Max length: 50 |
First line of the street address or equivalent local portion of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressLine2 |
String |
@Max length: 50 |
Second line of the street address or equivalent local portion of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressLine3 |
String |
@Max length: 50 |
Third line of the street address or equivalent local portion of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressPostalCode |
String |
@Max length: 16 |
ZIP or other postal code of the Cardholder billing address associated with the card used for this purchase. |
POST /client/3ds/authentication HTTP/1.1
Authorization: Basic VXNlcjpQYXNzd29yZA==
Content-Type: application/json
Content-Length: 1608
Host: ecom-staging.fenige.pl
{
"terminalUuid" : "0c4918ec-b89f-47ec-91bf-471e115a9c70",
"merchantUuid" : "e6da91dd-7447-47bb-9069-2f23d38ed0f0",
"subMerchantName" : "Submerchant",
"cardAuthenticationId" : "24594a3a-5774-4358-a320-fc22e5649847",
"threeDSMethodData" : "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiSFRUUDQwYjgyNDQ3LTE0ODUtNDUwZi04ZGYxLTdhNGQwYmRiMWMzYiIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiNDE1MDQzY2UtYTNhMC00ODBjLTk0YTYtNzk2NGEzYTcxNWI2In0",
"methodCompletionIndicator" : "Y",
"cardId" : 1723,
"purchaseAmount" : "123",
"purchaseCurrency" : "PLN",
"challengeWindowSize" : "S_250X400",
"browserAcceptHeader" : "Accept: application/json",
"browserLanguage" : "PL",
"browserScreenHeight" : "1500",
"browserScreenWidth" : "1500",
"browserTimeZone" : "60",
"browserUserAgent" : "Mozilla/5.0",
"browserScreenColorDepth" : "24",
"cardholderHomePhone" : "1-1234567899",
"cardholderMobilePhone" : "1-1234567899",
"cardholderWorkPhone" : "48-1234567899",
"browserIPAddress" : "77.55.135.220",
"browserJavaEnabledVal" : "ENABLED",
"browserJavaScriptEnabled" : "ENABLED",
"notificationUrl" : "notificationUrl.com",
"authenticationType" : "PAYMENT",
"requestorChallengeInd" : "CHALLENGE_REQUESTED_MANDATE",
"protocolVersion" : "2.2.0",
"cardholderBillingAddressCountry" : "US",
"cardholderBillingAddressState" : "CA",
"cardholderBillingAddressCity" : "Los Angeles",
"cardholderBillingAddressLine1" : "4101 Supreme ct",
"cardholderBillingAddressLine2" : "Chestnut Ave",
"cardholderBillingAddressLine3" : "W 225TH ST",
"cardholderBillingAddressPostalCode" : "90032-2537"
}
Path | Type | Constraints | Description |
---|---|---|---|
terminalUuid |
String |
Terminal uuid. One of parameters merchantUuid or terminalUuid must not be null |
|
merchantUuid |
String |
Merchant uuid. One of parameters merchantUuid or terminalUuid must not be null |
|
subMerchantName |
String |
Sub merchant name |
|
cardAuthenticationId |
String |
@Must not be null |
Unique identifier for 3ds verification from preAuthentication request |
purchaseAmount |
String |
@Must match the regular expression |
This field contains the purchase amount to be authorized. The transaction amount is to be presented with an implied decimal point. For example, US $10.00 must be represented as 1000, and $0.10 is likewise simply 10. The allowable number of significant digits as well as the positioning of any implied decimal point is dictated by the designated PurchaseExponent. This field may not contain a negative number. |
purchaseCurrency |
String |
@Must not be null |
Currency for transaction (in accordance with 3-digit ISO-4217), example: USD |
threeDSMethodData |
String |
@Must not be empty |
Response data from a hidden form from the Pre Authentication. If threeDSMethodURL is empty set threeDSMethodData |
methodCompletionIndicator |
String |
@Must not be null |
Y if response from hidden form from Pre Authentication is under 10s, N if response from hidden form from Pre Authentication is over 10s, U if threeDSMethodURL is empty |
protocolVersion |
String |
@Must not be empty |
This field indicates the protocol version. It is recommended to use 2.2.0 if the card supports it. You will get it from the Pre Authentication method. |
notificationUrl |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This property specifies the URL to which the final challenge response is POSTed. |
requestorChallengeInd |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
Indicates whether a challenge is requested for this transaction. For authenticationType PAYMENT possible values are: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED_MANDATE, CHALLENGE_REQUESTED_3DS_REQUESTOR_PREFERENCE For authenticationType ADD_CARD, VERIFY_CARDHOLDER, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL possible values are: CHALLENGE_REQUESTED_MANDATE, CHALLENGE_REQUESTED_3DS_REQUESTOR_PREFERENCE |
authenticationType |
String |
@Must not be null |
Authentication Type configuration prepared for specific type. Possible values are: Non payment authentication - Identity verification and account confirmation: ADD_CARD VERIFY_CARDHOLDER Payment authentication - Cardholder authentication during an e-commerce transaction: PAYMENT COF_INITIAL INSTALLMENT_PAYMENT RECURRING_INITIAL 3DS Requestor Initiated (only for protocolVersion 2.2.0) - Confirmation of account information and Cardholder authentication with no direct Cardholder present. For example, a subscription-based e-commerce merchant confirming that an account is still valid: MOTO RECURRING_SUBSEQUENT |
challengeWindowSize |
String |
Max length: 2048. Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL. |
This field indicates the dimensions of the challenge window that has been displayed to the cardholder. The ACS shall reply with content that is formatted to appropriately render in this window to provide the best possible user experience. Preconfigured sizes are width x height in pixels of the window displayed in the cardholder browser. Possible values are:S_250X400 S_390X400 S_500X600 S_600X400 FULL_SCREEN This value is included in the Challenge Request Message (CReq) |
browserAcceptHeader |
String |
Max length: 2048. Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL. |
This field contains the exact content of the HTTP accept header as sent to the merchant from the cardholder’s user agent. This field is required only if the cardholder’s user agent supplied a value. e.g Accept: application/json |
browserLanguage |
String |
Min length: 1, Max length: 35 Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the cardholder’s browser language as defined in IETF BCP 47. |
browserScreenHeight |
String |
Regexp: ^[0-9]{1,6}$ Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the total height of the cardholder’s screen in pixels. |
browserScreenWidth |
String |
Regexp: ^[0-9]{1,6}$ Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the total width of the cardholder’s screen in pixels. |
browserTimeZone |
String |
Regexp: ^[+-]?[0-9]{1,4}$ Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the difference between UTC time and the cardholder’s browser local time in minutes. |
browserUserAgent |
String |
Max length: 2048 Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the exact content of the HTTP User-Agent header. |
browserJavaEnabledVal |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains a value representing the ability of the cardholder’s browser to execute Java. Enumerated values: NOT_PRESENT, ENABLED, DISABLED. Required if browserJavascriptEnabled is true |
cardholderHomePhone |
String |
Optional. Must match regex \d{1,3}-[1-9]\d{1,14}$ |
This field contains the home phone number provided by the cardholder. Phone numbers must be specified in the following format: CountryCode-Subscriber (e.g. 1-1234567899) |
cardholderMobilePhone |
String |
Optional. Must match regex \d{1,3}-[1-9]\d{1,14}$ |
This field contains the mobile phone number provided by the cardholder. Phone numbers must be specified in the following format: CountryCode-Subscriber (e.g. 1-1234567899) |
cardholderWorkPhone |
String |
Optional. Must match regex \d{1,3}-[1-9]\d{1,14}$ |
This field contains the work phone number provided by the cardholder. Phone numbers must be specified in the following format: CountryCode-Subscriber (e.g. 1-1234567899) |
browserIPAddress |
String |
@Must not be null, Max length: 45Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the IP address of the cardholder’s browser as returned by the HTTP headers. |
browserJavaScriptEnabled |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains a value representing the ability of the cardholder’s browser to execute JavaScript. Enumerated values: ENABLED, DISABLED. |
browserScreenColorDepth |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains a value representing the bit depth of the color palette, in bits per pixel, for displaying images. Obtained from Cardholder browser using the screen.colorDepth property. Values accepted: 1 = 1 bit, 4 = 4 bits, 8 = 8 bits, 15 = 15 bits, 16 = 16 bits, 24 = 24 bits, 32 = 32 bits, 48 = 48 bits |
cardholderBillingAddressCountry |
String |
@Max length: 3 Required if Cardholder Billing Address State is present. |
The country of the Cardholder billing address associated with the card used for this purchase. Shall be the ISO 3166-1 alfa-2 country code, other than exceptions listed in Table A.5. |
cardholderBillingAddressState |
String |
@Max length: 3 |
Country subdivision code defined in ISO 3166-2. For example, using the ISO entry US-CA (California, United States), the correct value for this field = CA. Note that the country and hyphen are not included in this value. |
cardholderBillingAddressCity |
String |
@Max length: 50 |
The city of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressLine1 |
String |
@Max length: 50 |
First line of the street address or equivalent local portion of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressLine2 |
String |
@Max length: 50 |
Second line of the street address or equivalent local portion of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressLine3 |
String |
@Max length: 50 |
Third line of the street address or equivalent local portion of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressPostalCode |
String |
@Max length: 16 |
ZIP or other postal code of the Cardholder billing address associated with the card used for this purchase. |
cardId |
Number |
DataCenter card id. Required to obtain card information data from DataCenter such as (cardNumber, expiryDate) |
POST /client/3ds/authentication HTTP/1.1
Authorization: Basic VXNlcjpQYXNzd29yZA==
Content-Type: application/json
Content-Length: 1674
Host: ecom-staging.fenige.pl
{
"terminalUuid" : "70e555d2-f82f-4ff7-84f0-34e24fb41d44",
"merchantUuid" : "92552c6e-7b85-42c2-a0e3-ff8f90399fc8",
"subMerchantName" : "Submerchant",
"cardAuthenticationId" : "a16c8b29-aaaa-46e9-9480-aff11bf85e63",
"threeDSMethodData" : "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiSFRUUDQwYjgyNDQ3LTE0ODUtNDUwZi04ZGYxLTdhNGQwYmRiMWMzYiIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiNDE1MDQzY2UtYTNhMC00ODBjLTk0YTYtNzk2NGEzYTcxNWI2In0",
"methodCompletionIndicator" : "Y",
"tokenUuid" : "fb0cfa76-2e68-4111-8cd3-59cb79f9fd8c",
"cardholderName" : "John",
"purchaseAmount" : "123",
"purchaseCurrency" : "PLN",
"challengeWindowSize" : "S_250X400",
"browserAcceptHeader" : "Accept: application/json",
"browserLanguage" : "PL",
"browserScreenHeight" : "1500",
"browserScreenWidth" : "1500",
"browserTimeZone" : "60",
"browserUserAgent" : "Mozilla/5.0",
"browserScreenColorDepth" : "24",
"cardholderHomePhone" : "1-1234567899",
"cardholderMobilePhone" : "1-1234567899",
"cardholderWorkPhone" : "48-1234567899",
"browserIPAddress" : "77.55.135.220",
"browserJavaEnabledVal" : "ENABLED",
"browserJavaScriptEnabled" : "ENABLED",
"notificationUrl" : "notificationUrl.com",
"authenticationType" : "PAYMENT",
"requestorChallengeInd" : "CHALLENGE_REQUESTED_MANDATE",
"protocolVersion" : "2.2.0",
"cardholderBillingAddressCountry" : "US",
"cardholderBillingAddressState" : "CA",
"cardholderBillingAddressCity" : "Los Angeles",
"cardholderBillingAddressLine1" : "4101 Supreme ct",
"cardholderBillingAddressLine2" : "Chestnut Ave",
"cardholderBillingAddressLine3" : "W 225TH ST",
"cardholderBillingAddressPostalCode" : "90032-2537"
}
Path | Type | Constraints | Description |
---|---|---|---|
terminalUuid |
String |
Terminal uuid. One of parameters merchantUuid or terminalUuid must not be null |
|
merchantUuid |
String |
Merchant uuid. One of parameters merchantUuid or terminalUuid must not be null |
|
subMerchantName |
String |
Sub merchant name |
|
cardAuthenticationId |
String |
@Must not be null |
Unique identifier for 3ds verification from preAuthentication request |
purchaseAmount |
String |
@Must match the regular expression |
This field contains the purchase amount to be authorized. The transaction amount is to be presented with an implied decimal point. For example, US $10.00 must be represented as 1000, and $0.10 is likewise simply 10. The allowable number of significant digits as well as the positioning of any implied decimal point is dictated by the designated PurchaseExponent. This field may not contain a negative number. |
purchaseCurrency |
String |
@Must not be null |
Currency for transaction (in accordance with 3-digit ISO-4217), example: USD |
threeDSMethodData |
String |
@Must not be empty |
Response data from a hidden form from the Pre Authentication. If threeDSMethodURL is empty set threeDSMethodData |
methodCompletionIndicator |
String |
@Must not be null |
Y if response from hidden form from Pre Authentication is under 10s, N if response from hidden form from Pre Authentication is over 10s, U if threeDSMethodURL is empty |
protocolVersion |
String |
@Must not be empty |
This field indicates the protocol version. It is recommended to use 2.2.0 if the card supports it. You will get it from the Pre Authentication method. |
notificationUrl |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This property specifies the URL to which the final challenge response is POSTed. |
requestorChallengeInd |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
Indicates whether a challenge is requested for this transaction. For authenticationType PAYMENT possible values are: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED_MANDATE, CHALLENGE_REQUESTED_3DS_REQUESTOR_PREFERENCE For authenticationType ADD_CARD, VERIFY_CARDHOLDER, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL possible values are: CHALLENGE_REQUESTED_MANDATE, CHALLENGE_REQUESTED_3DS_REQUESTOR_PREFERENCE |
authenticationType |
String |
@Must not be null |
Authentication Type configuration prepared for specific type. Possible values are: Non payment authentication - Identity verification and account confirmation: ADD_CARD VERIFY_CARDHOLDER Payment authentication - Cardholder authentication during an e-commerce transaction: PAYMENT COF_INITIAL INSTALLMENT_PAYMENT RECURRING_INITIAL 3DS Requestor Initiated (only for protocolVersion 2.2.0) - Confirmation of account information and Cardholder authentication with no direct Cardholder present. For example, a subscription-based e-commerce merchant confirming that an account is still valid: MOTO RECURRING_SUBSEQUENT |
challengeWindowSize |
String |
Max length: 2048. Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL. |
This field indicates the dimensions of the challenge window that has been displayed to the cardholder. The ACS shall reply with content that is formatted to appropriately render in this window to provide the best possible user experience. Preconfigured sizes are width x height in pixels of the window displayed in the cardholder browser. Possible values are:S_250X400 S_390X400 S_500X600 S_600X400 FULL_SCREEN This value is included in the Challenge Request Message (CReq) |
browserAcceptHeader |
String |
Max length: 2048. Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL. |
This field contains the exact content of the HTTP accept header as sent to the merchant from the cardholder’s user agent. This field is required only if the cardholder’s user agent supplied a value. e.g Accept: application/json |
browserLanguage |
String |
Min length: 1, Max length: 35 Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the cardholder’s browser language as defined in IETF BCP 47. |
browserScreenHeight |
String |
Regexp: ^[0-9]{1,6}$ Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the total height of the cardholder’s screen in pixels. |
browserScreenWidth |
String |
Regexp: ^[0-9]{1,6}$ Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the total width of the cardholder’s screen in pixels. |
browserTimeZone |
String |
Regexp: ^[+-]?[0-9]{1,4}$ Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the difference between UTC time and the cardholder’s browser local time in minutes. |
browserUserAgent |
String |
Max length: 2048 Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the exact content of the HTTP User-Agent header. |
browserJavaEnabledVal |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains a value representing the ability of the cardholder’s browser to execute Java. Enumerated values: NOT_PRESENT, ENABLED, DISABLED. Required if browserJavascriptEnabled is true |
cardholderHomePhone |
String |
Optional. Must match regex \d{1,3}-[1-9]\d{1,14}$ |
This field contains the home phone number provided by the cardholder. Phone numbers must be specified in the following format: CountryCode-Subscriber (e.g. 1-1234567899) |
cardholderMobilePhone |
String |
Optional. Must match regex \d{1,3}-[1-9]\d{1,14}$ |
This field contains the mobile phone number provided by the cardholder. Phone numbers must be specified in the following format: CountryCode-Subscriber (e.g. 1-1234567899) |
cardholderWorkPhone |
String |
Optional. Must match regex \d{1,3}-[1-9]\d{1,14}$ |
This field contains the work phone number provided by the cardholder. Phone numbers must be specified in the following format: CountryCode-Subscriber (e.g. 1-1234567899) |
browserIPAddress |
String |
@Must not be null, Max length: 45Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the IP address of the cardholder’s browser as returned by the HTTP headers. |
browserJavaScriptEnabled |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains a value representing the ability of the cardholder’s browser to execute JavaScript. Enumerated values: ENABLED, DISABLED. |
browserScreenColorDepth |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains a value representing the bit depth of the color palette, in bits per pixel, for displaying images. Obtained from Cardholder browser using the screen.colorDepth property. Values accepted: 1 = 1 bit, 4 = 4 bits, 8 = 8 bits, 15 = 15 bits, 16 = 16 bits, 24 = 24 bits, 32 = 32 bits, 48 = 48 bits |
cardholderBillingAddressCountry |
String |
@Max length: 3 Required if Cardholder Billing Address State is present. |
The country of the Cardholder billing address associated with the card used for this purchase. Shall be the ISO 3166-1 alfa-2 country code, other than exceptions listed in Table A.5. |
cardholderBillingAddressState |
String |
@Max length: 3 |
Country subdivision code defined in ISO 3166-2. For example, using the ISO entry US-CA (California, United States), the correct value for this field = CA. Note that the country and hyphen are not included in this value. |
cardholderBillingAddressCity |
String |
@Max length: 50 |
The city of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressLine1 |
String |
@Max length: 50 |
First line of the street address or equivalent local portion of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressLine2 |
String |
@Max length: 50 |
Second line of the street address or equivalent local portion of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressLine3 |
String |
@Max length: 50 |
Third line of the street address or equivalent local portion of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressPostalCode |
String |
@Max length: 16 |
ZIP or other postal code of the Cardholder billing address associated with the card used for this purchase. |
tokenUuid |
String |
Tokenized card uuid. Unique tokenized card identifier corresponding to token. Required to obtain tokenized card information such as token PAN |
|
cardholderName |
String |
@Length must be between 2 and 45 inclusive, @Must not be empty |
This property contains the name of the cardholder. Name of the Cardholder. Must be ASCII characters. This is required to be set unless market or regional mandates restricts sending this information. |
POST /client/3ds/authentication HTTP/1.1
Authorization: Basic VXNlcjpQYXNzd29yZA==
Content-Type: application/json
Content-Length: 1788
Host: ecom-staging.fenige.pl
{
"terminalUuid" : "32d444e3-e9d0-4367-ab14-cf6a2f78e46e",
"cardAuthenticationId" : "d6477338-fad0-4b4a-ad91-4bfd158d78f1",
"threeDSMethodData" : "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiSFRUUDQwYjgyNDQ3LTE0ODUtNDUwZi04ZGYxLTdhNGQwYmRiMWMzYiIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiNDE1MDQzY2UtYTNhMC00ODBjLTk0YTYtNzk2NGEzYTcxNWI2In0",
"methodCompletionIndicator" : "Y",
"cardNumber" : "5430149160516930",
"cardExpirationDate" : "12/26",
"cardholderName" : "John",
"purchaseAmount" : "123",
"purchaseCurrency" : "PLN",
"challengeWindowSize" : "S_250X400",
"browserAcceptHeader" : "Accept: application/json",
"browserLanguage" : "PL",
"browserScreenHeight" : "1500",
"browserScreenWidth" : "1500",
"browserTimeZone" : "60",
"browserUserAgent" : "Mozilla/5.0",
"browserScreenColorDepth" : "24",
"cardholderEmail" : "john@example.com",
"cardholderHomePhone" : "1-1234567899",
"cardholderMobilePhone" : "1-1234567899",
"cardholderWorkPhone" : "48-1234567899",
"browserIPAddress" : "77.55.135.220",
"browserJavaEnabledVal" : "ENABLED",
"browserJavaScriptEnabled" : "ENABLED",
"recurringExpDate" : "20210815",
"recurringFrequency" : "30",
"recurringInitialTransactionXId" : "0e4243a9-e127-448b-a7eb-37d74d4e6a62",
"notificationUrl" : "notificationUrl.com",
"authenticationType" : "RECURRING_INITIAL",
"requestorChallengeInd" : "CHALLENGE_REQUESTED_MANDATE",
"protocolVersion" : "2.2.0",
"cardholderBillingAddressCountry" : "US",
"cardholderBillingAddressState" : "CA",
"cardholderBillingAddressCity" : "Los Angeles",
"cardholderBillingAddressLine1" : "4101 Supreme ct",
"cardholderBillingAddressLine2" : "Chestnut Ave",
"cardholderBillingAddressLine3" : "W 225TH ST",
"cardholderBillingAddressPostalCode" : "90032-2537"
}
Path | Type | Constraints | Description |
---|---|---|---|
terminalUuid |
String |
Terminal uuid. One of parameters merchantUuid or terminalUuid must not be null |
|
cardAuthenticationId |
String |
@Must not be null |
Unique identifier for 3ds verification from preAuthentication request |
cardNumber |
String |
Card number length must be between 12 and 19, @Must not be blank, @Must not be null or card id must be present |
Card number |
cardExpirationDate |
String |
@Length must be 5, @Must not be null or card id must be present |
Expiration date of card mm/yy |
cardholderName |
String |
@Length must be between 2 and 45 inclusive, |
This property contains the name of the cardholder. Name of the Cardholder. Must be ASCII characters. This is required to be set unless market or regional mandates restricts sending this information. |
purchaseAmount |
String |
@Must match the regular expression |
This field contains the purchase amount to be authorized. The transaction amount is to be presented with an implied decimal point. For example, US $10.00 must be represented as 1000, and $0.10 is likewise simply 10. The allowable number of significant digits as well as the positioning of any implied decimal point is dictated by the designated PurchaseExponent. This field may not contain a negative number. |
purchaseCurrency |
String |
@Must not be null |
Currency for transaction (in accordance with 3-digit ISO-4217), example: USD |
threeDSMethodData |
String |
@Must not be empty |
Response data from a hidden form from the Pre Authentication. If threeDSMethodURL is empty set threeDSMethodData |
methodCompletionIndicator |
String |
@Must not be null |
Y if response from hidden form from Pre Authentication is under 10s, N if response from hidden form from Pre Authentication is over 10s, U if threeDSMethodURL is empty |
protocolVersion |
String |
@Must not be empty |
This field indicates the protocol version. It is recommended to use 2.2.0 if the card supports it. You will get it from the Pre Authentication method. |
notificationUrl |
String |
Max length: 256Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This property specifies the URL to which the final challenge response is POSTed. |
requestorChallengeInd |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
Indicates whether a challenge is requested for this transaction. For authenticationType PAYMENT possible values are: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED_MANDATE, CHALLENGE_REQUESTED_3DS_REQUESTOR_PREFERENCE For authenticationType ADD_CARD, VERIFY_CARDHOLDER, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL possible values are: CHALLENGE_REQUESTED_MANDATE, CHALLENGE_REQUESTED_3DS_REQUESTOR_PREFERENCE |
challengeWindowSize |
String |
Optional |
This field indicates the dimensions of the challenge window that has been displayed to the cardholder. The ACS shall reply with content that is formatted to appropriately render in this window to provide the best possible user experience. Preconfigured sizes are width x height in pixels of the window displayed in the cardholder browser. Possible values are:S_250X400 S_390X400 S_500X600 S_600X400 FULL_SCREEN This value is included in the Challenge Request Message (CReq) |
authenticationType |
String |
@Must not be null |
Authentication Type configuration prepared for specific type. Possible values are: Non payment authentication - Identity verification and account confirmation: ADD_CARD VERIFY_CARDHOLDER Payment authentication - Cardholder authentication during an e-commerce transaction: PAYMENT COF_INITIAL INSTALLMENT_PAYMENT RECURRING_INITIAL 3DS Requestor Initiated (only for protocolVersion 2.2.0) - Confirmation of account information and Cardholder authentication with no direct Cardholder present. For example, a subscription-based e-commerce merchant confirming that an account is still valid: MOTO RECURRING_SUBSEQUENT |
browserAcceptHeader |
String |
Max length: 2048. Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL. |
This field contains the exact content of the HTTP accept header as sent to the merchant from the cardholder’s user agent. This field is required only if the cardholder’s user agent supplied a value. e.g Accept: application/json |
browserLanguage |
String |
Min length: 1, Max length: 35 Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the cardholder’s browser language as defined in IETF BCP 47. |
browserScreenHeight |
String |
Regexp: ^[0-9]{1,6}$ Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the total height of the cardholder’s screen in pixels. |
browserScreenWidth |
String |
Regexp: ^[0-9]{1,6}$ Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the total width of the cardholder’s screen in pixels. |
browserTimeZone |
String |
Regexp: ^[+-]?[0-9]{1,4}$ Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the difference between UTC time and the cardholder’s browser local time in minutes. |
browserUserAgent |
String |
Max length: 2048 Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the exact content of the HTTP User-Agent header. |
browserJavaEnabledVal |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains a value representing the ability of the cardholder’s browser to execute Java. Enumerated values: NOT_PRESENT, ENABLED, DISABLED. Required if browserJavascriptEnabled is true |
cardholderEmail |
String |
Optional, Max length: 256, must not be null if cardholderMobilePhone or cardholderHomePhone or cardholderMobilePhone is null only for VISA |
This field contains the cardholder email address. |
cardholderHomePhone |
String |
Optional. Must match regex \d{1,3}-[1-9]\d{1,14}$, must not be null if cardholderEmail or cardholderMobilePhone or cardholderMobilePhone is null only for VISA |
This field contains the home phone number provided by the cardholder. Phone numbers must be specified in the following format: CountryCode-Subscriber (e.g. 1-1234567899) |
cardholderMobilePhone |
String |
Optional. Must match regex \d{1,3}-[1-9]\d{1,14}$, must not be null if cardholderEmail or cardholderHomePhone or cardholderWorkPhone is null only for VISA |
This field contains the mobile phone number provided by the cardholder. Phone numbers must be specified in the following format: CountryCode-Subscriber (e.g. 1-1234567899) |
cardholderWorkPhone |
String |
Optional. Must match regex \d{1,3}-[1-9]\d{1,14}$, must not be null if cardholderEmail or cardholderHomePhone or cardholderMobilePhone is null only for VISA |
This field contains the work phone number provided by the cardholder. Phone numbers must be specified in the following format: CountryCode-Subscriber (e.g. 1-1234567899) |
browserIPAddress |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the IP address of the cardholder’s browser as returned by the HTTP headers. |
browserJavaScriptEnabled |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains a value representing the ability of the cardholder’s browser to execute JavaScript. Enumerated values: ENABLED, DISABLED. |
browserScreenColorDepth |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains a value representing the bit depth of the color palette, in bits per pixel, for displaying images. Obtained from Cardholder browser using the screen.colorDepth property. Values accepted: 1 = 1 bit, 4 = 4 bits, 8 = 8 bits, 15 = 15 bits, 16 = 16 bits, 24 = 24 bits, 32 = 32 bits, 48 = 48 bits |
recurringExpDate |
String |
@Must not be null only for authenticationType = RECURRING_INITIAL |
This field contains the date after which no further authorizations shall be performed. The format of this field must be: YYYYMMDD |
recurringFrequency |
String |
@Must not be null only for authenticationType = RECURRING_INITIAL |
The number of days between recurring payments. This field indicates the minimum number of days between authorizations. |
recurringInitialTransactionXId |
String |
@Must not be null only for authenticationType = RECURRING_SUBSEQUENT |
This field indicates the transactionXid from recurring initial authentication. |
cardholderBillingAddressCountry |
String |
@Max length: 3 Required if Cardholder Billing Address State is present. |
The country of the Cardholder billing address associated with the card used for this purchase. Shall be the ISO 3166-1 alfa-2 country code, other than exceptions listed in Table A.5. |
cardholderBillingAddressState |
String |
@Max length: 3 |
Country subdivision code defined in ISO 3166-2. For example, using the ISO entry US-CA (California, United States), the correct value for this field = CA. Note that the country and hyphen are not included in this value. |
cardholderBillingAddressCity |
String |
@Max length: 50 |
The city of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressLine1 |
String |
@Max length: 50 |
First line of the street address or equivalent local portion of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressLine2 |
String |
@Max length: 50 |
Second line of the street address or equivalent local portion of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressLine3 |
String |
@Max length: 50 |
Third line of the street address or equivalent local portion of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressPostalCode |
String |
@Max length: 16 |
ZIP or other postal code of the Cardholder billing address associated with the card used for this purchase. |
POST /client/3ds/authentication HTTP/1.1
Authorization: Basic VXNlcjpQYXNzd29yZA==
Content-Type: application/json
Content-Length: 1668
Host: ecom-staging.fenige.pl
{
"terminalUuid" : "b86a0c23-92b0-4bb7-8f4b-e47a99f7ef17",
"cardAuthenticationId" : "fe97c4a7-d2fb-4c2b-841f-8a7ef8485737",
"threeDSMethodData" : "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiSFRUUDQwYjgyNDQ3LTE0ODUtNDUwZi04ZGYxLTdhNGQwYmRiMWMzYiIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiNDE1MDQzY2UtYTNhMC00ODBjLTk0YTYtNzk2NGEzYTcxNWI2In0",
"methodCompletionIndicator" : "Y",
"cardNumber" : "5430149160516930",
"cardExpirationDate" : "12/26",
"cardholderName" : "John",
"purchaseAmount" : "123",
"purchaseCurrency" : "PLN",
"challengeWindowSize" : "S_250X400",
"browserAcceptHeader" : "Accept: application/json",
"browserLanguage" : "PL",
"browserScreenHeight" : "1500",
"browserScreenWidth" : "1500",
"browserTimeZone" : "60",
"browserUserAgent" : "Mozilla/5.0",
"browserScreenColorDepth" : "24",
"cardholderEmail" : "john@example.com",
"cardholderHomePhone" : "1-1234567899",
"cardholderMobilePhone" : "1-1234567899",
"cardholderWorkPhone" : "48-1234567899",
"browserIPAddress" : "77.55.135.220",
"browserJavaEnabledVal" : "ENABLED",
"browserJavaScriptEnabled" : "ENABLED",
"instalmentPaymentData" : "6",
"notificationUrl" : "notificationUrl.com",
"authenticationType" : "PAYMENT",
"requestorChallengeInd" : "CHALLENGE_REQUESTED_MANDATE",
"protocolVersion" : "2.2.0",
"cardholderBillingAddressCountry" : "US",
"cardholderBillingAddressState" : "CA",
"cardholderBillingAddressCity" : "Los Angeles",
"cardholderBillingAddressLine1" : "4101 Supreme ct",
"cardholderBillingAddressLine2" : "Chestnut Ave",
"cardholderBillingAddressLine3" : "W 225TH ST",
"cardholderBillingAddressPostalCode" : "90032-2537"
}
Path | Type | Constraints | Description |
---|---|---|---|
terminalUuid |
String |
Terminal uuid. One of parameters merchantUuid or terminalUuid must not be null |
|
cardAuthenticationId |
String |
@Must not be null |
Unique identifier for 3ds verification from preAuthentication request |
cardNumber |
String |
Card number length must be between 12 and 19, @Must not be blank, @Must not be null or card id must be present |
Card number |
cardExpirationDate |
String |
@Length must be 5, @Must not be null or card id must be present |
Expiration date of card mm/yy |
cardholderName |
String |
@Length must be between 2 and 45 inclusive, |
This property contains the name of the cardholder. Name of the Cardholder. Must be ASCII characters. This is required to be set unless market or regional mandates restricts sending this information. |
purchaseAmount |
String |
@Must match the regular expression |
This field contains the purchase amount to be authorized. The transaction amount is to be presented with an implied decimal point. For example, US $10.00 must be represented as 1000, and $0.10 is likewise simply 10. The allowable number of significant digits as well as the positioning of any implied decimal point is dictated by the designated PurchaseExponent. This field may not contain a negative number. |
purchaseCurrency |
String |
@Must not be null |
Currency for transaction (in accordance with 3-digit ISO-4217), example: USD |
threeDSMethodData |
String |
@Must not be empty |
Response data from a hidden form from the Pre Authentication. If threeDSMethodURL is empty set threeDSMethodData |
methodCompletionIndicator |
String |
@Must not be null |
Y if response from hidden form from Pre Authentication is under 10s, N if response from hidden form from Pre Authentication is over 10s, U if threeDSMethodURL is empty |
protocolVersion |
String |
@Must not be empty |
This field indicates the protocol version. It is recommended to use 2.2.0 if the card supports it. You will get it from the Pre Authentication method. |
notificationUrl |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This property specifies the URL to which the final challenge response is POSTed. |
requestorChallengeInd |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
Indicates whether a challenge is requested for this transaction. For authenticationType PAYMENT possible values are: NO_PREFERENCE, NO_CHALLENGE_REQUESTED, CHALLENGE_REQUESTED_MANDATE, CHALLENGE_REQUESTED_3DS_REQUESTOR_PREFERENCE For authenticationType ADD_CARD, VERIFY_CARDHOLDER, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL possible values are: CHALLENGE_REQUESTED_MANDATE, CHALLENGE_REQUESTED_3DS_REQUESTOR_PREFERENCE |
authenticationType |
String |
@Must not be null |
Authentication Type configuration prepared for specific type. Possible values are: Non payment authentication - Identity verification and account confirmation: ADD_CARD VERIFY_CARDHOLDER Payment authentication - Cardholder authentication during an e-commerce transaction: PAYMENT COF_INITIAL INSTALLMENT_PAYMENT RECURRING_INITIAL 3DS Requestor Initiated (only for protocolVersion 2.2.0) - Confirmation of account information and Cardholder authentication with no direct Cardholder present. For example, a subscription-based e-commerce merchant confirming that an account is still valid: MOTO RECURRING_SUBSEQUENT |
challengeWindowSize |
String |
Optional |
This field indicates the dimensions of the challenge window that has been displayed to the cardholder. The ACS shall reply with content that is formatted to appropriately render in this window to provide the best possible user experience. Preconfigured sizes are width x height in pixels of the window displayed in the cardholder browser. Possible values are:S_250X400 S_390X400 S_500X600 S_600X400 FULL_SCREEN This value is included in the Challenge Request Message (CReq) |
browserAcceptHeader |
String |
Max length: 2048. Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL. |
This field contains the exact content of the HTTP accept header as sent to the merchant from the cardholder’s user agent. This field is required only if the cardholder’s user agent supplied a value. e.g Accept: application/json |
browserLanguage |
String |
Min length: 1, Max length: 35 Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the cardholder’s browser language as defined in IETF BCP 47. |
browserScreenHeight |
String |
Regexp: ^[0-9]{1,6}$ Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the total height of the cardholder’s screen in pixels. |
browserScreenWidth |
String |
Regexp: ^[0-9]{1,6}$ Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the total width of the cardholder’s screen in pixels. |
browserTimeZone |
String |
Regexp: ^[+-]?[0-9]{1,4}$ Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the difference between UTC time and the cardholder’s browser local time in minutes. |
browserUserAgent |
String |
Max length: 2048 Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the exact content of the HTTP User-Agent header. |
browserJavaEnabledVal |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains a value representing the ability of the cardholder’s browser to execute Java. Enumerated values: NOT_PRESENT, ENABLED, DISABLED. Required if browserJavascriptEnabled is true |
cardholderEmail |
String |
Optional, Max length: 256, must not be null if cardholderMobilePhone or cardholderHomePhone or cardholderMobilePhone is null only for VISA |
This field contains the cardholder email address. |
cardholderHomePhone |
String |
Optional. Must match regex \d{1,3}-[1-9]\d{1,14}$, must not be null if cardholderEmail or cardholderMobilePhone or cardholderMobilePhone is null only for VISA |
This field contains the home phone number provided by the cardholder. Phone numbers must be specified in the following format: CountryCode-Subscriber (e.g. 1-1234567899) |
cardholderMobilePhone |
String |
Optional. Must match regex \d{1,3}-[1-9]\d{1,14}$, must not be null if cardholderEmail or cardholderHomePhone or cardholderWorkPhone is null only for VISA |
This field contains the mobile phone number provided by the cardholder. Phone numbers must be specified in the following format: CountryCode-Subscriber (e.g. 1-1234567899) |
cardholderWorkPhone |
String |
Optional. Must match regex \d{1,3}-[1-9]\d{1,14}$, must not be null if cardholderEmail or cardholderHomePhone or cardholderMobilePhone is null only for VISA |
This field contains the work phone number provided by the cardholder. Phone numbers must be specified in the following format: CountryCode-Subscriber (e.g. 1-1234567899) |
browserIPAddress |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains the IP address of the cardholder’s browser as returned by the HTTP headers. |
browserJavaScriptEnabled |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains a value representing the ability of the cardholder’s browser to execute JavaScript. Enumerated values: ENABLED, DISABLED. |
browserScreenColorDepth |
String |
Required for authenticationType: ADD_CARD, VERIFY_CARDHOLDER, PAYMENT, INSTALLMENT_PAYMENT, COF_INITIAL, RECURRING_INITIAL |
This field contains a value representing the bit depth of the color palette, in bits per pixel, for displaying images. Obtained from Cardholder browser using the screen.colorDepth property. Values accepted: 1 = 1 bit, 4 = 4 bits, 8 = 8 bits, 15 = 15 bits, 16 = 16 bits, 24 = 24 bits, 32 = 32 bits, 48 = 48 bits |
instalmentPaymentData |
String |
@Must not be null only for authenticationType = INSTALLMENT_PAYMENT |
Max authorizations permitted for installment payments Indicates maximum number of authorizations permitted for installment payments. Required in AReq messages if the Merchant and Cardholder have agree to installment payments ( authenticationType = INSTALLMENT_PAYMENT). Value must be greater than 1. |
cardholderBillingAddressCountry |
String |
@Max length: 3 Required if Cardholder Billing Address State is present. |
The country of the Cardholder billing address associated with the card used for this purchase. Shall be the ISO 3166-1 alfa-2 country code, other than exceptions listed in Table A.5. |
cardholderBillingAddressState |
String |
@Max length: 50 |
Country subdivision code defined in ISO 3166-2. For example, using the ISO entry US-CA (California, United States), the correct value for this field = CA. Note that the country and hyphen are not included in this value. |
cardholderBillingAddressCity |
String |
@Max length: 3 |
The city of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressLine1 |
String |
@Max length: 50 |
First line of the street address or equivalent local portion of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressLine2 |
String |
@Max length: 50 |
Second line of the street address or equivalent local portion of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressLine3 |
String |
@Max length: 50 |
Third line of the street address or equivalent local portion of the Cardholder billing address associated with the card used for this purchase. |
cardholderBillingAddressPostalCode |
String |
@Max length: 16 |
ZIP or other postal code of the Cardholder billing address associated with the card used for this purchase. |
8.2.2. Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 221
{
"transactionStatus" : "A",
"transactionXId" : "3ff8ce6a-7d8d-400d-8e87-410726e686f8",
"cavv" : "B5gQCElHgQAAAAAKmFNEdQAAAAA=",
"eci" : "06",
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Indicates whether a transaction qualifies as an authenticated transaction or account verification. Possible values are: Y Authentication/account verification successful. N Not authenticated/account not verified; transaction denied. U Authentication/account verification could not be performed; technical or other problem as indicated in ARes or RReq. A Attempts processing performed; not authenticated/verified, but a proof of attempted authentication/verification is provided. C Challenge required; additional authentication is required using the CReq/CRes. R Authentication/account verification rejected; issuer is rejecting authentication/verification and request that authorization not be attempted. D Challenge required; decoupled authentication confirmed. I Informational only; 3DS Requestor challenge preference acknowledged. Note: The CRes message can contain only a value of Y or N. Values of D and I are only applicable for 3DS version 2.2.0. |
|
|
Server transaction Id generated by DS |
|
|
This property is determined by the Access Control Server (ACS), and is filled after the call to SendAuthRequest (for a frictionless flow), or when the Results Request Message (RReq) is parsed using CheckResponse (for a challenge flow). This property will be valid if the TransactionStatus is "Y" or "A". The value may be used to provide proof of authentication. |
|
|
This property is determined by the Access Control Server (ACS), and is filled after the call to SendAuthRequest (for a frictionless flow), or when the Results Request Message (RReq) is parsed using CheckResponse (for a challenge flow). This property contains the two digit Electronic Commerce Indicator (ECI) value, which is to be submitted in a credit card authorization message. This value indicates to the processor that the customer data in the authorization message has been authenticated. The data contained within this property is only valid if the TransactionStatus is "Y" or "A". |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 718
{
"transactionStatus" : "C",
"acsurl" : "acsurl.com",
"creq" : "c29tZSBjcmVx",
"challengeHtmlFormBase64" : "PGh0bWw+PFNDUklQVCBMQU5HVUFHRT0iSmF2YXNjcmlwdCI+ZnVuY3Rpb24gT25Mb2FkRXZlbnQoKXsgZG9jdW1lbnQuZG93bmxvYWRGb3JtLnN1Ym1pdCgpOyB9PC9TQ1JJUFQ+PGJvZHkgT25Mb2FkPSJPbkxvYWRFdmVudCgpOyI+PGZvcm0gbmFtZT0iZG93bmxvYWRGb3JtIiBhY3Rpb249Imh0dHBzOi8vYWNzdGVzdC5jb20iIG1ldGhvZD0iUE9TVCI+PElOUFVUIHR5cGU9ImhpZGRlbiIgbmFtZT0iY3JlcSIgdmFsdWU9ImNyZXEiPjxJTlBVVCB0eXBlPSJoaWRkZW4iIG5hbWU9InRocmVlRFNTZXNzaW9uRGF0YSIgdmFsdWU9InNvbWVFbmNvZGVkRGF0ZSI+PC9mb3JtPjwvYm9keT48L2h0bWw+",
"threeDSSessionData" : "ZGY0NDJhODQtOGJkZS00MmQ3LWExMTUtMzUyNjNlZGY1MGFk",
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Indicates whether a transaction qualifies as an authenticated transaction or account verification. Possible values are: Y Authentication/account verification successful. N Not authenticated/account not verified; transaction denied. U Authentication/account verification could not be performed; technical or other problem as indicated in ARes or RReq. A Attempts processing performed; not authenticated/verified, but a proof of attempted authentication/verification is provided. C Challenge required; additional authentication is required using the CReq/CRes. R Authentication/account verification rejected; issuer is rejecting authentication/verification and request that authorization not be attempted. D Challenge required; decoupled authentication confirmed. I Informational only; 3DS Requestor challenge preference acknowledged. Note: The CRes message can contain only a value of Y or N. Values of D and I are only applicable for 3DS version 2.2.0. |
|
|
ACS Url - if challenge is required, data for building a form such as challengeHtmlFormBase64 |
|
|
creq - if challenge is required, data for building a form such as challengeHtmlFormBase64 |
|
|
This field is a BASE64 encrypted html source file containing the challenge 3-D Secure frame |
|
|
This field is a BASE64 encrypted cardAuthenticationId you can add this to challenge form to correlate notification |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:44:23 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "afec24f5-a531-4216-94d7-ed1966aab6c4"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json
{
"errorCode": "E1010",
"errorCodeDetails": "Protocol version is not supported",
"status": "E0309",
"message": "Protocol version is not supported",
"httpStatus": "UNPROCESSABLE_ENTITY",
"traceId": "2a3129b7-c6bb-4a8a-bd5c-d739246ec05d"
}
Path | Type | Description |
---|---|---|
|
|
Response code for 3ds from Fenige system |
|
|
Extended response code |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 500 Internal Server Error
Content-Type: application/json
{
"status": "E0300",
"message": "Error mpi V2 - failed internal",
"httpStatus": "INTERNAL_SERVER_ERROR",
"traceId": "2a3129b7-c6bb-4a8a-bd5c-d739246ec05d"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 503 Service Unavailable
Content-Type: application/json
{
"status": "E9002",
"message": "Error mpi connection",
"httpStatus": "SERVICE_UNAVAILABLE",
"traceId": "dcf1ba46-67a8-4570-847f-4ec4fa90a6c5"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
8.3. Authentication Details
Method return details for authentication.
Success 3-D Secure Authentication. MPI return status: Y (Full Authentication) - The customer was successfully authenticated. Attempt 3-D Secure Authentication. MPI return status: A (Successful Attempted Authentication) - Authentication was not available, but functionality was available to generate a proof of authentication attempt. Challenge required C Cardholder challenge required. D Challenge required; decoupled authentication confirmed. Information only I Informational only; 3DS Requestor challenge preference acknowledged. Error 3-D Secure Authentication results. MPI return one of statuses: N (Authentication Failed) - The customer failed authentication, and the transaction is denied. The cardholder’s password (or other authentication information) failed validation, thus, the issuer is not able to authenticate the cardholder. U (Unable to Complete Authentication) - Authentication could not be performed due to technical or other problems. R Not authenticated because the issuer is rejecting authentication.
8.3.1. Request
GET /client/3ds/details/73913405-1eba-4f36-ad3f-332b882dc6ab HTTP/1.1
Authorization: Basic VXNlcjpQYXNzd29yZA==
Host: ecom-staging.fenige.pl
Parameter | Description |
---|---|
|
Unique identifier for 3ds verification |
8.3.2. Response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 410
{
"cardAuthenticationId" : "a08c1044-2e1e-4b50-97d0-03329f64c4b0",
"provider" : "MASTERCARD",
"transactionStatus" : "Y",
"cardAuthenticationStatus" : "AUTHENTICATION_FINISHED",
"transactionXId" : "390acebe-e26f-4bdc-b96e-79926841b2bf",
"cavv" : "jEu04WZns7pbARAApU4qgNdJTag",
"eci" : "01",
"transactionStatusReason" : "04",
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK"
}
Path | Type | Description |
---|---|---|
|
|
Unique identifier for 3ds verification |
|
|
Provider |
|
|
Provides information on why the Transaction Status field has the specified value. For MessageCategory 01 (PA), always included when TransactionStatus = N, U, or R. For MessageCategory 02 (NPA), as defined by the DS. Possible values are: 01 - Card authentication failed, 02 - Unknown device, 03 - Unsupported device, 04 - Exceeds authentication frequency limit, 05 - Expired card, 06 - Invalid card number, 07 - Invalid transaction, 08 - No Card record, 09 - Security failure, 10 - Stolen card, 11 - Suspected fraud, 12 - Transaction not permitted to cardholder, 13 - Cardholder not enrolled in service, 14 - Transaction timed out at the ACS, 15 - Low confidence, 16 - Medium confidence, 17 - High confidence, 18 - Very high confidence, 19 - Exceeds ACS maximum challenges, 20 - Non-Payment transaction non supported, 21 - 3RI transaction not supported, 22 - ACS technical issue, 23 - Decoupled Authentication required by ACS but not requested by 3DS Requestor, 24 - 3DS Requestor Decoupled Max Expiry Time exceeded, 25 - Decoupled Authentication was provided insufficient time to authenticate cardholder. ACS will not make attempt, 26 - Authentication attempted but not performed by the cardholder, 27-79 - Reserved for future EMVCo use (values invalid until defined by EMVCo), 80-99 - Reserved for DS use Field may be null |
|
|
Card authentication statusPossible values are: INITIALIZED, PREAUTHENTICATION_INITIATED, PREAUTHENTICATION_CONFIRMED, AUTHENTICATION_REJECTED, AUTHENTICATION, AUTHENTICATION_FINISHED |
|
|
Indicates whether a transaction qualifies as an authenticated transaction or account verification. Possible values are: Y Authentication/account verification successful. N Not authenticated/account not verified; transaction denied. U Authentication/account verification could not be performed; technical or other problem as indicated in ARes or RReq. A Attempts processing performed; not authenticated/verified, but a proof of attempted authentication/verification is provided. C Challenge required; additional authentication is required using the CReq/CRes. R Authentication/account verification rejected; issuer is rejecting authentication/verification and request that authorization not be attempted. D Challenge required; decoupled authentication confirmed. I Informational only; 3DS Requestor challenge preference acknowledged. Note: The CRes message can contain only a value of Y or N. Values of D and I are only applicable for 3DS version 2.2.0. |
|
|
Server transaction Id generated by DS |
|
|
This property is determined by the Access Control Server. This property will be valid if the TransactionStatus is "Y" or "A". The value may be used to provide proof of authentication. |
|
|
This property is determined by the Access Control Server. This property contains the two digit Electronic Commerce Indicator (ECI) value, which is to be submitted in a credit card authorization message. This value indicates to the processor that the customer data in the authorization message has been authenticated. The data contained within this property is only valid if the TransactionStatus is "Y" or "A". |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
9. BLIK
General information
BLIK payments are a fast, convenient and secure method of making online transactions.
Customers increasingly appreciate such modern conveniences.
So give them the opportunity to use them on an everyday basis.
Be an entrepreneur who cares about the convenience of his customers and implements solutions to improve the shopping process.
How does it work
Customer choose the BLIK payment method, in order to complete the transaction he has to provide a BLIK code from bank application.
The BLIK code is a one-off, 6-digit code, it is valid for 2 minutes.
After that time, new one has to be generated.
When code is provide it has to be also confirmed in bank app and that ends the transaction.
9.1. BLIK Payment
9.1.1. Overview
General information
BLIK is the simplest and most popular type of integration.
Errors and retries of transaction are handled by BLIK.
Merchants use BLIK payment form instead of implementing their own.
Example BLIK payment form
For development purposes, please note the following special rule for BLIK codes: Use codes that begin with "777 xxx", to process payment successfully. For codes that begin with any other number, the transaction will be rejected.
9.1.2. Request
POST /client/payments/blik HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 587
Host: ecom-staging.fenige.pl
{
"requestUuid" : "8c1a1400-0a4f-41b9-9ad6-d9fa71cc3d02",
"firstName" : "test",
"lastName" : "testUser",
"email" : "test@fenige.pl",
"amount" : 1000,
"currency" : "PLN",
"firstDescriptionLine" : "Shop description",
"secondDescriptionLine" : "Second line of description",
"thirdDescriptionLine" : "Third line of description",
"fourthDescriptionLine" : "https://ecom-staging.fenige.pl/",
"redirectUrlAuthorized" : "https://ecom-staging.fenige.pl/",
"redirectUrlDenied" : "https://ecom-staging.fenige.pl/",
"merchantUuid" : "f5f9cc2a-a589-424c-b954-140b88fe819a"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
firstName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
First name of customer |
lastName |
String |
@Length must be between 2 and 35, @Must match the regular expression |
Last name of customer |
String |
Optional field, @Length(min = 1, max = 128) |
Customer’s email |
|
amount |
Number |
@Must be at least 100, @Must not be null |
The total transfer amount (in pennies) |
currency |
String |
@NotNull @Must be PLN |
Currency for transaction (in accordance with ISO-4217), example: USD |
redirectUrlAuthorized |
String |
@Must be a well-formed URL, @Must not be null |
User redirect URL after the transaction is authorized. |
redirectUrlDenied |
String |
@Must be a well-formed URL, @Must not be null |
User redirect URL after the transaction is denied. |
firstDescriptionLine |
String |
@Length must be between 1 and 35 inclusive, @Must not be blank |
Description for order. It will be displayed on the BLIK website. 4 lines of description can be provided |
secondDescriptionLine |
String |
@Length must be between 1 and 35 inclusive |
Second line of description. |
thirdDescriptionLine |
String |
@Length must be between 1 and 35 inclusive |
Third line of description. |
fourthDescriptionLine |
String |
@Length must be between 1 and 35 inclusive, @Must be a well-formed URL |
Fourth line of description. Should contain shop address. |
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
9.1.3. Response
Status | Description |
---|---|
|
Returned when transaction was successfully authorized. |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0122 - Returned when merchant is not existing. STATUS: E0128 - Returned when sub merchant does not exists. STATUS: E0132 - Returned when terminal is not existing. |
|
STATUS: E01599 - Transaction declined, processing timeout. STATUS: E9000 - Returned when reason is unknown. |
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 1761
{
"status" : "S0002",
"message" : "Success transaction",
"httpStatus" : "OK",
"base64Form" : "PGh0bWw+PFNDUklQVCBMQU5HVUFHRT0iSmF2YXNjcmlwdCI+ZnVuY3Rpb24gT25Mb2FkRXZlbnQoKSB7ZG9jdW1lbnQuZG93bmxvYWRGb3JtLnN1Ym1pdCgpO308L1NDUklQVD48Ym9keSBPbkxvYWQ9Ik9uTG9hZEV2ZW50KCk7Ij48Zm9ybSBuYW1lPSJkb3dubG9hZEZvcm0iIGFjY2VwdC1jaGFyc2V0PSJJU08tODg1OS0yIiBhY3Rpb249Imh0dHBzOi8vMTkzLjI3LjYuMjI1L2JsaWt3ZWIvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb25faW5pdC9zdWJtaXQiIG1ldGhvZD0iUE9TVCI+PElOUFVUIHR5cGU9ImhpZGRlbiIgbmFtZT0iVHlwZSIgdmFsdWU9IklwYXkyIj48SU5QVVQgdHlwZT0iaGlkZGVuIiBuYW1lPSJNZXJjaGFudElEIiB2YWx1ZT0iMTcxOTUiPjxJTlBVVCB0eXBlPSJoaWRkZW4iIG5hbWU9IkN1cnJlbmN5IiB2YWx1ZT0iUExOIj48SU5QVVQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBbW91bnQiIHZhbHVlPSIxMDAwIj48SU5QVVQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDdXN0b21QYXJhbSIgdmFsdWU9Ijg0MGY1ZjYzOGY0OTQwNGZiMGU1OGQwMDU1NTg1NzM4Ij48SU5QVVQgdHlwZT0iaGlkZGVuIiBuYW1lPSJEZXNjcmlwdGlvbiIgdmFsdWU9ImV4YW1wbGV8ZGVzY3JpcHRpb258w7PEhcWbxIfFm8SFfCI+PElOUFVUIHR5cGU9ImhpZGRlbiIgbmFtZT0iVGltZXN0YW1wIiB2YWx1ZT0iMjAyMi0wNi0yOVQxNTo0MDo1OC4zMjIrMDI6MDAiPjxJTlBVVCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik1DQyIgdmFsdWU9IjA3NDIiPjxJTlBVVCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNvbnRyb2xEYXRhIiB2YWx1ZT0iZDkyZjI2MTI1NmQwMWNiNjU4ZWI3MzIwZDczNDE2MjYyOGNhOTViNzRmYWRmY2UxOGFmMDliMDdkOWIwOGNjMCI+PC9mb3JtPjwvYm9keT48L2h0bWw+",
"type" : "Ipay2",
"merchantID" : "17195",
"currency" : "PLN",
"amount" : "1000",
"customParam" : "8c1a14000a4f41b99ad6d9fa71cc3d02",
"description" : "Shop description|Second line of description|Third line of description|Fourth line of description",
"timestamp" : "2022-06-29T15:40:58.322+02:00",
"mcc" : "0742",
"controlData" : "74a0b0d45d60faf2d076567d77f7675cb6613fdcec41be3da8a181d2c55a0a1f",
"requestUuid" : "8c1a1400-0a4f-41b9-9ad6-d9fa71cc3d02"
}
Path | Type | Description |
---|---|---|
|
|
Request unique uuid in system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Response code from Fenige system |
|
|
Amount that will be send to BLIK system |
|
|
Currency that will be send to BLIK system |
|
|
Field that describe when transaction was created. After some time BLIK will not accept this transaction. (global parameter) |
|
|
BLIK transaction type, Fenige defines which should be used. At this moment BLIK supports only Ipay2 |
|
|
Merchant category code |
|
|
Unique transaction identifier |
|
|
Fenige identifier |
|
|
Control data that would be used for BLIK to verify that transaction was made in Fenige |
|
|
Description for order. It will be displayed on the BLIK website. 4 lines of description can be provided and each line has to be separated with | character. |
|
|
HTML page encoded base64 that includes all necessary data that has to be send to BLIK. Page can be simply decoded and used for making transactions. |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:26 GMT
Connection: close
Content-Length: 581
{
"errors" : {
"firstName" : [ "must not be null", "must not be blank" ],
"lastName" : [ "must not be blank", "must not be null" ],
"amount" : [ "must not be null" ],
"redirectUrlAuthorized" : [ "must not be null" ],
"merchantUuid" : [ "must not be null" ],
"requestUuid" : [ "must not be null" ],
"currency" : [ "must not be null" ],
"redirectUrlDenied" : [ "must not be null" ],
"firstDescriptionLine" : [ "must not be blank" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "7cf6adfd-5c55-497d-b51b-13d1188908b7"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:44:26 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "95d21638-e122-49b2-b2ee-7cce9dccc47f"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 403 Forbidden
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 135
Date: Wed, 20 Nov 2024 17:44:26 GMT
{
"status" : "E8001",
"message" : "Forbidden",
"httpStatus" : "FORBIDDEN",
"traceId" : "be21967b-5bf8-4128-b202-f8ce88deee7c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0122",
"message" : "Merchant not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "f8b07626-14c7-4515-9ed3-46a38c18bddb"
}
HTTP/1.1 404 Not Found
Content-Type: application/json
Content-Length: 146
{
"status" : "E0132",
"message" : "Terminal not exists.",
"httpStatus" : "NOT_FOUND",
"traceId" : "ee4dac06-fdbd-4bea-93c1-b422f8a0fcc6"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
|
|
Information about the reasons for declined transactions and actions that merchants can take. Occurs only for mastercard and for declined transactions if Mastercard returns this information |
HTTP/1.1 500 Internal Server Error
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:45:06 GMT
Connection: close
Content-Length: 150
{
"status" : "E9000",
"message" : "Domain error",
"httpStatus" : "INTERNAL_SERVER_ERROR",
"traceId" : "d47125f6-edb2-4ec0-8a61-4ca6581b8482"
}
10. PayByBankAccount
10.1. PayByBankAccount Payment
Method is used to generate PayByBankAccount payment link. Before first use this endpoint needs to be enabled for used PSP in admin panel by Customer Service. The way transaction is initiated depends on terminal configuration in admin panel. This endpoint is idempotent so if you execute more than one request with the same request_uuid even at the same time, only the first registered transaction will be processed further. Once initiated transaction can be refunded once only if it's already in status APPROVED.
10.1.1. Request
POST /client/payments/pay-by-bank-account/initialize HTTP/1.1
Authorization: Basic dXNlcjpwYXNzd29yZA==
Content-Type: application/json
Content-Length: 458
Host: ecom-staging.fenige.pl
{
"merchantUuid" : "dc5f071f-3f8d-4813-90b0-c7d946e8ee6d",
"requestUuid" : "b30781d1-4450-43ad-9131-2413258f50e7",
"amount" : 1000,
"currency" : "EUR",
"email" : "test@fenige.pl",
"firstName" : "user",
"lastName" : "testUser",
"receiverAmount" : 900,
"countryOfResidence" : "DE",
"street" : "Karola Olszewskiego",
"houseNumber" : "10",
"city" : "Lublin",
"postalCode" : "24-110",
"province" : "NY",
"addressIp" : "192.168.1.1"
}
Name | Description |
---|---|
|
Basic auth credentials for PSP |
Path | Type | Constraints | Description |
---|---|---|---|
merchantUuid |
String |
@Must not be null |
Merchant’s unique uuid in system |
requestUuid |
String |
@Must not be null |
Request’s unique uuid in system |
amount |
Number |
@Must be at most 200000000, @Must be positive, @Must not be null |
The total transfer amount (in pennies). |
receiverAmount |
Number |
@Must be at most 200000000, @Must be positive, @Must not be null |
Declared amount. Fenige Information field (in pennies) |
currency |
String |
Only EUR |
Currency for transaction (in accordance with ISO-4217), for now only EUR is enabled |
firstName |
String |
Must match regular expression |
First name of payer |
lastName |
String |
Must match regular expression |
Last name of payer |
String |
Optional field, @Length(min = 1, max = 128) |
Payer’s email |
|
addressIp |
String |
@Optional @Must match the IP address format |
The IP address of the order creator. |
countryOfResidence |
String |
@Must not be null |
Sender country of residence |
city |
String |
@Optional, @Length must be between 0 and 128 inclusive |
Optional sender city |
street |
String |
@Optional, @Length must be between 0 and 128 inclusive |
Optional street name of sender |
province |
String |
@Optional, @Length must be between 0 and 128 inclusive |
Optional USA state or CAN province code of sender |
houseNumber |
String |
@Optional, @Length must be between 0 and 128 inclusive |
Sender house number |
postalCode |
String |
@Optional, @Length must be between 0 and 128 inclusive |
Postal code of sender |
10.1.2. Response
Status | Description |
---|---|
|
Returned when transaction was successfully authorized. |
|
STATUS: E8000 - Returned when request is incorrect, required fields are missing or the values are not valid. |
|
STATUS: E8002 - Returned when you are the problem with authorized to your PSP. |
|
STATUS: E8001 - Returned when server understood the request but refuses to authorize it. |
|
STATUS: E0122 - Returned when merchant is not existing. STATUS: E0128 - Returned when sub merchant does not exists. STATUS: E0132 - Returned when terminal is not existing. STATUS: E0135 - Returned when terminal for merchant not exist or all of them are inactive. STATUS: E0137 - Returned when there is not terminal marked as default |
|
STATUS: E0150 - Returned when transaction is rejected. STATUS: E0151 - Returned when transaction is rejected, because currency is not supported. STATUS: E0152 - Returned when transaction is rejected, because issuer is not supported. STATUS: E01580 - Returned when transaction is rejected, because DataCenter card was expired. STATUS: E0159 - Returned when transaction is rejected, because restricted transaction amount has occurred STATUS: E01596 - Returned when transaction is rejected, because terminal has blocked transaction with card issued in restricted country STATUS: E01601 - Returned when transaction is rejected, because terminal is blocked for provider STATUS: E01602 - Transaction rejected, geographic scope is not permitted for this transaction STATUS: E01607 - Transaction rejected, internal server error during authorization request generation STATUS: E0200 - Returned when transaction is rejected, because card is blocked in Fenige System STATUS: E0201 - Returned when transaction is rejected, because BIN is blocked in Fenige System STATUS: E0202 - Returned when transaction is rejected, because Terminal is blocked in Fenige System STATUS: E0204 - Returned when transaction is rejected, because user’s personal data was found on AML (sanctions) list STATUS: E0205 - Returned when transaction is rejected, because Bank is blocked in Fenige System STATUS: E0206 - Returned when transaction is rejected, because to many reject transactions and card is blocked STATUS: E0207 - Returned when transaction is rejected, bacause to many attempts declined and card is blocked STATUS: E0208 - Transaction rejected, second transaction with merchant advice code 03 or 21 within 30 days STATUS: E0209 - Returned when sender or receiver name contains fraudulent phrase STATUS: E0210 - Returned when sender has suspicious name STATUS: E0211 - Returned when transaction is rejected, because card country is blocked in Fenige System. STATUS: E01600 - Returned when transaction is declined, because 3DS 2.X flow invoked for other card number than specified in the request STATUS: E11000 - Returned when transaction processing time set by terminal was exceeded |
|
STATUS: E0142 - Returned when commission configuration is not added for terminal. STATUS: E0153 - Returned when transaction is declined, by problem with MIP connection. STATUS: E01599 - Transaction declined, processing timeout. STATUS: E0190 - Returned when currency rate is invalid. STATUS: E9000 - Returned when reason is unknown. |
|
STATUS: E9001 - Returned when is error acquirer connection. STATUS: E9002 - Returned when is error mpi connection. STATUS: E9010 - Returned when is error DataCenter connection. |
{
"status" : "S0000",
"message" : "SUCCESS",
"httpStatus" : "OK",
"requestUuid" : "b30781d1-4450-43ad-9131-2413258f50e7",
"payByBankAccountId" : "examplecb4865f7e957400cbdea6392d1c",
"paymentLink" : "somepaymentlink.fenige.pl/payment_link/?req=123"
}
Path | Type | Description |
---|---|---|
|
|
Unique requestUuid used to identify request, used for idempotency |
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
External payByBankAccount payment Id |
|
|
Link to make a payment |
HTTP/1.1 400 Bad Request
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:03 GMT
Connection: close
Content-Length: 481
{
"errors" : {
"firstName" : [ "must not be empty" ],
"lastName" : [ "must not be empty" ],
"amount" : [ "must not be null" ],
"merchantUuid" : [ "must not be null" ],
"requestUuid" : [ "must not be null" ],
"currency" : [ "must not be null" ],
"countryOfResidence" : [ "must not be null" ],
"receiverAmount" : [ "must not be null" ]
},
"status" : "E8000",
"httpStatus" : "BAD_REQUEST",
"traceId" : "e6b1a7fe-7f9a-419d-8ec2-fed0f9374f5b"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 401 Unauthorized
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=ISO-8859-1
Content-Length: 141
Date: Wed, 20 Nov 2024 17:44:03 GMT
{
"status" : "E8002",
"message" : "Unauthorized",
"httpStatus" : "UNAUTHORIZED",
"traceId" : "09fd1d46-6e6a-4f97-9856-4a510577dc9c"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
HTTP/1.1 403 Forbidden
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2024 17:44:03 GMT
Content-Length: 135
{
"status" : "E8001",
"message" : "Forbidden",
"httpStatus" : "FORBIDDEN",
"traceId" : "62c9c2f4-f1c9-473f-b040-98ab7b5d251d"
}
Path | Type | Description |
---|---|---|
|
|
Response code from Fenige system |
|
|
Message for response code from Fenige system |
|
|
Response http status |
|
|
Unique id for this http request register in system |
Simplified version of PayByBankAccount payment sequence diagram:
Extended version of PayByBankAccount payment sequence diagram:
10.2. PayByBankAccount Webhooks
General information about webhooks mechanism and signature verifying in Webhooks section
10.2.1. Webhooks
Content-Type: application/json
X-MERCHANT-SECRET: e2d3b038297e4ce285d51b4a75375c65
X-MERCHANT-TIMESTAMP: 1717482049
{
"transactionStatus": "APPROVED",
"requestUuid": "a513a4c5-1dd7-4606-bcbc-917c9c00d904",
"controlUuid": "e634bf4b-7cb7-4220-86e8-95e986879a84",
"errorMessage": "Payment timed out, payByBankAccountId: 07b26b89047e48c892e4aac240d3cde7"
}
Path | Type | Rule | Description |
---|---|---|---|
X-MERCHANT-SECRET |
String |
Always present |
SHA256 Hash string composed from controlUuid and secret token placed in request body of this webhook |
X-MERCHANT-TIMESTAMP |
Numeric string |
Always present |
Timestamp of server response in UNIX format for instance: 1614023731 |
Path | Type | Rule | Description |
---|---|---|---|
controlUuid |
UUID |
Always present |
Unique identifier of request body, assigned by Fenige server for security purposes |
requestUuid |
UUID |
Always present |
Unique identifier of transaction. |
transactionStatus |
String |
Always present |
Internal transaction status in Fenige system |
11. Webhooks
General information
To use the webhooks functionality, you must notify Fenige Sales Department by email.
Then an URL address and a secret token will be configured, thanks to which communication between the Fenige side and the client side will be more secure.
After configuring the above-mentioned properties, you will receive Secret Token and then you can handle webhooks from the Fenige system.
The URL must be specified by the client, requests from the Fenige system will be directed to this address.
The Secret Token will be set by the Fenige employee and sent to the client.
Your server after receiving Webhook Event must return HTTP status 200 OK. Otherwise, the Fenige server will retry the request. There is 3 attempts for requesting your API. Repeated requests will be executing in 5 seconds intervals excluding timeout from client server. |
In order to protect client API by polling or other undesirable actions, the Fenige system uses headers. If you want to use Webhook events, you need to do the header handling on your side. |
Thanks to the 'X-MERCHANT-SECRET' header you can compare the hash on your backend side to eliminate attempts of unwanted requests.
To build 'X-MERCHANT-SECRET' header:
1. Concatenate secret token established by you and Fenige’s employee with controlUuid from received request body of callback event 2. Hash with SHA256 function result of above operation |
import hashlib
# secret token established by client with fenige employee
secret = 'mNaU9TaK4m9myYYFBJgKu8slNH2fCKutJyzXwI'
# controlUuid received from webhook's request
controlUuid = 'c168a885-acfa-4a91-a1ad-ed7a042b7238'
# concatenate strings in correct order
concatenated = secret + controlUuid
# use SHA256 hashing function
hashed = hashlib.sha256(concatenated.encode('utf-8')).hexdigest()
# then compare 'hashed' variable with content of 'X-MERCHANT-SECRET' header
11.1. Clearing status
Method: HTTP POST
If you decide to handle this event, your endpoint will be notified when the transaction clearing status changes.
This event allows you to eliminate unnecessary network traffic and polling the API for clearing status.
11.1.1. Clearing status webhook request body
Content-Type: application/json
X-MERCHANT-SECRET: 3cbd17f561150a1394cabbe2b6031fd83f3f3081abe28c32b7fed16f32aebc4a
X-MERCHANT-TIMESTAMP: 1614800720
{
"controlUuid": "e28f7423-ae21-44bb-b27e-a2038cb29181",
"merchantUuid": "b315b0d4-bdbc-45a1-aec6-122c8766d7f7",
"transactionStatus": "CLEARED",
"clearingStatus": "APPROVED",
"clearingFileName": "2021_03_25_09_34_44_290_Second International Merchant_16212_1520_clearing.IPM",
"clearingFileId": "0022103250000001621250032",
"requestUuids": [
"d3b767cd-5fde-4901-beb6-f6260fa657ad",
"18b900ba-8d4e-11eb-8dcd-0242ac130003"
]
}
Content-Type: application/json
X-MERCHANT-SECRET: 3cbd17f561150a1394cabbe2b6031fd83f3f3081abe28c32b7fed16f32aebc4a
X-MERCHANT-TIMESTAMP: 1614800720
{
"controlUuid": "e28f7423-ae21-44bb-b27e-a2038cb29181",
"requestUuid": "7cc531e3-f2c1-4c90-9668-55567580255f",
"transactionStatus": "DECLINED",
"clearingStatus": "TIME_IS_OVER",
"clearingErrorMessage": "Time for clearing has expired (7 days)"
}
Path | Type | Rule | Description |
---|---|---|---|
X-MERCHANT-SECRET |
String |
Always present |
SHA256 Hash string composed from secret token and requestUuid placed in request body of this webhook |
X-MERCHANT-TIMESTAMP |
Numeric string |
Always present |
Timestamp of server response in UNIX format for instance: 1614023731 |
Path | Type | Rule | Description |
---|---|---|---|
controlUuid |
UUID |
Always present |
Unique identifier of request body, assigned by Fenige server for security purposes |
merchantUuid |
UUID |
Optional |
Merchant’s unique uuid in Fenige system. |
requestUuid |
UUID |
Optional |
Unique identifier of transaction. You can fetch details of transaction by this parameter |
requestUuids |
List<UUID> |
Optional |
Unique identifier of transactions. You can fetch details of transaction by this parameter |
transactionStatus |
String |
Always present |
Internal transaction status in Fenige system |
clearingStatus |
String |
Optional |
Clearing status of transaction in Fenige system |
clearingErrorMessage |
String |
Optional |
Clearing error additional message |
clearingFileName |
String |
Optional |
Name of Clearing file that has been sent to MASTERCARD/VISA |
clearingFileId |
Numeric string |
Optional |
ID of Clearing file that has been sent to MASTERCARD/VISA |
11.2. Acquirer reconciliation date
Method: HTTP POST
If you decide to handle this event, your endpoint will be notified when the acquirer reconciliation date will be set.
In some cases, Fenige settles transactions with the payment organisation on a different day to the day of authorisation. With this functionality, you can find out on which day a transaction will be included in the settlement report with the merchant.
11.2.1. Acquirer reconciliation date webhook request body
Content-Type: application/json
X-MERCHANT-SECRET: 3cbd17f561150a1394cabbe2b6031fd83f3f3081abe28c32b7fed16f32aebc4a
X-MERCHANT-TIMESTAMP: 1614800720
{
"controlUuid": "ce44a0e1-9fb7-45cf-acff-0fbd573b38e0",
"orderId": "e28f7423-ae21-44bb-b27e-a2038cb29181",
"acquirerReconciliationDate": "2024-03-08T15:07:38.442897668",
"operationType": "TRANSACTION",
"merchantName": "Merchant"
}
Path | Type | Rule | Description |
---|---|---|---|
X-MERCHANT-SECRET |
String |
Always present |
SHA256 Hash string composed from secret token and controlUuid placed in request body of this webhook |
X-MERCHANT-TIMESTAMP |
Numeric string |
Always present |
Timestamp of server response in UNIX format for instance: 1614023731 |
Path | Type | Rule | Description |
---|---|---|---|
orderId |
String/UUID |
Always present |
Unique identifier of transaction. You can fetch details of transaction by this parameter. |
acquirerReconciliationDate |
LocalDateTime |
Always present |
Acquirer Reconciliation Date from Fenige system. |
operationType |
String |
Always present |
Operation type. Possible values: TRANSACTION, REFUND |
merchantName |
String |
Always present |
Merchant’s name in Fenige system. |
11.3. Blik Webhooks
General information about webhooks mechanism and signature verifying in Webhooks section
11.3.1. BLIK transaction status webhook request body
Content-Type: application/json
X-MERCHANT-SECRET: 3cbd17f561150a1394cabbe2b6031fd83f3f3081abe28c32b7fed16f32aebc4a
X-MERCHANT-TIMESTAMP: 1614800720
{
"transactionStatus": "APPROVED",
"requestUuid": "a513a4c5-1dd7-4606-bcbc-917c9c00d904",
"controlUuid": "e634bf4b-7cb7-4220-86e8-95e986879a84"
}
Content-Type: application/json
X-MERCHANT-SECRET: 3cbd17f561150a1394cabbe2b6031fd83f3f3081abe28c32b7fed16f32aebc4a
X-MERCHANT-TIMESTAMP: 1614800720
{
"transactionStatus": "DECLINED",
"requestUuid": "7cc531e3-f2c1-4c90-9668-55567580255f",
"controlUuid": "e28f7423-ae21-44bb-b27e-a2038cb29181"
}
Path | Type | Rule | Description |
---|---|---|---|
X-MERCHANT-SECRET |
String |
Always present |
SHA256 Hash string composed from controlUuid and secret token placed in request body of this webhook |
X-MERCHANT-TIMESTAMP |
Numeric string |
Always present |
Timestamp of server response in UNIX format for instance: 1614023731 |
Path | Type | Rule | Description |
---|---|---|---|
controlUuid |
UUID |
Always present |
Unique identifier of request body, assigned by Fenige server for security purposes |
requestUuid |
UUID |
Always present |
Unique identifier of transaction. |
transactionStatus |
String |
Always present |
Internal transaction status in Fenige system |
11.3.2. BLIK refund status webhook request body
Content-Type: application/json
X-MERCHANT-SECRET: 3cbd17f561150a1394cabbe2b6031fd83f3f3081abe28c32b7fed16f32aebc4a
X-MERCHANT-TIMESTAMP: 1614800720
{
"refundStatus": "APPROVED",
"requestUuid": "a513a4c5-1dd7-4606-bcbc-917c9c00d904",
"controlUuid": "e634bf4b-7cb7-4220-86e8-95e986879a84"
}
Content-Type: application/json
X-MERCHANT-SECRET: 3cbd17f561150a1394cabbe2b6031fd83f3f3081abe28c32b7fed16f32aebc4a
X-MERCHANT-TIMESTAMP: 1614800720
{
"refundStatus": "DECLINED",
"requestUuid": "7cc531e3-f2c1-4c90-9668-55567580255f",
"controlUuid": "e28f7423-ae21-44bb-b27e-a2038cb29181"
}
Path | Type | Rule | Description |
---|---|---|---|
X-MERCHANT-SECRET |
String |
Always present |
SHA256 Hash string composed from controlUuid and secret token placed in request body of this webhook |
X-MERCHANT-TIMESTAMP |
Numeric string |
Always present |
Timestamp of server response in UNIX format for instance: 1614023731 |
Path | Type | Rule | Description |
---|---|---|---|
controlUuid |
UUID |
Always present |
Unique identifier of request body, assigned by Fenige server for security purposes |
requestUuid |
UUID |
Always present |
Unique identifier of transaction. |
refundStatus |
String |
Always present |
Internal refund status in Fenige system |