Sightline Deposit

Payment Method Sightline Deposit is used in the US.

The following method IDs are covered in this section:

IDNameCredit/Debit State
172Sightline DepositDepositedByProvider (29)

Payment method interaction type: Synchronous execution (see Interaction Types).

Redirect Integration

Payment method Sightline Deposit is available in Checkout.

Example getRedirectData request for a Redirect Deposit (172), redirection to the Selection page (=directly to PXP Checkout selection page):

<getRedirectDataRequest xmlns="http://www.cqrpayments.com/PaymentProcessing"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <merchantID>{{merchant}}</merchantID>
    <redirectParameters xsi:type="paymentMethodSelectionWithDetailsRedirectParameters">
        <shopID>{{shop}}</shopID>
        <httpMethod>GET</httpMethod>
        <returnUrl>http://return</returnUrl>
        <languageCode>en</languageCode>
        <currencyCode>usd</currencyCode>
        <countryCode>us</countryCode>
        <additionalDetails>
            <detail xsi:type="keyStringValuePair">
                <key>Description</key>
                <value>some description</value>
            </detail>
        </additionalDetails>
        <user>
            <id>{{newUserID}}</id>
            <username>{{newUserName}}</username>
            <firstname>Sherlock</firstname>
            <lastname>Holmes</lastname>
            <currencyCode>USD</currencyCode>
            <languageCode>EN</languageCode>
            <email>{{newUserEmail}}</email>
             <address>
            <street>Geneva Street</street>
               <houseNumber>5</houseNumber>
               <postalCode>61259</postalCode>
               <city>Illinois City</city>
               <state>IL</state>
               <countryCode2>US</countryCode2>
               <telephoneNumber>{{phoneNumber}}</telephoneNumber>
            </address>
             <dateOfBirth>1985-10-10T00:00:00</dateOfBirth>
            <gender>Female</gender>
         </user>
        <merchantTransactionID>{{checkoutMerchantTransactionID}}</merchantTransactionID>
        <grossAmount>100.00</grossAmount>
        <minPaymentLimitAmount>10</minPaymentLimitAmount>
        <maxPaymentLimitAmount>3000</maxPaymentLimitAmount>
        <expirationTimeSpanInSeconds>3600</expirationTimeSpanInSeconds>
        <successUrl>http://success</successUrl>
        <pendingUrl>http://pending</pendingUrl>
        <errorUrl>http://error</errorUrl>
        <cancelUrl>http://cancel</cancelUrl>
        <refusedUrl>http://refused</refusedUrl>
        <paymentDirection>Deposit</paymentDirection>
    </redirectParameters>
</getRedirectDataRequest>

Example getRedirectData request for a Redirect Deposit (172), redirection to the Detail page (=directly to PXP Checkout detail page):

<getRedirectDataRequest xmlns="http://www.cqrpayments.com/PaymentProcessing"
                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                        xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <merchantID>{{merchant}}</merchantID>
    <redirectParameters xsi:type="paymentMethodDetailsRedirectParameters">
        <shopID>{{shop}}</shopID>
        <httpMethod>GET</httpMethod>
        <returnUrl>http://return</returnUrl>
        <languageCode>en</languageCode>
        <currencyCode>usd</currencyCode>
        <countryCode>us</countryCode>
        <additionalDetails>
             <detail xsi:type="keyStringValuePair">
                <key>Description</key>
                <value>my payment description</value>
            </detail>
        </additionalDetails>
         <user>
            <id>hc20210827181039</id>
            <identificationNumber>355775613</identificationNumber>
         </user>
        <merchantTransactionID>{{checkoutMerchantTransactionID}}</merchantTransactionID>
        <grossAmount>1.00</grossAmount>
        <minPaymentLimitAmount>10</minPaymentLimitAmount>
        <maxPaymentLimitAmount>3000</maxPaymentLimitAmount>
        <expirationTimeSpanInSeconds>3600</expirationTimeSpanInSeconds>
       <successUrl>http://www.google.com/result?param1=success?status=success</successUrl>
        <pendingUrl>http://www.google.com/result?param1=pending?status=pending</pendingUrl>
        <errorUrl>http://www.google.com/result?param1=error?status=error</errorUrl>
        <cancelUrl>http://www.google.com/result?param1=cancel?status=cancel</cancelUrl>
        <refusedUrl>http://www.google.com/result?param1=refuse?status=refuse</refusedUrl>
        <paymentMethodID>172</paymentMethodID>
        <isPaymentMethodChangeAllowed>false</isPaymentMethodChangeAllowed>
    </redirectParameters>
