Sightline Withdrawal

Payment Method Sightline Withdrawal is used in the US.

The following method IDs are covered in this section:

IDNameCredit/Debit State
173SightlineWithdrawalWithdrawnByProvider (20)

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

Redirect Integration

Payment Method SightlineWithdrawal is also available in the Checkout.

Example getRedirectData request, 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>Withdrawal</paymentDirection>
    </redirectParameters>
</getRedirectDataRequest>

Example getRedirectData request, 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>hc20210831180231</id>
         </user>
        <merchantTransactionID>{{checkoutMerchantTransactionID}}</merchantTransactionID>
        <grossAmount>100.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>173</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.test.kalixa.com/Checkout/PaymentMethods/173?requestData=2faif3jjdnxcl5ohpfpoqfwo_e8d221dd-c9fe-482c-8ef1-78e380c42971</redirectUrl>
    </redirectData>
</getRedirectDataResponse>

Customer using Sightline payment method to Withdraw funds

  • Customer is redirected to the PXP Checkout. The bank account used by customer for Sightline deposit is displayed to the customer.
  • Customer selects the bank account and initiates a payment using the Refund Now button available on the PXP Checkout screen.
  • PXP backend will send a notification to the merchant to approve the Withdrawal transaction. It is a synchronous callback to check with the merchant if the withdrawal is allowed or not.
  • To reject, Merchant needs to respond with ResultCode other than 0. Customer is redirected to the error url provided in the GetRedirectDataRequest.
  • To approve, Merchant needs to respond with ResultCode=0. Once the confirmation with ResultCode=0 is received from the merchant then PXP checkout sends the payment information to Mazooma.
  • Customer is redirected to the Pending page url which was provided by the merchant in the GetRedirectDataRequest. Payment status will be "PendingOnProvider"
  • Sightline processes the payment and send a notification to the PXP backend when processing is completed
  • On Successful transaction, payment status will be WithdrawnByProvider and PXP will initiate a PaymentStateChangedNotification. Merchant can display the success information to the customer.
  • On failed transaction, payment status will be RefusedByProvider and and PXP will initiate a PaymentStateChangedNotification. Merchant can display the failure information to the customer.

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

934

The below screenshot shows an example of the payment details page with already previously used payment account by the customer.

940

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 at Sightline
AccountIdentifierTypeId (string)ReferenceId = 1
MemberShipNumber = 2

The default value is ReferenceID unless specified differently 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

Example initiatePaymentRequest:

<initiatePaymentRequest xmlns="http://www.cqrpayments.com/PaymentProcessing">
	<merchantID>YourMerchantID</merchantID>
	<shopID>YourShopID</shopID>
	<merchantTransactionID>95fb785b-70eb-404f-810b-4232e8cb5198</merchantTransactionID>
	<paymentMethodID>173</paymentMethodID>
	<amount currencyCode="USD">25</amount>
	<userID>693db0b6-a66c-437f-9635-f48e20</userID>
	<userData>
		<username>693db0b6-a66c-437f-9635-f48e20</username>
		<firstname>Clark</firstname>
		<lastname>Kent</lastname>
		<currencyCode xsi:nil="true"/>
		<languageCode xsi:nil="true"/>
		<email xsi:nil="true"/>
		<address>
			<street xsi:nil="true"/>
			<houseName xsi:nil="true"/>
			<houseNumber xsi:nil="true"/>
			<houseNumberExtension xsi:nil="true"/>
			<postalCode xsi:nil="true"/>
			<city xsi:nil="true"/>
			<state xsi:nil="true"/>
			<countryCode2>US</countryCode2>
			<telephoneNumber xsi:nil="true"/>
		</address>
		<identificationNumber>2952423828234234</identificationNumber>
	</userData>
	<userIP>127.0.0.1</userIP>
	<userSessionID>eab713a2-8997-4ad0-b65e-aee2ca26f91c</userSessionID>
	<creationTypeID>1</creationTypeID>
	<specificPaymentData>
		<data xsi:type="keyStringValuePair">
			<key>LanguageCode</key>
			<value>en</value>
		</data>
		<data xsi:type="keyStringValuePair">
			<key>PaymentDescription</key>
			<value>2e1f954f-e854-4982-99d8-797f135f1921</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>173</key>
			<value>SightlineWithdrawal</value>
		</paymentMethod>
		<merchantTransactionID>95fb785b-70eb-404f-810b-4232e8cb5198</merchantTransactionID>
		<paymentID>b3f4230e-5ffc-4d28-b4c1-f9fa45460897</paymentID>
		<userID>693db0b6-a66c-437f-9635-f48e20</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>7455d99e-b509-494a-882d-4503571d9cf8</id>
			<definition>
				<key>20</key>
				<value>WithdrawnByProvider</value>
			</definition>
			<createdOn>2013-09-25T08:37:19.2733349Z</createdOn>
			<description>WithdrawnByProvider</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>8788346636170228736</value>
			</detail>
			<detail xsi:type="keyStringValuePair">
				<key>ProviderExternalID</key>
				<value>991546</value>
			</detail>
		</paymentDetails>
		<paymentAccount>
			<paymentAccountID>45e807da-5516-41b5-b0a2-573cb73ab3af</paymentAccountID>
		</paymentAccount>
	</payment>
</initiatePaymentResponse>

The following field is returned in paymentDetails of initiatePaymentResponse:

Field nameDescription
ProviderTransactionID Sightline`s unique transactionID

State diagram

576

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
WithdrawnByProvider (20) Success state; payment has been executed
ProviderCommunicationErrorOccurred (233)Error state; a communication error has occured. Please note that the payment can still be moved to a success state through the reconciliation.
WithdrawErrorReportedByProvider (21)Error state; an error was returned by provider.