User Tools

Site Tools


en:girocheckout:creditcard_3ds2:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
en:girocheckout:creditcard_3ds2:start [2020/11/13 06:01]
michaelheumann
— (current)
Line 1: Line 1:
-====== Credit Card 3D Secure 2.0 ====== 
-**This is the future version of the creditcard API that includes the new fields for 3D Secure 2.0. This API is not yet available for testing on our server! These docs are only a preview of the upcoming API.** 
- 
-New in these docs are mostly the fields whose names start with "tds2", see transaction initialization below. 
- 
-<WRAP center round info 70%> 
-The parameters related to 3D Secure 2.0 are subject to changes due to modifications in the EMVCo 3-D Secure specs. 
-</WRAP> 
- 
-===== Test data ===== 
-{{page>en:testdata:creditcard_3ds2&noheader&nofooter}} 
- 
-===== Transaction types ===== 
-Detailed information on the [[en:girocheckout:transactiontypes:start|transaction types]].  
- 
-==== Reservation (AUTH) ==== 
-{{page>en:girocheckout:transactiontypes:descriptions#auth.desc&noheader&nofooter}} 
- 
-<uml> 
-left to right direction 
-skinparam packageStyle rect 
- 
-rectangle AUTH { 
-  (AUTH) --> (CAPTURE) 
-  (AUTH) --> (VOID ) 
-  (CAPTURE) --> (VOID ) 
-  (CAPTURE) --> (REFUND ) 
-  (REFUND ) --> (VOID ) 
-} 
-</uml> 
- 
-==== Sale ==== 
-{{page>en:girocheckout:transactiontypes:descriptions#sale.desc&noheader&nofooter}} 
- 
-<uml> 
-left to right direction 
-skinparam packageStyle rect 
- 
-rectangle SALE{ 
-  (SALE) --> (REFUND) 
-  (SALE) --> (VOID) 
-  (REFUND) --> (VOID) 
-} 
-</uml> 
- 
-===== Initialize credit card payment ===== 
- 
-After a successful initialization the merchant receives a reference number and a redirect link. The redirect link leads to the payment page. The customer (buyer) must be redirected to this link. This can be achieved by an HTTP redirect header, an HTML page with a corresponding meta tag or a JavaScript redirect.  
- 
-**Provided by:** GiroCheckout \\ 
-**Called by:** merchant 
- 
-===== Workflow ===== 
- 
-<uml> 
-hide footbox 
- 
-participant "Customer" as customer 
-participant "Shop" as shop 
-participant "GiroCheckout" as girocheckout 
-participant "Credit Card Processor" as cc 
- 
-autonumber 
- 
-customer -> shop:  
-shop -> girocheckout:  
-girocheckout -> cc:  
-cc -> girocheckout:  
-girocheckout -> shop:  
-shop -> customer:  
-customer -> cc: 
-cc -> customer:  
-customer -> cc: 
-cc -> cc:  
-cc -> girocheckout: 
-girocheckout -> shop 
-shop -> shop:  
-shop -> girocheckout:  
-girocheckout -> cc:  
-cc -> shop:  
- 
- 
-center footer (c)2016 by GiroSolution AG 
-</uml> 
- 
-  - Buyer selects payment type "credit card" 
-  - Shop initializes credit card transaction ([[en:girocheckout:creditcard:start#initialize_credit_card_payment|Initialization]]) 
-  - GiroCheckout initializes transaction at CC processor 
-  - Credit card processor transmits result to GiroCheckout 
-  - Shop receives response about transaction outcome (transaction ends in case of error) 
-  - Shop sends redirect URL to customer browser 
-  - Customer browser redirects to credit card processor 
-  - Credit card processor displays payment form 
-  - Customer authorizes transaction 
-  - Credit card processor carries out transaction 
-  - Credit card processor transmits result to GiroCheckout 
-  - GiroCheckout notifies Shop about transaction outcome ([[en:girocheckout:creditcard:start#notification_about_the_payment_result|Notification]]) 
-  - Shop processes transaction outcome 
-  - Shop sends HTTP status code to GiroCheckout 
-  - GiroCheckout sends merchant redirect (return to merchant page) to Credit card processor 
-  - Customer clicks "Back to shop" ([[en:girocheckout:creditcard:start#redirection_of_the_customer_to_merchant|Return]]) 
- 
-===== API functions ===== 
- 
-==== Overview ===== 
- 
-As shown in the workflow, different API calls are involved in a credit card transaction. During the payment process a 3D-Secure check may be applied as well, but this depends solely on the credit card issuing institute and does not affect merchant or PSP in any way. 
- 
-  - Initialize transaction 
-  - 3D-Secure check (optional) 
-  - Payment result notification to merchant 
-  - Buyer redirection to the merchant (triggered by buyer) 
- 
-==== Reservation/Sale ==== 
- 
-=== POST parameters === 
-^Name           ^Mandatory  ^Type        ^Description   ^ 
-|merchantId     |yes       |Integer     |merchant ID | 
-|projectId      |yes       |integer     |project ID | 
-|merchantTxId   |yes       |String(255) |unique transaction id of the merchant | 
-|amount         |yes       |Integer     |if a decimal currency is used, the amount has to be in the smallest unit of value, eg. Cent, Penny | 
-|currency       |yes       |String(3)   |currency\\ EUR = Euro| 
-|purpose        |yes       |String(27)  |purpose | 
-|type           |optional  |String(4)   |transaction type (see [[en:girocheckout:transactiontypes:start]]) \\ SALE = Immediate booking (default) \\ AUTH = Reservation of amount| 
-|locale         |optional |String(4)   |language of the credit card payment page \\ de = German (default) \\ en = English \\ es = Spanish \\ fr = French \\ it = Italian \\ ja = Japanese \\ pt = Portuguese \\ nl = Dutch \\ cs = Czech \\ sv = Swedish \\ da = Danish \\ pl = Polish \\ spde = German donation \\ spen = English donation \\ de_DE_stadtn = German communes | 
-|mobile         |optional |Boolean     |optimised payment page for mobile devices \\ 0 = no (default) \\ 1 = yes | 
-|pkn            |optional |String(50)  |This field is used process a transaction without re-entering the card data. \\ create = generate a new pseudo card number \\ [pseudo card number] = pkn of the masked card data (see [[en:girocheckout:creditcard:start#pseudo_card_number_pkn|pseudo card number]])\\  | 
-|recurring      |optional |Boolean     |recurring payment \\ 0 = no (default) \\ 1 = yes  | 
-|urlRedirect    |yes       |String      |URL, where the buyer has to be sent after payment | 
-|urlNotify      |yes       |String      |URL, where the notification has to be sent after payment | 
-|hash           |yes       |String      |HMAC MD5 hash (see [[en:girocheckout:general:start#hash_generation|hash generation]]) | 
- 
-== Example == 
-{{page>codesamples:creditcard#transactionstart.request&noheader&nofooter}} 
- 
-=== Reply === 
-The reply is a JSON encoded string. The field rc contains the response code. If it is 0 the transaction was successfully initialized. The response also includes a transaction id and a redirect URL to the payment page. 
- 
-== Parameters == 
-^Name           ^Mandatory  ^Type      ^Description   ^ 
-|rc             |yes       |Integer   |[[en:girocheckout:errorcodes|response code]] | 
-|msg            |yes       |String    |additional information about the response code | 
-|reference      |optional |String    |unique GiroCheckout transaction ID | 
-|redirect       |optional |String    |redirect URL to the payment page| 
-^HEADER parameter^^^^ 
-|hash           |yes       |String    |HMAC MD5 hash on the complete JSON string. (see [[en:girocheckout:general:start#api_call_reply_to_the_merchant|api call reply]]) | 
- 
-== Example in case of success == 
-{{page>codesamples:creditcard#transactionstart.response.true&noheader&nofooter}} 
- 
-== Example in case of error == 
-{{page>codesamples:creditcard#transactionstart.response.false&noheader&nofooter}} 
- 
-==== Notification about the payment result ==== 
- 
-The result of an initialized transaction will be submitted to the merchant through URL specified in the //urlNotify// parameter. This notification should be used to update the order status in the merchant's system. 
- 
-The result of the payment is contained in the field //gcResultPayment// 
- 
-=== Request === 
-**URL:** notifyUrl of the previous init transaction call \\ 
-**Provided by:** Merchant \\ 
-**Called by:** GiroCheckout 
- 
-== GET parameters == 
-^Name             ^Mandatory    ^Type        ^Description   ^ 
-|gcReference      |yes       |String      | unique GiroCheckout transaction ID | 
-|gcMerchantTxId   |yes       | String     | merchant transaction ID | 
-|gcBackendTxId    |yes       |String      | payment processor transaction ID | 
-|gcAmount         |yes       |Integer     | if a decimal currency is used, the amount has to be in the smallest unit of value, eg. Cent, Penny | 
-|gcCurrency       |yes       |String      | currency | 
-|gcResultPayment  |yes       |Integer     | [[en:girocheckout:resultcodes#result_codes_payment|Payment result codes]]| 
-|gcHash           |yes       |String      | HMAC MD5 hash (see [[en:girocheckout:general:start#hash_generation|hash generation]]) | 
- 
-=== Reply === 
-As a reply to the GET request, one of the following HTTP status codes is expected.  
- 
-^HTTP status code    ^Description     ^ 
-|200 (OK)           | The notification was processed correctly.  | 
-|400 (Bad Request)  |The merchant did not process the notification and does not wish to be notified again.  | 
-|All others       |The notification is repeated no more than 10 times every 30 minutes until the merchant returns the status code 200 or 400. | 
- 
-==== Redirection of the customer to merchant ==== 
-After completing the payment, the customer may return to the merchant through a link. This return only happens once the customer clicks the "cancel" or "return to shop" button and is not done automatically.  
- 
-=== Request === 
-**URL:** redirectUrl of the previous init transaction call \\ 
-**Provided by:** Merchant \\ 
-**Called by:** GiroCheckout 
- 
-== GET parameters == 
-^Name             ^Mandatory    ^Type        ^Description   ^ 
-|gcReference      |yes       |String      | unique GiroCheckout transaction ID | 
-|gcMerchantTxId   |yes       |String      | merchant transaction ID | 
-|gcBackendTxId    |yes       |String      | payment processor transaction ID | 
-|gcAmount         |yes       |Integer     | if a decimal currency is used, the amount has to be in the smallest unit of value, e.g. Cent, Penny | 
-|gcCurrency       |yes       |String      | Currency | 
-|gcResultPayment  |yes       |Integer     | [[en:girocheckout:resultcodes#result_codes_payment|Payment result codes]]| 
-|gcHash           |yes       |String      | HMAC MD5 hash (see [[en:girocheckout:general:start#hash_generation|hash generation]]) | 
- 
- 
-===== Other transaction types ===== 
-These transactions reference a previous transaction.  They are based on a server to server communication and require no customer interaction (data entry). 
- 
-**Provided by:** GiroCheckout \\ 
-**Called by:** Merchant \\ 
- 
-==== Workflow ==== 
- 
-<uml> 
-hide footbox 
- 
-participant "Shop" as shop 
-participant "GiroCheckout" as girocheckout 
-participant "Credit Card Processor" as cc 
- 
-autonumber 
- 
-shop -> girocheckout:  
-girocheckout -> cc:  
-cc -> girocheckout:  
-girocheckout -> shop:  
- 
-center footer (c)2016 by GiroSolution AG 
-</uml> 
- 
-  - Shop sends reference to previous credit card transaction 
-  - GiroCheckout sends transaction to credit card processor 
-  - credit card processor transmits result to GiroCheckout 
-  - Shop receives reply on transaction outcome ([[en:girocheckout:creditcard:start#notification_about_the_payment_result|Notification]]) 
- 
-==== Capture ==== 
-{{page>en:girocheckout:transactiontypes:descriptions#capture.desc&noheader&nofooter}} 
- 
-==== Refund ==== 
-{{page>en:girocheckout:transactiontypes:descriptions#refund.desc&noheader&nofooter}} 
- 
-=== POST Parameters === 
-URL CAPTURE: https://payment.girosolution.de/girocheckout/api/v2/transaction/capture \\ 
-URL REFUND: https://payment.girosolution.de/girocheckout/api/v2/transaction/refund 
- 
-^Name           ^Mandatory  ^Type        ^Description   ^ 
-|merchantId     |yes       |Integer     |Merchant ID | 
-|projectId      |yes       |Integer     |Project ID| 
-|merchantTxId   |yes       |String(255) |Unique transaction id of the merchant | 
-|amount         |yes       |Integer     |If a decimal currency is used, the amount has to be in the smallest unit of value, e.g. Cent, Penny | 
-|currency       |yes       |String(3)   |Currency according to [[http://de.wikipedia.org/wiki/ISO_4217#Aktuell_g.C3.BCltige_W.C3.A4hrungen|ISO 4217]].\\ EUR = Euro | 
-|reference      |yes       |String      |GiroCheckout transaction ID from a previous transaction, which the capture or refund is for | 
-|purpose        |optional  |String      |Purpose of the refund. This information is printed on the credit card statement. | 
-|hash           |yes       |String      |HMAC MD5 hash on the complete call. See [[en:girocheckout:general:start#hash_generation|hash generation]] | 
- 
-== Example == 
-{{page>codesamples:creditcard#capture.request&noheader&nofooter}} 
- 
-=== Reply === 
-The reply is a JSON encoded string. The field rc contains the response code. If it is 0 the transaction was successfully initialized. The response also includes a transaction id and other information about the transaction. 
- 
-== Parameters == 
-^Name             ^Mandatory  ^Type        ^Description   ^ 
-|rc             |yes       |Integer   |[[en:girocheckout:errorcodes|response code]] | 
-|msg            |yes       |String    |Additional information about the response code | 
-|reference      |yes       |String    |Unique GiroCheckout transaction ID | 
-|merchantTxId   |yes       |String      | Unique transaction id of the merchant | 
-|backendTxId    |yes       |String      | Payment processor transaction ID | 
-|amount         |yes       |Integer     | If a decimal currency is used, the amount has to be in the smallest unit of value, e.g. Cent, Penny | 
-|currency       |yes       |String      | Currency | 
-|resultPayment  |yes       |Integer     | [[en:girocheckout:resultcodes#result_codes_payment|Payment result codes]]| 
-^HEADER parameter^^^^ 
-|hash           |yes       |String    |HMAC MD5 hash on the complete JSON string. (see [[en:girocheckout:general:start#api_call_reply_to_the_merchant|api call reply]]) | 
- 
-== Example in case of success == 
-{{page>codesamples:creditcard#capture.response.true&noheader&nofooter}} 
- 
-== Example in case of error == 
-{{page>codesamples:creditcard#capture.response.false&noheader&nofooter}} 
- 
-==== Void ==== 
-{{page>en:girocheckout:transactiontypes:descriptions#void.desc&noheader&nofooter}} 
- 
-=== POST Parameters === 
-URL VOID: https://payment.girosolution.de/girocheckout/api/v2/transaction/void 
- 
-^Name           ^Mandatory  ^Type      ^Description   ^ 
-|merchantId     |Yes       |Integer     |Merchant ID of a credit card project | 
-|projectId      |Yes       |Integer     |Project ID of a credit card project | 
-|merchantTxId   |Yes       |String(255) |Unique transaction ID of the merchant | 
-|reference      |Yes       |String      |GiroCheckout transaction ID that is to be voided | 
-|hash           |Yes       |String      |HMAC MD5 hash on the complete JSON string. (see [[en:girocheckout:general:start#api_call_reply_to_the_merchant|api call reply]])| 
- 
-== Example == 
-{{page>codesamples:creditcard#void.request&noheader&nofooter}} 
- 
-=== Reply === 
-The reply is a JSON encoded string. The field rc contains the response code. If it is 0 the call was successful. The response includes a transaction number and other information. 
- 
-== Parameters == 
-^Name           ^Mandatory  ^Type      ^Description   ^ 
-|rc             |yes       |Integer   |[[en:girocheckout:errorcodes|response code]] | 
-|msg            |yes       |String    |Additional information about the response code | 
-|reference      |yes       |String    |Unique GiroCheckout transaction ID | 
-|referenceParent      |yes       |String      | GiroCheckout transaction ID of the original base transaction | 
-|merchantTxId   |yes       |String      | Unique transaction id of the merchant | 
-|backendTxId    |yes       |String      | Payment processor transaction ID | 
-|amount         |yes       |Integer     | Voided amount, if a decimal currency is used, the amount has to be in the smallest unit of value, e.g. Cent, Penny | 
-|currency       |yes       |String      | Currency | 
-|resultPayment  |yes       |Integer     | [[en:girocheckout:resultcodes#result_codes_payment|Payment result codes]]| 
-^HEADER parameter^^^^ 
-|hash           |yes       |String    |HMAC MD5 hash on the complete JSON string. (see [[en:girocheckout:general:start#api_call_reply_to_the_merchant|api call reply]]) | 
- 
-== Example in case of success == 
-{{page>codesamples:creditcard#void.response.true&noheader&nofooter}} 
- 
-== Example in case of failure == 
-{{page>codesamples:creditcard#void.response.false&noheader&nofooter}} 
- 
-===== Pseudo card numbers (PKN) ===== 
-<WRAP center round important 60%> 
-This function requires a separate implementation on PSP side which also generate a one-time implementation fee. 
-</WRAP> 
-A pseudo card number is a reference to a credit card that has been used recently by the buyer (card number and expiration date). This reference allows the merchant to offer a previously used credit card for reuse by the customer. If the PKN is transmitted along during the initialization of a credit card transaction, the card number and expiration date is pre-filled in the payment form. The customer needs only to enter the validation code and may then carry out the payment. 
- 
-==== Query pseudo card information ==== 
-This function allows access to PKN information.  It returns as a result both the PKN and the saved credit card information (masked credit card number, expiration date), which were used for a previous transaction. 
- 
-**URL:** https://payment.girosolution.de/girocheckout/api/v2/creditcard/pkninfo \\ 
-**Provided by:** GiroCheckout \\ 
-**Called by:** Merchant 
- 
-==== POST Parameters ==== 
-^Name           ^Mandatory  ^Type      ^Description   ^ 
-|merchantId     |yes       |Integer   | Merchant ID | 
-|projectId      |yes       |Integer   | Project ID | 
-|reference      |yes       |String(36)| Unique reference to a GiroCheckout transaction | 
-|hash           |yes       |String(32)| HMAC MD5 hash on the complete JSON string. (see [[en:girocheckout:general:start#api_call_reply_to_the_merchant|api call reply]])| 
- 
-== Example == 
-{{page>codesamples:creditcard#pkninfo.request&noheader&nofooter}} 
- 
-==== Reply ==== 
-The reply is a JSON encoded string. The field rc contains the response code. If it is 0 the call was successful. The response includes the PKN number, the (masked) credit card number and the expiration date. 
- 
-== Parameters == 
-^Name           ^Mandatory  ^Type      ^Description   ^ 
-|rc             |yes       |Integer   |[[en:girocheckout:errorcodes|response code]] | 
-|msg            |yes       |String    |Additional information about the response code | 
-|pkn            |yes       |String    |Pseudo card number | 
-|cardnumber     |yes       |String    |Masked credit card number, e.g. 411111%%******%%1111 | 
-|expiremonth    |yes       |String    |Month of the credit card's expiration date | 
-|expireyear     |yes       |String    |Year of the credit card's expiration date | 
-^HEADER Parameter^^^^ 
-|hash           |yes       |String    |HMAC MD5 hash on the complete JSON string. (see [[en:girocheckout:general:start#api_call_reply_to_the_merchant|api call reply]]) | 
- 
-== Example in case of success == 
-{{page>codesamples:creditcard#pkninfo.response.true&noheader&nofooter}} 
- 
-== Example in case of error == 
-{{page>codesamples:creditcard#pkninfo.response.false&noheader&nofooter}} 
- 
-===== Recurring credit card payment ===== 
- 
-The transaction data is transmitted and the result of the credit card payment is returned immediately. This function is used for recurring credit card payments, such as subscriptions. 
- 
-The following steps are necessary to implement a recurring payment: 
- 
-  - Carry out a normal credit card transaction (see [[#initialize_credit_card_payment|Initialize Payment]]) 
-  - Obtain pseudo card number (PKN) (see [[#pseudo-query_pseudo_card_information|Query PKN information]]) 
-  - Store this PKN 
-  - On the next recurring payment, initialize a payment transaction (use correct end point, see [[#recurring_or_pkn_transaction|Recurring or PKN transaction]]), but set parameter pkn and let recurring=1. 
- 
-===== Recurring transaction ===== 
- 
-In order to carry out a recurring payment without customer intervention, use the following function.  
- 
-==== POST Parameters ==== 
-URL https://payment.girosolution.de/girocheckout/api/v2/transaction/payment  
- 
-^Name           ^Mandatory  ^Type      ^Description   ^ 
-|merchantId     |yes       |Integer     |merchant ID | 
-|projectId      |yes       |integer     |project ID | 
-|merchantTxId   |yes       |String(255) |unique transaction id of the merchant | 
-|amount         |yes       |Integer     |if a decimal currency is used, the amount has to be in the smallest unit of value, eg. Cent, Penny | 
-|currency       |yes       |String(3)   |currency\\ EUR = Euro| 
-|purpose        |yes       |String(27)  |purpose | 
-|type           |optional  |String(4)   |transaction type (see [[en:girocheckout:transactiontypes:start]]) \\ SALE = Immediate booking (default) \\ AUTH = Reservation of amount| 
-|pkn            |optional |String(50)  |This field is used process a transaction without re-entering the card data. \\ [pseudo card number] = pkn of the masked card data (see [[en:girocheckout:creditcard:start#pseudo_card_number_pkn|pseudo card number]])\\  | 
-|recurring      |optional |Boolean     |recurring payment \\ 0 = no (default) \\ 1 = yes  | 
-|urlNotify      |yes       |String      |URL, where the notification has to be sent after payment | 
-|hash           |yes       |String      |HMAC MD5 hash (see [[en:girocheckout:general:start#hash_generation|hash generation]]) | 
- 
-== Example == 
-{{page>codesamples:creditcard#recurringpayment.request&noheader&nofooter}} 
- 
-==== Reply ==== 
-The reply is a JSON encoded string. The field rc contains the response code. If it is 0 the call was successful. 
- 
-=== Parameters === 
-^Name           ^Mandatory  ^Type      ^Description   ^ 
-|rc             |yes       |Integer   |[[en:girocheckout:errorcodes|response code]] | 
-|msg            |yes       |String    |Additional information about the response code | 
-|reference      |yes       |String    |Unique GiroCheckout transaction ID | 
-|backendTxId    |yes       |String      | Payment processor transaction ID | 
-|resultPayment  |yes       |Integer     | [[en:girocheckout:resultcodes#result_codes_payment|Payment result codes]]| 
-^HEADER parameter^^^^ 
-|hash           |yes       |String    |HMAC MD5 hash on the complete JSON string. (see [[en:girocheckout:general:start#api_call_reply_to_the_merchant|api call reply]]) | 
- 
-== Example in case of success == 
-{{page>codesamples:creditcard#recurringpayment.response.true&noheader&nofooter}} 
- 
-== Example in case of error == 
-{{page>codesamples:creditcard#recurringpayment.response.false&noheader&nofooter}} 
  
en/girocheckout/creditcard_3ds2/start.1605243684.txt.gz ยท Last modified: 2021/04/12 14:32