</getRedirectDataRequest>

Example getRedirectData response:

<getRedirectDataResponse xmlns=http://www.cqrpayments.com/PaymentProcessing xmlns:xsd=http://www.w3.org/2001/XMLSchema xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance>
    <redirectData>
        <redirectUrl>https://payments.test2.kalixa.com/Checkout/PaymentMethods/172?requestData=m30h4kblzqatlb15f4qxdulb_46d32478-bf3d-4d04-9a8f-b733baa080d8</redirectUrl>
    </redirectData>
</getRedirectDataResponse>

Customer using Sightline payment for the first time

  • Customer will be redirected to the PXP payment method selection page.
  • Customer selects Sightline payment method from the list of payment methods available on the payment method selection page.
  • Customer need to enroll with Sightline provider if not already enrolled with the Sightline.
    • If not already enrolled then Customer will see a spinner in the PXP checkout and will be redirected to the Sightline provider for the Enrollment.
    • After the successful enrollment a balance enquiry check is initiated with the provider.
    • After the successful balance enquiry check, customer is redirected to the PXP payment method detail page.
  • Customer selects the payment account from the PXP details page and submits the payment.
  • On Successful transaction, payment status will be DepositedByProvider and merchant can display the success information to the customer.
  • On failed transaction, payment status will be RefusedByProvider and merchant can display the failure information to the customer.

Below screenshot shows an example of the payment selection page with Sightline listed as one of the payment method.

967

Below screenshot shows the redirection of the customer to Sightline for the Enrollment

1161

Customer using Sightline payment for the second and subsequent time

  • Bank Account added during Sightline Enrollment shall be displayed to the customer in the PXP checkout.
  • If the customer selects an existing account then there is no redirection to the provider. PXP initiates a backend request to the provider with the already stored bank account details.
  • On Successful transaction, payment status will be DepositedByProvider and PXP Checkout will redirect the customer to the success url as provided in the GetRedirectDataRequest.
  • On failed transaction, payment status will be RefusedByProvider and PXP Checkout will redirect the customer to the error url as provided in the GetRedirectDataRequest.

Below screenshot shows the redirection of the customer to Payment details page when the enrollment is successfully completed

1046

Backend2BackendIntegration

The following table contains the fields to be sent in the initiatePaymentRequest.specificPaymentAccountData xml section:

key (value type, account type, required)value
AccountNumber
(string, required)
User´s account ID for Sightline provider
AccountIdentifierTypeId (Int)ReferenceId = 1
MemberShipNumber = 2

The default value is ReferenceID unless specified by merchant

The following parameters can be provided in initiatePaymentRequest.specificPaymentData:

