Processing Checkout Transactions

In this section you will learn how to process a Checkout transaction

The Checkout Integration option for initiating a new payment involves the redirection of the customer to the PXP Financial Checkout Pages from the merchant web site. The merchant application needs to call the Checkout Service API to get the redirection URL and any POST data, and additionally will need to process notifications or invoke API methods for checking the payment status afterwards.

Step 1: Request a Checkout URL

After ordering a product or service, the cardholder clicks on the Checkout or Pay button on the merchant web page.

The merchant system will send a Checkout request message using a POST HTTPs request in order to retrieve a URL to redirect the cardholder.

1287

An example of a Checkout request message can be seen below:
For full API reference, please see: Processing A Checkout Transaction

{
	"merchantId": "BDD",
	"storeId": "BDD500000005",
	"userId": "BDDTest",
	"type": "ecom.sale",
	"amount": "10.00",
	"currencyCode": "GBP",
	"clientSystemTransactionId": "Unique Transaction Reference",
	"addressVerificationDetails": {
		"address": "5 High Street",
		"zipPostalCode": "AB12 3CD",
		"countryCode": "GBR"
	},
	"checkoutDetails": {
		"skinId": "20180508034731b03564ad-b111-4d74-9dce-187a862914345",
		"language": "en",
		"cardholderId": "610246548471-65711",
		"cardholderEmail": "[email protected]",
		"cardholderMobilePhone": "44-07712345678",
 		"cardholderHomePhone": "44-0207123456",
		"cardholderWorkPhone": "44-0207123456"
	},
	"addressDetails": {
		"billingAddress": {
			"houseNumber": "97",
			"street": "High Street",
			"city": "London",
			"zipPostalCode": "EN10 7BC",
			"countryCode": "GBR"
		},
		"shippingAddress": {
			"houseNumber": "97",
			"street": "High Street",
			"city": "London",
			"zipPostalCode": "EN10 7BC",
			"countryCode": "GBR"
		},
      "storedCredentialDetails": {
        "cardOnfileIndicator": "cardDetailsStoredFirstTime",
        "returnCardSchemeReference": "true"
	},
	"redirectDetails": {
		"returnUrl": "http://www.merchantwebsite.com/Return?orderID=10203040",
		"successUrl": "http://www.merchantwebsite.com/success?orderID=10203040",
		"pendingUrl": "http://www.merchantwebsite.com/pending?orderID=10203040",
		"errorUrl": "http://www.merchantwebsite.com/error?orderID=10203040",
		"cancelUrl": "http://www.merchantwebsite.com/cancel?orderID=10203040",
		"refusedUrl": "http://www.merchantwebsite.com/refused?orderID=10203040"
	}
}
{
	"merchantId": "BDD",
	"storeId": "BDD500000005",
	"userId": "BDDTest",
	"type": "mailorder.sale",
	"amount": "10.00",
	"currencyCode": "GBP",
	"clientSystemTransactionId": "Unique Transaction Reference",
	"addressVerificationDetails": {
		"address": "5 High Street",
		"zipPostalCode": "AB12 3CD",
		"countryCode": "GBR"
	},
	"checkoutDetails": {
		"skinId": "20180508034731b03564ad-b111-4d74-9dce-187a862914345",
		"language": "en",
		"cardholderId": "610246548471-65711"
	},
	"redirectDetails": {
		"returnUrl": "http://www.merchantwebsite.com/Return?orderID=10203040",
		"successUrl": "http://www.merchantwebsite.com/success?orderID=10203040",
		"pendingUrl": "http://www.merchantwebsite.com/pending?orderID=10203040",
		"errorUrl": "http://www.merchantwebsite.com/error?orderID=10203040",
		"cancelUrl": "http://www.merchantwebsite.com/cancel?orderID=10203040",
		"refusedUrl": "http://www.merchantwebsite.com/refused?orderID=10203040"
	}
}

An example of a Checkout response message can be seen below:

{
    "redirectUrl": "https://Checkout-integration.pxp-solutions.net/Checkout/PaymentMethods/?requestData=rlezuyc5k05wkkg1aq1fpcfj_bb30e803-c81f-4434-8a18-b1adbffb6905"
}

Step 2: Redirect to PXP Financial Checkout Pages

After retrieving the redirect data the cardholder should be redirected from the merchant-hosted Checkout page to the PXP Financial Checkout page using a POST HTTPs request.

1324

Card Flow

1316

APM Flow

The redirection URL and the single POST field are taken from redirectUrl in the Checkout response message. The POST field is created in the following way:

<html>
  <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
  </head>
  <body>
    <form name="input" action="https://Checkout-integration.pxp-solutions.net/Checkout/PaymentMethods" method="post">
      <input type="text" name="requestData" value="rlezuyc5k05wkkg1aq1fpcfj_bb30e803-c81f-4434-8a18-b1adbffb6905"/>
      <input type="submit" value="Submit"/>
    </form> 
  </body>
</html>

Step 2c: Select Payment Method
If the merchant supports multiple payment methods, all configured options will be presented to the cardholder. (If only 1 payment method is configured, or the payment method has been specified in step 1, then this page will be bypassed)

1049

Step 2e: Cardholder Inputs Card/APM Details
Card Example

The Cardholder is presented with the following screen where they will be asked to enter in their Cardholder name, Card Number, Expiry Date and Security Code. Once all fields have been supplied, the Cardholder will click "Pay Now"

802

APM Example (Giropay)
The shopper is presented with the following screen where they will be asked to enter in their IBAN & BIC. Once all fields have been supplied, the Cardholder will click "Pay Now"

1018

Step 2g: Cardholder completes payment and is redirected back to the merchant's URL
Card Example
After the card holder presses "Pay Now", PXP will proceed to authenticate the card holder using 3D Secure 2.0 (Or 1.0 if the issuer does not yet support 2.0) and process the transaction. Once complete, PXP will redirect the Cardholder back to the Merchant's website, to one of the Url's provided in the redirectDetails object from step 1.

APM Example
After the card holder presses "Pay Now", PXP will proceed to the chosen APM provider and if additional information is requested, the card holer will provide these before the payment is submitted. Once complete, PXP will redirect the Cardholder back to the Merchant's website, to one of the Url's provided in the redirectDetails object from step 1.

Optional Step 3: Get Transaction Response with Tokenised Card Number

1288

In step 2, the merchant will receive a POST to a specific URL so will be able to determine the status of the transaction based on what URL was posted to.

Cards Only
If the Merchant wishes to collect the full transaction response to obtain the Tokenised Card Number {cardTokenizedNumber} to re-use for future recurring payments, they can obtain this by sending the following request type

TransactionReference Transaction Status