Sightline Withdrawal
Payment Method Sightline Withdrawal is used in the US.
The following method IDs are covered in this section:
ID | Name | Credit/Debit State |
---|---|---|
173 | SightlineWithdrawal | WithdrawnByProvider (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.
The below screenshot shows an example of the payment details page with already previously used payment account by the customer.
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 name | Description |
---|---|
ProviderTransactionID | Sightline`s unique transactionID |
State diagram
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 States | Description |
---|---|
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. |
Updated over 2 years ago