key (value type, account type, required)value
PaymentProviderID
(Int)
Should be 121.
LanguageCode (string)The language of the user, used for localizing the UI displayed to the user
CountryCode2 (string)The country code of the request
UserFirstname (string)The first name of the user
UserLastname (string)The last name of the user
IdentificationNumber (string)The user`s identification number. It is being passed in both and sections.

Example initiatePaymentRequest:

<initiatePaymentRequest xmlns="http://www.cqrpayments.com/PaymentProcessing">
	<merchantID>YourMerchantID</merchantID>
	<shopID>YourShopID</shopID>
	<merchantTransactionID>5d37d7ac-f6f4-4752-bacf-4b3fd778de62</merchantTransactionID>
	<paymentMethodID>172</paymentMethodID>
	<amount currencyCode="USD">25</amount>
	<userID>daee843b-cc2b-4dd4-9c4d-078eeb</userID>
	<userData>
		<username>daee843b-cc2b-4dd4-9c4d-078eeb</username>
		<firstname>Clark</firstname>
		<lastname>Kent</lastname>
		<address>
			<countryCode2>US</countryCode2>
			<telephoneNumber xsi:nil="true"/>
		</address>
		<identificationNumber>2952423828234234</identificationNumber>
	</userData>
	<userIP>127.0.0.1</userIP>
	<userSessionID>6d22207c-b9d3-45de-a5c1-b8b9c8752dce</userSessionID>
	<creationTypeID>1</creationTypeID>
	<specificPaymentData>
		<data xsi:type="keyStringValuePair">
			<key>LanguageCode</key>
			<value>en</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>PaymentDescription</key>
			<value>037f7850-aa94-48a7-9970-92e2c64d5604</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>UserFirstname</key>
			<value>Clark</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>UserLastname</key>
			<value>Kent</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>IdentificationNumber</key>
			<value>2952423828234234</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>CountryCode2</key>
			<value>US</value>
		</data>
	</specificPaymentData>
	<paymentAccount>
		<specificPaymentAccountData>
			<data xsi:type="keyStringValuePair">
				<key>AccountNumber</key>
				<value>123456789</value>
			</data>
			<data xsi:type="keyStringValuePair">
				<key>AccountIdentifierTypeId</key>
				<value>1</value>
			</data>
</specificPaymentAccountData>
			</paymentAccount>
		</initiatePaymentRequest>

Example initiatePaymentResponse:

<initiatePaymentResponse xmlns="http://www.cqrpayments.com/PaymentProcessing">
	<payment xsi:type="paymentWithPaymentAccount" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
		<merchantID>YourMerchantID</merchantID>
		<shopID>YourShopID</shopID>
		<paymentMethod>
			<key>172</key>
			<value>SightlineDeposit</value>
		</paymentMethod>
		<merchantTransactionID>5d37d7ac-f6f4-4752-bacf-4b3fd778de62</merchantTransactionID>
		<paymentID>576cc93d-4694-4e24-a220-b04aa2d2c78b</paymentID>
		<userID>daee843b-cc2b-4dd4-9c4d-078eeb</userID>
		<paymentProvider>
			<key>121</key>
			<value>Sightline</value>
		</paymentProvider>
		<amount currencyCode="USD">25</amount>
		<creationType>
			<key>1</key>
			<value>User</value>
		</creationType>
		<userIP>127.0.0.1</userIP>
		<state>
			<id>4992986c-b023-47d6-b1f7-bbefe9e8aaca</id>
			<definition>
				<key>29</key>
				<value>DepositedByProvider</value>
			</definition>
			<createdOn>2013-09-25T08:29:27.2310256Z</createdOn>
			<description>DepositedByProvider</description>
			<paymentStateDetails>
				<detail xsi:type="keyStringValuePair">
					<key>ProviderResponseCode</key>
					<value>Approved</value>
				</detail>
				<detail xsi:type="keyStringValuePair">
					<key>ProviderResponseMessage</key>
					<value>Approved</value>
				</detail>
			</paymentStateDetails>
		</state>
		<isExecuted>true</isExecuted>
		<baseAmount currencyCode="EUR">16.6</baseAmount>
		<paymentDetails>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderTransactionID</key>
				<value>3988880444848780288</value>
			</detail>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderExternalID</key>
				<value>991539</value>
			</detail>
		</paymentDetails>
		<paymentAccount>
			<paymentAccountID>ad97b590-2f24-4f87-9449-55cd0ef10672</paymentAccountID>
		</paymentAccount>
	</payment>
</initiatePaymentResponse>

Following field is returned in paymentDetails of initiatePaymentResponse:

Field nameDescription
ProviderTransactionID Sightline`s unique transactionID.

Possible payment states in initiatePaymentResponse:

Payment StateDescription
DepositedByProviderSuccess state
RefusedByProviderWithdrawal was refused by provider
ProviderCommunicationErrorError state because of failed communication with the provider, unexpected response received, etc. See State.Description for more details.

State Diagram

601

Notifications

The standard notification mechanism is used for notifying the merchant in the background (asynchronously) about payment state changes. For more information see PaymentStateChangedNotification.

The final execution status has the following payment states:

Payment StatesDescription
RefusedByProvider (100) Error state; payment was not accepted by provider.
DepositedByProvider (29) Success state; payment has been executed.
Cancelled (113) Error state; payment was refused by provider and automatically cancelled

Example handlePaymentStateChangedNotificationRequest:

Example handlePaymentStateChangedNotificationResponse: