SmartPay API IntegrationGuide

Embed Size (px)

Citation preview

  • 7/28/2019 SmartPay API IntegrationGuide

    1/45

    Barclaycard SmartPay

    API Integration Guide

    Version 3.0 released April 2012

  • 7/28/2019 SmartPay API IntegrationGuide

    2/45

    DOC Version Control

    Version No. Date Issued Reason for Change1.0 August 2010 Initial Document2.0 February 2012 Update3.0 April 2012 Update

    COPYRIGHT NOTICENo part of this publication may be reproduced, stored in a retrieval system or transmitted in any

    form or by any means electronic or mechanical, including photocopying and recording, for any

    purpose, without the prior written permission of Product Development, Barclaycard Global Payment

    Acceptance, Barclays Bank PLC

  • 7/28/2019 SmartPay API IntegrationGuide

    3/45

    Contents

    Purpose of this Document................................................................................................... 4

    Intended Audience ............................................................................................................... 4

    Contacting us ...................................................................................................................... 4

    Documentation & Code Examples ....................................................................................... 4

    Glossary ...............................................................................................................................5

    How to use this Document .................................................................................................. 6

    Payment Process .................................................................................................................7

    Introduction ............................................................................................................................. 7Payment Process.................................................................................................................... 7Step 1 Order Ready ............................................................................................................. 7Step 2 Submitting Transaction Request........................................................................... 7Step 3 Transaction Result..................................................................................................10

    Notifications ....................................................................................................................... 11

    Additional Payment Response Data ...................................................................................12

    Address Verification Service (AVS) ....................................................................................13

    Test AVS Result .................................................................................................................... 13

    Modifications......................................................................................................................14

    Internet Authentication ......................................................................................................15

    API - Oneclick Payments.....................................................................................................18

    Retrieving the Stored Details for a Customer ................................................................... 19Submitting a RECURRING Payment...................................................................................22

    API - Recurring Payments...................................................................................................23The Initial Payment example RECURRING ......................................................................23Retrieving the Stored Details for a Customer ...................................................................24Submitting a RECURRING Payment...................................................................................26Updating Stored Details.......................................................................................................27Disabling Stored Details.......................................................................................................27

    API - Tokenisation.............................................................................................................. 28

    Tokenising a Payment Detail .............................................................................................. 28

    Processing a Refund Card Deposit...................................................................................31

    Independent Refund - Directly Depositing Funds on a Card...........................................33Notification.............................................................................................................................33

    iDEAL Payments................................................................................................................ 34

    Retrieving the list of iDEAL issuers .................................................................................... 34Setting up an iDEAL Payment Session..............................................................................35Checking the status of a payment......................................................................................37

    ELV Payments ................................................................................................................... 40

    Appendix Test and Live URLs .........................................................................................41

    URLs for test......................................................................................................................... 41URLs for Live.........................................................................................................................42

    Appendix SOAP Faults.................................................................................................... 43

  • 7/28/2019 SmartPay API IntegrationGuide

    4/45

    Purpose of this Document

    This guide provides you with the essential information required to integrate your service tocommunicate with Barclaycard SmartPay using the API. It also provides details on howBarclaycard SmartPay handles transactions that can be authenticated under the InternetAuthentication service.

    This document should be used in conjunction with the Barclaycard SmartPay IntegrationGuide, which covers aspects of the modification messages and other options which areavailable. A link to the latest documentation can found at the bottom of this page.

    Intended Audience

    This document is intended for use by:

    Merchants performing their own integrations Web developers working on behalf of merchants Merchant Development PartnersIt is recommended that the merchant responsible for the merchant account reviews thisdocument to ensure appropriate configuration of the account.

    A thorough knowledge of HTML, SOAP and web-based scripting language is required forsuccessful integration of Barclaycard SmartPay. You must ensure that you have thenecessary experience with the required skill sets in order to avoid problems with yourintegration.

    If you have any queries or questions whilst reading this document, please feel free to contactthe support team.

    Contacting us

    Contact our support team via email at:-

    [email protected]

    Alternatively you can call our support team on the following numbers:-

    From the UK - 01604 269518*Outside the UK - +441604269518*

    Support hours:-

    Monday to Friday: 8.00 to 18:00 GMT

    * Calls may be monitored or recorded to maintain high levels of security and quality ofservice

    Documentation & Code Examples

    This guide and other useful documents, which can help you with you integration and storesetup, can be found at the support website. Please refer to your set up email.

    - 4 -

    mailto:[email protected]:[email protected]
  • 7/28/2019 SmartPay API IntegrationGuide

    5/45

    - 5 -

    Glossary

    Term Definition

    3D SecureAlso referred to as Internet Authentication, this term is used to describe theprocess of Verified by Visa and MasterCard SecureCode

    API Application Programming Interface

    AVS Address Verification Service

    CLIEOP Dutch Direct Debit batch submission format

    CSC Card Security Code also known as CV2, CVV2, CVC, CID and CVN

    ELFPROEF Also known as the eleven test it is the format that all Dutch 9 digit bankaccount numbers conform to

    GBP Great British Pound (Sterling)

    HMAC Hash Message Authentication Code a method of encrypting data

    HPP Hosted Payment Page Barclaycard SmartPays payment pages whichtake the payment for you

    HTML Hypertext Mark up Language language used to construct web pages

    HTTP HyperText Transfer Protocol the protocol used most often to transferinformation from World Wide Web servers to browsers. Also calledHyperText Transport Protocol

    HTTPS HyperText Transfer Protocol, Secure a version of http for secure

    transactions

    ISO International Standards Organisation a recognised protocol fortransaction transmission

    PCI DSSPayment Card Industry Data Security Standard The security standard forhandling card data.

    RSS Really Simple Syndication or Rich Site Summary

    MasterCardSecureCode

    MasterCards process to authenticate the customer as the cardholderduring online purchases

    BarclaycardSmartPay

    Barclaycards secure payment service

    SOAP Simple Object Access Protocol a generic message structure used byprogramming languages to communicate data in a standard format.

    SSL Secure Sockets Layer a protocol designed to provide securecommunications on the internet

    URL Uniform Resource Locator an internet address

    VbV Verified by Visa Visas process to authenticate the customers as thecardholder for online purchases

    WSDL Web Service Definition Language XML based language that provides astructure to a web service

  • 7/28/2019 SmartPay API IntegrationGuide

    6/45

    How to use this Document

    This document combines essential integration and user information, plus tips on how to getthe most from the Barclaycard SmartPay products. For ease of use, it is indexed by Section,Topic and Product as shown below:

    Section Topic

    A Recurring Payments

    This type of header will appear at the start of each new subject. There are 9 Sections.

    The Topicprovides information on what can be performed by Barclaycard SmartPay withinthe section. You can mix and match the topics within the sections to tailor this user guideto your specific needs.

    Section Content Description

    A Payment Process How the payment pages can fit into thepurchase process.

    B Additional ResponseData

    Covers the additional fields and valuesthat can be returned if required.

    C Address VerificationService

    How to pass the billing address as partof the transaction

    D Internet Authentication Explains the additional fields and stepsto include Internet Authentication in theAuthorisation request.

    E One Click Payments Covers how payment details can bestored for repeat customers

    F Card Deposit How to issue a credit without an originaltransaction

    G Payment methods Explains how to integrate with otherpayment methods such as ELV andiDEAL

    H Appendix

  • 7/28/2019 SmartPay API IntegrationGuide

    7/45

    Section Topic

    APayment Process

    Introduction

    The Barclaycard SmartPay API enables you to submit payments to the BarclaycardSmartPay payment system using a SOAP API. There are some situations in which you mayneed to capture the payment details on your PCI DSS compliant site and then use the SOAPAPI to submit these to Barclaycard SmartPay.

    Please Note - API Payments are not enabled by default. Please contact the SmartPaysupport team to enable this functionality.

    Payment Process

    You will need to ensure that your site is PCI DSS compliant to capture payment details. Thisguide explains how your PCI DSS compliant site could be integrated with BarclaycardSmartPay and the steps involved.

    Step 1 Order Ready

    When one of your customers visits your website/shopping cart and adds the products orservices they wish to purchase into their shopping basket, your site may then store thisinformation in an orders database with a unique order reference which your system creates.This can be passed over with the customers payment details to Barclaycard SmartPay.

    Step 2 Submitting Transaction Request

    Submitting API payments is implemented as a SOAP service, using the same URL, WSDL, Tosubmit modification messages, you must supply HTTP basic authentication credentials(username/password). The username you should use [email protected], you can set the password for this user in theSmartPay Backoffice (under settings->users). Please note that like modifications, APIpayments also require HTTP basic authentication.

    First we will explain a simple credit card submission. In subsequent sections we will explainhow to implement Internet Authentication (Verified by Visa / MasterCard SecureCode) andother payment methods like ELV and iDEAL.

    The fields in the transaction request are:

    merchantAccount - the merchant account you want to process this payment with. amount- the amount to authorise. This consists of a currency code and a value which is

    the amount in minor units (please see the Barclaycard SmartPay Integration Guide for anexplanation for the paymentAmount session fields).

    reference - your reference for this payment, this could be your shopping basketreference. Although it is a good idea to make sure it is unique, this is not a requirement.This reference will be used in all communication to you about the status of the payment.(max field length 80 characters)

    shopperIP (optional) - The IP address of the customer. Used in various risk checks (e.g.number of payment attempts, location based checks) so it is good practise to supply

    http://mary/public/Smartpay/Webpage-Documentation-Code_Separation2012_IW/Documentation%20and%20Code/for%20legal%20review/Pleasehttp://mary/public/Smartpay/Webpage-Documentation-Code_Separation2012_IW/Documentation%20and%20Code/for%20legal%20review/Please
  • 7/28/2019 SmartPay API IntegrationGuide

    8/45

    this.

    card - A container for credit card data. This should contain the following items:o expiryMonth - The expiration date's month part. Supply as a 2 digit string

    padded with 0 (e.g. 03 or 12)

    o expiryYear- The expiration date's year part written in full (e.g. 2008)o

    holderName - The card holder's name (as embossed on the card)o number- The card numbero cvc - The card validation code, also known as Card Security Code (CSC).o issueNumber - The issue numbero startMonth - same format as expiryMontho startYear - same format as expiryYear

    shopperEmail(optional) - The email address of the customer. If available it is useful tospecify it as it is used in a velocity fraud check.

    shopperReference(optional) - An ID that refers uniquely to the customer (e.g. acustomer ID in a shopping cart system). If supplied the shopperReference can be used invelocity fraud checking. (max field length 80 characters)

    Please Note: Example soap payment request and response on the following page.

    - 8 -

  • 7/28/2019 SmartPay API IntegrationGuide

    9/45

    You should use a SOAP toolkit to generate the actual SOAP request. Below is an example ofa SOAP API request.

    EUR2000

    737122012Mr Test4111111111111111

    YourMerchantYour Reference

    [email protected] Hopper

    Example SOAP Payment Request

    641588313547924770610Authorised

    Example SOAP Payment Result

    - 9 -

    http://schemas.xmlsoap.org/soap/envelope/http://www.w3.org/2001/XMLSchemahttp://www.w3.org/2001/XMLSchema-instancehttp://payment.services.adyen.com/http://payment.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://www.w3.org/2001/XMLSchema-instancehttp://www.w3.org/2001/XMLSchemahttp://schemas.xmlsoap.org/soap/envelope/
  • 7/28/2019 SmartPay API IntegrationGuide

    10/45

    Step 3 Transaction Result

    If the message passes validation a risk analysis will be performed and, depending on theoutcome, authorisation attempted. You will receive a response with the following fields:

    pspReference The unique reference assigned by Barclaycard SmartPay to thepayment. This is globally unique and must be used when communicating about thispayment to us. (max field length 16 characters)

    resultCode - The result of the payment: Authorised, Refused, Error". authCode - If the payment was successful, this field contains the authorisation code. In all

    other cases it will be blank.

    refusalReason - If the payment was refused, the refusal reason will be specified here. Alist of the possible return values and their meaning can be found in the following table.

    refusalReason Description

    RefusedDeclined by issuer (eg insufficient funds or notsuitable for this use)

    ReferralDeclined by issuer (card holder needs to contactbank)

    Acquirer Error Declined because of an error with the acquirer

    Blocked CardDeclined because the card is blocked (e.g. lost orstolen)

    Expired Card Declined because card is no longer valid

    Invalid Amount Declined because amount is incorrect

    Invalid Card Number Declined because card number does not exist

    Issuer UnavailableDeclined because of a system error at the issuerside

    FraudDeclined by Barclaycard SmartPay due to fraudsuspicion

    In addition to the result returned you can also receive a notification message to you specifynotification script. Further details on notifications can be found in the Barclaycard SmartPayIntegration Guide.

    - 10 -

  • 7/28/2019 SmartPay API IntegrationGuide

    11/45

    Section Topic

    D Notifications

    Whenever a payment is made or a modification is processed, we will notify you of the eventand whether or not it was performed successfully. Within your SmartPay back-office you canconfigure a URL that you wish to receive these messages. Notifications should be used tokeep your own back-office systems up to date with the status of each payment ormodification to a payment is made.

    Notifications allow you to receive updates on a payments status, for example you will receivea notification when a payment is processed and authorised. If the payment is then refundedusing the back-office or a modification request you will receive a further a notificationconfirming the payment status has changed.

    If you choose to use the SmartPay subscription reports you will also receive a notification toconfirm the report is available.

    The notification message also includes additional authorisation information that is notincluded at other points in the payment process.

    You must to ensure you have configured a Notification URL before you move your accountfrom Test to Live.

    You can configure the Notification settings in the Barclaycard SmartPay Backoffice. For moreinformation please refer to the SmartPay Notifications Guide.

    - 11 -

  • 7/28/2019 SmartPay API IntegrationGuide

    12/45

    - 12 -

    Section Topic

    BAdditional Payment Response Data

    Extra response fields can be added to the SOAP response in the additionalData field. These

    extra response fields are not enabled by default; if you require them please contactBarclaycard SmartPay support to enable this for your Merchant Account.

    Referred If the issuer has referred the payment then this field will have the value oftrue,otherwise the field will not be available.

    authCode - If the payment was successful, the authCode (authorisation code) field willcontain a value. In all other cases it will be blank.

    cvcResult - The CSC result of the payment. All possible values:Value Description

    0 Unknown1 Matches

    2 Does not match3 Not checked4 No CSC provided, but was required5 Issuer not certified for CSC6 No CSC Provided

    avsResult - The AVS result of the payment. All possible values:Value Description

    0 Unknown1 Address matches, postal code doesn't2 Neither postal code nor address match

    3 AVS unavailable4 AVS not supported for this card type5 No AVS data provided6 Postal code matches, address doesn't match7 Both postal code and address match8 Address not checked, postal code unknown9 Address matches, postal code unknown10 Address doesn't match, postal code unknown11 Postal code not checked, address unknown12 Address matches, postal code not checked13 Address doesn't match, postal code not checked14 Postal code matches, address unknown

    15 Postal code matches, address not checked16 Postal code doesn't match, address unknown17 Postal code doesn't match, address not checked18 Neither postal code nor address were checked

    If available, it is also possible to receive the raw results that we receive from the acquirer.This is an extra setting that must be enabled for your Merchant Account. This setting will addthe following fields to the additionalDatafield of the SOAP response.

    cvcResultRaw - The raw CSC result received from the Acquirer, if available. avsResultRaw - The raw AVS result received from the Acquirer, if available. refusalReasonRaw - The raw refusal reason received from the Acquirer, if available.

  • 7/28/2019 SmartPay API IntegrationGuide

    13/45

    Section Topic

    CAddress Verification Service (AVS)

    Address Verification System (AVS) is a security feature that verifies the billing address of thecard holder. It does so by comparing the numeric portions of the card holder's registered

    billing address to those entered by the customer. AVS is only supported on a limited set ofacquiring connections and only for a limited set of countries (United States, Great Britain andCanada) and card types. Please check which AVS options are supported with your technicalcontact at Barclaycard.

    You should supply the full address of the customer as a billingAddress sub-element of thecard element.

    Billing Address Example (AVS)

    BurbankSouth Buena Vista Street50091521CaliforniaUS

    Note that the country is the 2-letter ISO country code (e.g. GB for the Great Britain).

    Please note: an invalid country code will result in the payment request being rejected.

    Test AVS Result

    It is possible to test the 19 different AVS result codes. If the streetbillingAddress field has thevalue:

    Test AVS result

    You can specify the avsResult value in the houseNumberOrName field. Note that all otherbilling address fields are still required, but the value does not matter.

    The avsResult for the following example returns 17.

    Test avsResult Billing Address Example

    TestCityTest AVS result171111TestStateNL

    http://payment.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://payment.services.adyen.com/
  • 7/28/2019 SmartPay API IntegrationGuide

    14/45

    Section Topic

    DModifications

    It is possible to perform modifications using your account on the Barclaycard SmartPay

    Backoffice. It is generally a good idea to automate this if you are processing more than ahandful of payments daily. For this we offer a SOAP web service which accepts themodification requests from your Backoffice systems.

    The modification types include:

    capture refund cancel cancelOrRefund

    To submit modification messages, you must supply HTTP basic authentication credentials(username/password). The username you should use [email protected], you can set the password for this user in theMerchant Backoffice (under settings->users).

    For more information please refer to the SmartPay Modifications Guide.

    - 14 -

  • 7/28/2019 SmartPay API IntegrationGuide

    15/45

    Section Topic

    EInternet Authentication

    In order to process Internet Authentication (Verified by Visa/MasterCard SecureCode)

    payments, the payment process can include the customer being redirected to their cardissuer to authenticate themselves before the payment can be authorised.

    In order for you to start processing Internet Authenticated transactions, the followingchanges are required.

    1. Your processing account needs to be configured by Barclaycard SmartPay to supportInternet Authentication.

    2. Your software should support redirecting the customer to the card issuer and submittinga second API call to complete the payment.

    The initial API call is the same as a standard authorise/paymentRequest(please see PaymentProcess section of the guide) except that you are also required to supply a browserInfoelement as a sub-element of the payment request which is a container for the acceptHeaderand userAgent of the customer's browser, e.g.:

    BrowserInfo Example

    text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

    Mozilla/5.0 (X11; U; Linux i686; en-US;rv:1.9) Gecko/2008052912 Firefox/3.0

    When your account is configured for Internet Authentication, Barclaycard SmartPayperforms a directory inquiry to check if the card is enrolled for Internet Authentication. If thecard isn't enrolled, the response will be the same as a normal API authorisation. However, ifthe card is enrolled, the response will contain the following fields:

    paRequest - The Internet Authentication request data for the issuer md - The payment session issuerUrl - The URL to direct the customer to resultCode - The resultCode will be RedirectShopperOn receiving a response you should create a HTML form with the following fields. It isrecommended that the form is self-submitting with a fallback in case JavaScript is disabled.

    PaReq Taken from the paRequest. TermUrl The URL you wish the customer to be returned to after completing the

    Internet Authentication process.

    MD Taken from the md response.The form should be configured to submit to the issuerUrl supplied in the response. Anexample form which does this is presented below:

    - 15 -

    http://payment.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://payment.services.adyen.com/
  • 7/28/2019 SmartPay API IntegrationGuide

    16/45



    Processing your 3-D Secure Transaction

    Please click continue to continue the processing

    of your 3-D Secure transaction.

    Example 3-D Secure HTML Form

    After the customer authenticates with their issuer, the issuer will return the customer to yoursite by sending an HTTP POST request to the TermUrl containing the MD and PaResparameters which you will need to complete the payment.

    To complete the payment these parameters should be submitted to the authorise3daction. The following fields should be submitted:

    merchantAccount The merchant account you want to process this payment with (thisshould be the same as in the original authorise request)

    browserInfo The browser info element as explained above. It is safe to use the valuesfrom the current request, as they are unlikely to change during the course of a payment.

    md The value of the MD parameter received from the issuer paResponse The value of the PaRes parameter received from the issuer. shopperIP (not required) The IP address of the customer. Used in various risk checks

    (e.g. number of payment attempts, location based checks) so it is good practise tosupply this.

    - 16 -

  • 7/28/2019 SmartPay API IntegrationGuide

    17/45

    Again, although you should use a SOAP toolkit to generate the actual SOAP request, theauthorise3d request will look something like the following example.

    The response to this request is the same as a normal authorisation and the resultcode willbe one of: authorised, refused or error.

    text/html,appli.../*;q=0.8Mozilla/5.0 ...Firefox/3.031h..........vOXek7w=

    YourMerchanteNqtmF........wGVA4Ch62.194.82.12

    Authorise3D Request Example

    - 17 -

  • 7/28/2019 SmartPay API IntegrationGuide

    18/45

    Section Topic

    EAPI - Oneclick Payments

    One-Click Payments can be used to allow repeat/known customers to pay without thecustomer re-entering their payment details each time. This is achieved by allowing yourcustomers to store their payment details during their first payment and using these detailsfor subsequent requests. Depending on the payment method, the customer may have toenter a validation code (such as their credit card's CSC code). Currently One-Click paymentswork with card and ELV payments.

    The Initial Payment

    The initial payment (or subsequent payments with different details) are normal payment

    requests as described in Section A Payment Process. The only difference is the addition ofthe Recurring object to the payment request and that the shopperReference andshopperEmail are required.

    The Recurring object contains the following fields:

    contract - This should be set to the value ONECLICK recurringDetailName (optional) - This is a short description the customer can enter to

    identify their payment details. (e.g. My Visa card).

    If the payment is successful, the details will be stored. Payment example on following page.

    - 18 -

  • 7/28/2019 SmartPay API IntegrationGuide

    19/45

    GBP5000737122012Test Test4111111111111111YourMerchantAccountYourMerchantReferencetest@test.comTheShopperReferenceONECLICK

    Example ONECLICK Payment Request

    Retrieving the Stored Details for a Customer

    When a known customer wants to make a payment, you will check with BarclaycardSmartPay to find out if there are any stored details available which could be used to completetheir payment.

    Please Note: You should always wait a few minutes before doing a listRecurringDetail call.There is no need to do this directly after the payment.

    This is done by calling the listRecurringDetails action on the Recurringservice with aRecurringDetailsRequest. The RecurringDetailsRequest has two fields:

    merchantAccount - Your merchant account shopperReference - The reference to the customer

    Example listRecurringDetails request can be found on the following page.

    - 19 -

  • 7/28/2019 SmartPay API IntegrationGuide

    20/45

    ONECLICKYourMerchantAccountTheShopperReference

    Example listRecurringDetails SOAP Request for ONECLICK

    The response will be a listRecurringDetailsResponse with a list of zero or more detailscontaining:

    recurringDetailReference - The reference the details are stored under (max field length 16 characters)

    name - The name given to the details by the customer (can be empty). Variant - The payment method (e.g. mc, visa or elv) creationDate The date when the recurring details were created

    The customer payment detail summaries are stored in the same object types as you wouldhave submitted in the initial payment. Depending on the payment method, one or morefields may be left blank or incomplete (e.g. CSC for card). Only one of the details below will bereturned, the others will be nil.

    card - If the payment method is a card payment, this field will contain a Card object asyou would have submitted this in a payment, with only the last four digits present in thecard number and without a CSC value.

    elv - If the payment method is an ELV payment, this will contain a fully populated ELVobject.

    You should decide how many details you would like to disclose to the customer, for

    example the full bank details are returned for ELV, but you may choose to display onlythe last 2digits. You could also use this as a verification mechanism by asking thecustomer for the last two digits of their bank account number for verification.

    An example listRecurringDetailsResponse response can be found on the following page

    - 20 -

  • 7/28/2019 SmartPay API IntegrationGuide

    21/45

    2009-10-27T11:26:22.203+01:00201212Adyen Test21111

    2009-10-27T11:26:22.216+01:00RecurringDetailReference2visaemail@shopper.comTheShopperReference

    - 21 -

  • 7/28/2019 SmartPay API IntegrationGuide

    22/45

    - 22 -

    Please note - that if you update a stored detail (see below) the recurringDetailReference forthat detail will change and that cache entry should be invalidated.

    Submitting a ONECLICK Payment

    When submitting a payment using a payment detail returned from the listRecurringDetails, anormal payment request is generated, which follows the same rules as the initial paymentand should be submitted to the Paymentservice. This means that the shopperReference andshopperEmail are required and that a Recurring object should be present and contain valueONECLICK for the contract field. However, the recurringDetailName should not be supplied.

    One additional field is added to the standard payment request:

    selectedRecurringDetailReference - This is the recurringDetailReference you need to usefor this payment. The value LATESTcan be used to select the most recently usedrecurring detail.

    In case of a card payment, you should supply a Card object in the payment request with onlythe CSC value populated (see below). Other payment methods do not require you to supplyan empty payment method specific object (e.g. you do notneed to supply an empty ELVobject for an ELV payment).

    GBP5000737YourMerchantAccountYourMerchantReferencetest@test.comtesttestLATEST

    ONECLICKContAuth

    Example ONECLICK Payment Request

  • 7/28/2019 SmartPay API IntegrationGuide

    23/45

    Section Topic

    FAPI - Recurring Payments

    Creating a recurring contract is done by having the shopper perform a regular payment andstoring the card details. We refer to this as the initial payment. Recurring payments reuse

    payment details submitted earlier in the initial payment by the shopper to perform thepayment.

    The Initial Payment example RECURRING

    The only difference to a standard payment request is the addition of the Recurring object tothe payment request and that the shopperReference and shopperEmail are required.

    The Recurring object contains the following fields:

    contract - This should be set to the value RECURRING recurringDetailName (optional) - This is a short description the customer can enter to

    identify their payment details. (e.g. My Visa card).

    If the payment is successful, the details will be stored. Please see initial payment examplebelow.

    GBP5000737122012Test Test4111111111111111YourMerchantAccount

    [email protected]

    Example RECURRING Payment Request

  • 7/28/2019 SmartPay API IntegrationGuide

    24/45

    - 24 -

    Retrieving the Stored Details for a Customer

    When a known customer wants to make a payment, you will check with BarclaycardSmartPay to find out if there are any stored details available which could be used to completetheir payment.

    Please Note: You should always wait a few minutes before doing a listRecurringDetail call.There is no need to do this directly after the payment.

    This is done by calling the listRecurringDetails action on the Recurringservice with aRecurringDetailsRequest. The RecurringDetailsRequest has two fields:

    merchantAccount - Your merchant account shopperReference - The reference to the customerRECURRINGYourMerchantAccountTheShopperReference

    Example listRecurringDetails SOAP Request for RECURRING

    The response will be alistRecurringDetailsResponse with a list of zero or more detailscontaining:

    recurringDetailReference - The reference the details are stored under (max field length 16 characters)

    name - The name given to the details by the customer (can be empty). Variant - The payment method (e.g. mc, visa or elv) creationDate The date when the recurring details were createdThe customer payment detail summaries are stored in the same object types as you wouldhave submitted in the initial payment. Depending on the payment method, one or morefields may be left blank or incomplete (e.g. CSC for card). Only one of the details below will bereturned, the others will be nil.

    card - If the payment method is a card payment, this field will contain a Card object asyou would have submitted this in a payment, with only the last four digits present in thecard number and without a CSC value.

    elv - If the payment method is an ELV payment, this will contain a fully populated ELVobject.You should decide how many details you would like to disclose to the customer, forexample the full bank details are returned for ELV, but you may choose to display onlythe last 2digits. You could also use this as a verification mechanism by asking thecustomer for the last two digits of their bank account number for verification.

  • 7/28/2019 SmartPay API IntegrationGuide

    25/45

    - 25 -

    2009-10-27T11:26:22.203+01:00

    201212Adyen Test21111

    2009-10-27T11:26:22.216+01:00RecurringDetailReference2visaemail@shopper.comTheShopperReference

  • 7/28/2019 SmartPay API IntegrationGuide

    26/45

    - 26 -

    Please note - that if you update a stored detail (see below) the recurringDetailReference forthat detail will change and that cache entry should be invalidated.

    Submitting a RECURRING Payment

    When submitting a payment using a payment detail returned from the listRecurringDetails, anormal payment request is generated, which follows the same rules as the initial paymentand should be submitted to the Paymentservice. This means that the shopperReference andshopperEmail are required and that a Recurring object should be present and contain valueRECURRING for the contract field. However, the recurringDetailName should not besupplied.

    One additional field is added to the standard payment request:

    selectedRecurringDetailReference - This is the recurringDetailReference you need to usefor this payment. The value LATESTcan be used to select the most recently usedrecurring detail.

    In case of a card payment, you should supply a Card object in the payment request with onlythe CSC value populated. Other payment methods do not require you to supply an emptypayment method specific object (e.g. you do notneed to supply an empty ELV object for anELV payment).

    GBP5000YourMerchantAccountYourMerchantReferencetest@test.comtesttestLATESTRECURRING

    ContAuth

    Example RECURRING Payment Request

  • 7/28/2019 SmartPay API IntegrationGuide

    27/45

    - 27 -

    Updating Stored Details

    The stored payment details may need to be updated (e.g. when the card expiry datechanges). Simply submit the One-Click payment and add the details to change to thepayment method specific object. For a card, this means that (for the example above) as wellas the CSC, the expiryMonth and expiryYear fields should contain the new values. In case of a

    payment method like ELV, you should supply an empty ELV object with the values that needto be changed populated.

    If the payment is successful, the details will be updated. Note that therecurringDetailReference for the detail will change (and the old one is no longer valid).Therefore the stored details must be retrieved again for the next payment.

    Disabling Stored Details

    Disabling a stored payment detail for a customer (or all of their stored payment details) is

    done by calling the disable action on the recurring service. This action takes aDisableRequest with the following fields:

    merchantAccount - Your merchant account shopperReference - The reference to the customer recurringDetailReference(optional) - The recurringDetailReference of the details you wish

    to disable. If you do not supply this field, all details for your customer will be disabled,including the contract. This means that you cannot add new details anymore.

    The response will be a DisableResult object with a single field response. If a single detail wasdisabled the value of this field will be [detail-successfully-disabled], if all details are disabledthe value is [all-details-successfully-disabled].

  • 7/28/2019 SmartPay API IntegrationGuide

    28/45

    - 28 -

    Section Topic

    EAPI - Tokenisation

    Tokenising a Payment Detail

    Rather than using an initial payment to create a recurring contract you can submit the detailsdirectly to the storeToken action on the Recurring service. Using this method you cantransfer the existing cards in your own records/existing payment gateway to SmartPay.

    Full validation does not occur when storing tokens since payment is not yet taking place. Forexample, if an expired credit card is provided, it will be stored and not rejected.

    Please Note: Tokenisation is not enabled by default. Please contact the SmartPay SupportTeam if you would like to this functionality enabled.

    The request has the following fields:

    merchantAccount - The merchant account you want to store this details for. shopperEmail - The email address of the shopper. shopperReference - An ID that uniquely refers to the shopper (e.g. a customer ID in a

    shopping cart system). recurring

    contract - What type of recurring contract is used. One of: ONECLICK - Credit card data is stored for future use. The card's

    security code (CSC/CVC) mustbe provided during subsequentpayments.

    RECURRING - Credit card data is stored for future use. The card'ssecurity code (CSC/CVC) is notrequired for subsequent payments.

    ONECLICK, RECURRING - Credit card data is stored for future use.The merchant decides whether the card'ssecurity code (CSC/CVC) isrequired during subsequent payments.

    recurringDetailName (optional) - An optional name that can be added to therecurring contract.

    Depending on the payment method one or more fields may be left blank or incomplete(e.g. CVC for card). Only one of the details below will be returned, the others will be nil.

    card - A container for credit card data. This contains the following items: expiryMonth - The expiration date's month written as a 2-digit string, padded

    with 0 if required (e.g. 03 or12). expiryYear - The expiration date's year part written in full (e.g. 2008). holderName - The card holder's name (as embossed on the card). number - The card number. Only the last 4 digits of the card number are returned(card summary)

  • 7/28/2019 SmartPay API IntegrationGuide

    29/45

    - 29 -

    cvc - The card validation code. This is the the CVC2 code (for MasterCard), CVV2(for Visa) or CID(for American Express). The value should always be emptybecause it will not be stored.

    issueNumber(Maestro UK only - deprecated) - The issue number. startMonth(Maestro UK only - deprecated) - As per expiryMonth. startYear(Maestro UK only - deprecated) - As per expiryYear.

    elv - A container for ELV data with the following fields: bankLocation - The city in which the bank (branch) is located. bankName - The name of the bank. bankLocationId - The location ID (Bankleitzahl) of the bank. accountHolderName - The account holder name. bankAccountNumber- The account number (Kontonummer).

    bank - A container for BankAccount data with the following fields: bankAccountNumber - The account number. bankLocationId - The location id of the bank (will be nil in most cases). bankName - The name of the bank. bic -The BIC code of the bank details (will be nil in most cases). countryCode - The country of the bank details. iban - The IBAN of the bank details (will be nil in most cases). ownerName - The account holder name.

    The response contains:

    rechargeReference - This is an Adyen internal value only. It should not be used forsubsequent recurring methods.

    recurringDetailReference - The reference the details are stored under. result - This returns Success if the token has been stored.

    Please see following page for an example of a storeToken request and response.

  • 7/28/2019 SmartPay API IntegrationGuide

    30/45

    - 30 -

    122012Adyen Test4111111111111111YourMerchantAccountRECURRING

    [email protected]

    Store Token Request

    RechargeReferenceRecurringDetailReference

    Success

    Store Token Response

  • 7/28/2019 SmartPay API IntegrationGuide

    31/45

    Section Topic

    HProcessing a Refund Card Deposit

    A Refund or Card Deposit allows you to transfer funds directly onto a card. There are 2methods to do this:

    1. Refund against an existing payment using a modification request.2. Independent Refund allows you to directly deposit funds on a card without an existing

    transaction. This requires you to submit the card details and is much like the process forsubmitting a direct payment.

    Refund using an existing payment

    In order to refund a payment, you will send a modification request to the refund actionusing the following fields:

    merchantAccount - The merchant account the payment was processed with. modificationAmount - The amount to refund. This consists of a currencyCode and a

    value which is the amount in minor units (see explanation for the paymentAmountsession field in the Hosted Payment Pages chapter). The currencyCode must matchthe value in the original payment.

    originalReference - This is the pspReference that was assigned to the authorisation.You will have received it with the payment status or with the authorisationnotification.

    If the message was syntactically valid and merchantAccount is correct you will receive arefundReceived response with the following fields:

    pspReference - A new reference to uniquely identify this modification request. response - The response. In case of success, this will be [refund-received]. In case

    of an error, an informational message will be returned.

    The actual result of the refund is sent via a notification with eventCode REFUND. ThepspReference of this notification is the same as the pspReference in the SOAP response.The success field indicates if the refund was successful, yes or no. If not (when success isfalse), the reason field of the notification will give a short description why.

    To submit a Refund modification request, you must supply HTTP basic authentication

    credentials (username/password). The username you should use [email protected], you can set the password for this user in theMerchant Backoffice (under settings->users).

    An example of a refund request is included on the following page.

    31

  • 7/28/2019 SmartPay API IntegrationGuide

    32/45

    YourMerchantAccountEUR500ThePaymentPspReference

    Example Refund Modification Request

    - 32 -

  • 7/28/2019 SmartPay API IntegrationGuide

    33/45

    Independent Refund - Directly Depositing Funds on a Card

    In order to use this method of refunding your merchant account must have API enabled,please contact our support team if you would like to submit this type of payment.

    To directly deposit funds onto a card (without reference to an existing transaction) is similar

    to submitting a payment to the API (please see section a Payment Process). The request isexactly the same as for a payment, however you will submit the request to therefundWithData method rather than the authorise method.

    EUR2000737122012Mr Test4111111111111111YourMerchantYour Reference

    [email protected] Hopper

    Example SOAP Independent Refund Request

    To submit a Independent Refund request, you must supply HTTP basic authenticationcredentials (username/password). The username you should use [email protected], you can set the password for this user in theMerchant Backoffice (under settings->users).

    Notification

    Notifications for card deposits (using both methods) are the same as for payments, but theeventCode is REFUND_WITH_DATA (see the Notifications chapter in the Integration Guide).Similarly to regular payments, you should check the success parameter to find out if thedeposit succeeded.

    - 33 -

  • 7/28/2019 SmartPay API IntegrationGuide

    34/45

    Section Topic

    I

    PaymentMethods

    iDEAL Payments

    You may decide to use our API for processing iDEAL payments. The following sectionsdescribe the process and explain the various SOAP calls you need to implement.

    Please note - that this API is relatively complex and that it is far easier to use the HostedPayment Pages (HPP) to process iDEAL.

    Retrieving the list of iDEAL issuers

    When starting the iDEAL payment, your customer will select their bank (iDEAL issuer) on thepayment page. You can use the retrieveIdealIssuerList action on the Ideal service to get alist of the iDEAL issuers. This list rarely changes and the results should be cached for at least

    24 hours. It is acceptable to retrieve the list at (web) application startup (or first use) andcache it in memory for the lifecycle of the web application (assuming the web applicationnormally runs for at least a day).

    Example Retrieve iDEAL Issuer List Request

    The result will be a retrieveIdealIssuerListResponse containing a list of iDEAL issuers. This listshould be presented to the customer preferably with the appropriate logos, these areavailable to download from our support site: https://support.barclaycardsmartpay.com).When the customer has selected their bank, the corresponding issuer ID is used in thesubsequent request.

    0081ShortFortis0021ShortRabobank

    0721Short

    - 34 -

    https://support.barclaycardsmartpay.com/https://support.barclaycardsmartpay.com/
  • 7/28/2019 SmartPay API IntegrationGuide

    35/45

    Postbank0031ShortABN Amro

    0751ShortSNS Bank

    Example iDEAL Issuers List Response

    Setting up an iDEAL Payment Session

    The next stage in processing an iDEAL payment is setting up the payment session andretrieving the URL the customer should be redirected to. This is done by submitting aBeginIdealRequest request object to the beginIdealPayment action.The request is rather like a normal payment request for a card payment, except that no carddetails are supplied and it contains the following extra fields:

    issuerId - The issuer ID as selected by the customer. entranceCode - Data of your choice, e.g. a session ID. This will be passed back in the

    return URL when the customer returns as a parameter ec. Maximum length is 40characters and valid characters are limited to uppercase/lowercase letters and digits.

    merchantReturnUrl - The return URL that the customer should be redirected to back toyour site. Maximum length is 512 characters. The iDEAL system will append extraparameters to this.

    language - Language preference, currently limited to nl or en. We recommend youuse nl as many iDEAL implementations only support Dutch and all customers usingiDEAL are expected to be able to operate their own home banking solution in Dutch.

    EUR1000

    49dce25b0721enYourMerchanthttps://www.yourwebshop.com/completeIdeal

    .php?shopperLocale=en_GB&merchantReference=Your%20Reference%20Here

    - 35 -

    http://schemas.xmlsoap.org/soap/envelope/http://www.w3.org/2001/XMLSchemahttp://www.w3.org/2001/XMLSchema-instancehttp://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/https://www.yourwebshop.com/completeIdeal.php?shopperLocale=en_GBhttps://www.yourwebshop.com/completeIdeal.php?shopperLocale=en_GBhttps://www.yourwebshop.com/completeIdeal.php?shopperLocale=en_GBhttps://www.yourwebshop.com/completeIdeal.php?shopperLocale=en_GBhttp://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://common.services.adyen.com/http://common.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://www.w3.org/2001/XMLSchema-instancehttp://www.w3.org/2001/XMLSchemahttp://schemas.xmlsoap.org/soap/envelope/
  • 7/28/2019 SmartPay API IntegrationGuide

    36/45

    Your Reference

    [email protected] Hopper

    Example iDEAL Payment Setup Request

    The response to this message will contain a parameter returnURL which you will use toredirect the shopper to their bank. Please note that, depending on your software toolkit, theampersand sign (&) may be XML escaped to (&) as in the example shown below.

    003007211412340428467237:1000:0721:241:lT9d1r3Jje

    gFkTJNpC0zBmDCnYM=1412340428467237RedirectShopperhttps://mijn.postbank.nl/internetbankieren/Ses

    amLoginServlet?sessie=ideal&trxid=0030902022738225&random=3c7c81ffbe5afaba

    0030902022738225

    Example Response to an iDEAL Payment Setup

    - 36 -

    http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://schemas.xmlsoap.org/soap/envelope/http://www.w3.org/2001/XMLSchemahttp://www.w3.org/2001/XMLSchema-instancehttp://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/https://mijn.postbank.nl/internetbankieren/SesamLoginServlet?sessie=idealhttps://mijn.postbank.nl/internetbankieren/SesamLoginServlet?sessie=idealhttp://payment.services.adyen.com/http://payment.services.adyen.com/https://mijn.postbank.nl/internetbankieren/SesamLoginServlet?sessie=idealhttps://mijn.postbank.nl/internetbankieren/SesamLoginServlet?sessie=idealhttp://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://www.w3.org/2001/XMLSchema-instancehttp://www.w3.org/2001/XMLSchemahttp://schemas.xmlsoap.org/soap/envelope/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/
  • 7/28/2019 SmartPay API IntegrationGuide

    37/45

    Checking the status of a payment

    When you have set up the iDEAL payment and redirected the customer to their bank, thecustomer can complete the payment. Barclaycard SmartPay will setup the payment sessionand will then take the responsibility to update the status of the payment. Therefore nofurther action is required by you for the payment to show up in the Barclaycard SmartPayBackoffice. If the payment was successful you will receive an authorisation notification.

    If you would like to know the status of the payment in real-time, when the customer returnsto the merchantReturnURL, the following logic can be implemented to check the paymentstatus:

    1. If the customer returns to the merchantReturnURL, check the status of the payment.Normally the final status of the payment will be available immediately. If theresultCode is Pending, wait for Barclaycard SmartPay to send the notification.

    2. If the customer does not return after 30 minutes and you have not received anotification from Barclaycard SmartPay, you may check the status of the payment. Ifthe resultCode is Pending, wait for Barclaycard SmartPay to send the notification.

    Please Note - due to limitations of the iDEAL system, in exceptional cases, it can take

    payment sessions an extended period to receive a final status. If after twenty four hours nonotification has been received the payment can be marked unsuccessful.

    To check the status of the payment when the customer returns you will call theretrieveStatusIdealPayment action with a request consisting of:

    entranceCode - The same value for this parameter as was specified by you when settingup the iDEAL payment. This is also passed as a parameter ec in the URL the shopperreturns with.

    merchantAccount - Your merchant account. (Please see Section A Payment Processfor more detail)

    pspEchoData - The value of this parameter was passed back in the response to theiDEAL payment setup. The data for this field is also passed as a parameter pspEchoDatain the URL the customer returns with.

    Reference - Your reference for this payment (Please see Section A Payment Processfor more detail)

    transactionId - The transactionId you received when setting up the payment. This is alsopassed as a parameter trxid in the URL the customer returns with.

    49dce25bYourMerchant1412340428467237:1000:0721:241:lT9d1r3Jje

    gFkTJNpC0zBmDCnYM=TMRef12340030902022738225

    - 37 -

    http://schemas.xmlsoap.org/soap/envelope/http://www.w3.org/2001/XMLSchemahttp://www.w3.org/2001/XMLSchema-instancehttp://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://www.w3.org/2001/XMLSchema-instancehttp://www.w3.org/2001/XMLSchemahttp://schemas.xmlsoap.org/soap/envelope/
  • 7/28/2019 SmartPay API IntegrationGuide

    38/45

    The response to this request will tell you what the status is of the payment session. TheresultCode tells you what the payment is in the SmartPay system. The iDEAL specific statuscode is relayed using the transactionStatus parameter.

    resultCode iDEAL transactionStatus Description

    Authorised Success Payment completed successfully

    Pending Open Payment status unknown at this time

    Refused Cancelled Customer cancelled the transaction

    Refused Expired The payment process didn't complete in time

    Refused Failure The payment failed for another reason

    Please Note - that the Barclaycard SmartPay system only stores an iDEAL payment as apayment visible in the Backoffice on an Authorised resultCode. The Refused resultCode isignored since it represents all abandoned/failed payment sessions, and not true refusals.If the payment is successful, the consumerAccountNumber, consumerName andconsumerCity will be returned.

    If the result of the status request is Pending (Open), there is an issue was the iDEALsystem preventing the determination of the final status. In this case the customer should beinformed that the final status of their payment is not yet known. The Barclaycard SmartPaysystem will keep polling for the status of the payment and inform you using a standardauthorisation notification when the final status becomes known and the payment completedsuccessfully. After 24 hours the payment attempt can be considered closed.

    In the event of a customer not returning to your result page at all, as mentioned above, theBarclaycard SmartPay system will (at regular intervals) continue to attempt to establish thefinal result of the payment. This is done with the maximum allowed frequency by the iDEALsystem so you should not attempt to duplicate this. If you have not received a notificationwithin 30 minutes (and the customer hasn't returned to your result page) you may submit asingle status request. If the resultCode is still Pending, you can consider the paymentattempt closed after 24 hours (this is an exceptional case, but may happen if, for example,the iDEAL system is undergoing maintenance).

    Example of a Status Response for a Successful iDEAL transaction on the following page:

    - 38 -

  • 7/28/2019 SmartPay API IntegrationGuide

    39/45

    - 39 -

    0030123456789AmsterdamJan

    Klaassen07511312350556460138Authorised0030905060041370Success

    Example of a Status Response for a Successful iDEAL transaction

    http://schemas.xmlsoap.org/soap/envelope/http://www.w3.org/2001/XMLSchemahttp://www.w3.org/2001/XMLSchema-instancehttp://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://payment.services.adyen.com/http://www.w3.org/2001/XMLSchema-instancehttp://www.w3.org/2001/XMLSchemahttp://schemas.xmlsoap.org/soap/envelope/
  • 7/28/2019 SmartPay API IntegrationGuide

    40/45

    Section Topic

    IPaymentMethods

    ELV Payments

    ELV (elektronisches Lastschriftverfahren) payments are a form of Electronic Direct Debitwhich is very popular in Germany.The request is the same as for a credit card request, but rather than supplying a cardcontainer, you supply an elv container with the following fields:

    bankLocation The city in which the bank (branch) is located bankNameThe name of the bank bankLocationId The location id (Bankleitzahl) of the bank accountHolderName The account holder name bankAccountNumber The account number (Kontonummer)An example elv element is shown below:

    Example ELV Element

    S. Hopper123123123Hamburg20010020Postbank Hamburg

    40

    http://payment.services.adyen.com/http://payment.services.adyen.com/
  • 7/28/2019 SmartPay API IntegrationGuide

    41/45

    Section Topic

    JAppendix Test and Live URLs

    Please find below a list of the URLs used by Barclaycard SmartPay, please note these havebeen divided between test and live, to access the corresponding account.

    URLs for test

    Payment SOAP Service -https://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Payment

    Payment SOAP Service WSDL https://pal-test.barclaycardsmartpay.com/pal/Payment.wsdl

    iDEAL SOAP Service -https://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Ideal

    iDEAL SOAP Service WSDL -https://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Ideal?wsdl

    Backoffice URL https://ca-test.barclaycardsmartpay.com/ca/ca/login.shtml

    Hosted Payment Pages (Multiple): -https://test.barclaycardsmartpay.com/hpp/select.shtml

    Hosted Payment Pages (Single) -https://test.barclaycardsmartpay.com/hpp/pay.shtml

    RSS Feed URL

    https://ca-test.barclaycardsmartpay.com/reports/rss/lasttxrss/MerchantAccount/**https://ca-test.barclaycardsmartpay.com/reports/rss/lasttxrss/Company/***

    Reports URL -https://ca-test.barclaycardsmartpay.com/reports/download/MerchantAccount/** /https://ca-test.barclaycardsmartpay.com/reports/download/Company/***/

    Modification SOAP Service https://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Payment

    Modification SOAP Service WSDL https://pal-test.barclaycardsmartpay.com/pal/Payment.wsdl

    Notification SOAP Service WSDL https://ca-test.barclaycardsmartpay.com/ca/services/Notification?wsdl

    Open Invoice SOAP Service WSDL https://ca-test.barclaycardsmartpay.com/ca/services/OpenInvoiceDetail?wsdl

    Recurring SOAP Service URL https://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Recurring

    Recurring SOAP Service WSDL https://pal-test.barclaycardsmartpay.com/pal/Recurring.wsdl

    41

    https://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Paymenthttps://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Paymenthttps://pal-test.barclaycardsmartpay.com/pal/Payment.wsdlhttps://pal-test.barclaycardsmartpay.com/pal/Payment.wsdlhttps://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Idealhttps://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Idealhttps://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Ideal?wsdlhttps://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Ideal?wsdlhttps://ca-test.barclaycardsmartpay.com/ca/ca/login.shtmlhttps://ca-test.barclaycardsmartpay.com/ca/ca/login.shtmlhttps://test.barclaycardsmartpay.com/hpp/select.shtmlhttps://test.barclaycardsmartpay.com/hpp/select.shtmlhttps://test.barclaycardsmartpay.com/hpp/pay.shtmlhttps://test.barclaycardsmartpay.com/hpp/pay.shtmlhttps://ca-test.barclaycardsmartpay.com/reports/rss/lasttxrss/MerchantAccount/**https://ca-test.barclaycardsmartpay.com/reports/rss/lasttxrss/MerchantAccount/**https://ca-test.barclaycardsmartpay.com/reports/rss/lasttxrss/MerchantAccount/**https://ca-test.barclaycardsmartpay.com/reports/rss/lasttxrss/Company/***https://ca-test.barclaycardsmartpay.com/reports/rss/lasttxrss/Company/***https://ca-test.barclaycardsmartpay.com/reports/rss/lasttxrss/Company/***https://ca-test.barclaycardsmartpay.com/reports/download/MerchantAccount/**/https://ca-test.barclaycardsmartpay.com/reports/download/MerchantAccount/**/https://ca-test.barclaycardsmartpay.com/reports/download/MerchantAccount/**/https://ca-test.barclaycardsmartpay.com/reports/download/MerchantAccount/**/https://ca-test.barclaycardsmartpay.com/reports/download/Company/***/https://ca-test.barclaycardsmartpay.com/reports/download/Company/***/https://ca-test.barclaycardsmartpay.com/reports/download/Company/***/https://ca-test.barclaycardsmartpay.com/reports/download/Company/***/https://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Paymenthttps://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Paymenthttps://pal-test.barclaycardsmartpay.com/pal/Payment.wsdlhttps://pal-test.barclaycardsmartpay.com/pal/Payment.wsdlhttps://ca-test.barclaycardsmartpay.com/ca/services/Notification?wsdlhttps://ca-test.barclaycardsmartpay.com/ca/services/Notification?wsdlhttps://ca-test.barclaycardsmartpay.com/ca/services/OpenInvoiceDetail?wsdlhttps://ca-test.barclaycardsmartpay.com/ca/services/OpenInvoiceDetail?wsdlhttps://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Recurringhttps://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Recurringhttps://pal-test.barclaycardsmartpay.com/pal/Recurring.wsdlhttps://pal-test.barclaycardsmartpay.com/pal/Recurring.wsdlhttps://pal-test.barclaycardsmartpay.com/pal/Recurring.wsdlhttps://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Recurringhttps://ca-test.barclaycardsmartpay.com/ca/services/OpenInvoiceDetail?wsdlhttps://ca-test.barclaycardsmartpay.com/ca/services/Notification?wsdlhttps://pal-test.barclaycardsmartpay.com/pal/Payment.wsdlhttps://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Paymenthttps://ca-test.barclaycardsmartpay.com/reports/download/Company/***/https://ca-test.barclaycardsmartpay.com/reports/download/MerchantAccount/**/https://ca-test.barclaycardsmartpay.com/reports/rss/lasttxrss/Company/***https://ca-test.barclaycardsmartpay.com/reports/rss/lasttxrss/MerchantAccount/**https://test.barclaycardsmartpay.com/hpp/pay.shtmlhttps://test.barclaycardsmartpay.com/hpp/select.shtmlhttps://ca-test.barclaycardsmartpay.com/ca/ca/login.shtmlhttps://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Ideal?wsdlhttps://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Idealhttps://pal-test.barclaycardsmartpay.com/pal/Payment.wsdlhttps://pal-test.barclaycardsmartpay.com/pal/servlet/soap/Payment
  • 7/28/2019 SmartPay API IntegrationGuide

    42/45

    - 42 -

    URLs for Live

    Payment SOAP Servicehttps://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Payment

    Payment SOAP Service WSDLhttps://pal-live.barclaycardsmartpay.com/pal/Payment.wsdl

    iDEAL SOAP Servicehttps://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Ideal

    iDEAL SOAP Service WSDLhttps://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Ideal?wsdl

    Backoffice URL https://ca-live.barclaycardsmartpay.com/ca/ca/login.shtml

    Hosted Payment Pages (Multiple): -https://live.barclaycardsmartpay.com/hpp/select.shtml

    Hosted Payment Pages (Single) -https://live.barclaycardsmartpay.com/hpp/pay.shtml

    RSS Feed URL https://ca-live.barclaycardsmartpay.com/reports/rss/lasttxrss/MerchantAccount/**https://ca-live.barclaycardsmartpay.com/reports/rss/lasttxrss/Company/***

    Reports URL -https://ca-live.barclaycardsmartpay.com/reports/download/MerchantAccount/**/https://ca-live.barclaycardsmartpay.com/reports/download/Company/***/

    Modification SOAP Service

    https://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Payment

    Modification SOAP Service WSDL https://pal-live.barclaycardsmartpay.com/pal/Payment.wsdl

    Notification SOAP Service WSDL https://ca-live.barclaycardsmartpay.com/ca/services/Notification?wsdl

    Open Invoice SOAP Service WSDL https://ca-live.barclaycardsmartpay.com/ca/services/OpenInvoiceDetail?wsdl

    Recurring SOAP Service URL https://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Recurring

    Recurring SOAP Service WSDL https://pal-live.barclaycardsmartpay.com/pal/Recurring.wsdl

    ** - replace this marker with your Merchant Account name.

    *** - replace this marker with your Company Account name.

    https://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Paymenthttps://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Paymenthttps://pal-live.barclaycardsmartpay.com/pal/Payment.wsdlhttps://pal-live.barclaycardsmartpay.com/pal/Payment.wsdlhttps://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Idealhttps://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Idealhttps://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Ideal?wsdlhttps://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Ideal?wsdlhttps://ca-live.barclaycardsmartpay.com/ca/ca/login.shtmlhttps://ca-live.barclaycardsmartpay.com/ca/ca/login.shtmlhttps://live.barclaycardsmartpay.com/hpp/select.shtmlhttps://live.barclaycardsmartpay.com/hpp/select.shtmlhttps://live.barclaycardsmartpay.com/hpp/pay.shtmlhttps://live.barclaycardsmartpay.com/hpp/pay.shtmlhttps://ca-live.barclaycardsmartpay.com/reports/rss/lasttxrss/MerchantAccount/**https://ca-live.barclaycardsmartpay.com/reports/rss/lasttxrss/MerchantAccount/**https://ca-live.barclaycardsmartpay.com/reports/rss/lasttxrss/MerchantAccount/**https://ca-live.barclaycardsmartpay.com/reports/rss/lasttxrss/Company/***https://ca-live.barclaycardsmartpay.com/reports/rss/lasttxrss/Company/***https://ca-live.barclaycardsmartpay.com/reports/rss/lasttxrss/Company/***https://ca-live.barclaycardsmartpay.com/reports/download/MerchantAccount/**/https://ca-live.barclaycardsmartpay.com/reports/download/MerchantAccount/**/https://ca-live.barclaycardsmartpay.com/reports/download/MerchantAccount/**/https://ca-live.barclaycardsmartpay.com/reports/download/MerchantAccount/**/https://ca-live.barclaycardsmartpay.com/reports/download/Company/***/https://ca-live.barclaycardsmartpay.com/reports/download/Company/***/https://ca-live.barclaycardsmartpay.com/reports/download/Company/***/https://ca-live.barclaycardsmartpay.com/reports/download/Company/***/https://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Paymenthttps://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Paymenthttps://pal-live.barclaycardsmartpay.com/pal/Payment.wsdlhttps://pal-live.barclaycardsmartpay.com/pal/Payment.wsdlhttps://ca-live.barclaycardsmartpay.com/ca/services/Notification?wsdlhttps://ca-live.barclaycardsmartpay.com/ca/services/Notification?wsdlhttps://ca-live.barclaycardsmartpay.com/ca/services/OpenInvoiceDetail?wsdlhttps://ca-live.barclaycardsmartpay.com/ca/services/OpenInvoiceDetail?wsdlhttps://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Recurringhttps://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Recurringhttps://pal-live.barclaycardsmartpay.com/pal/Recurring.wsdlhttps://pal-live.barclaycardsmartpay.com/pal/Recurring.wsdlhttps://pal-live.barclaycardsmartpay.com/pal/Recurring.wsdlhttps://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Recurringhttps://ca-live.barclaycardsmartpay.com/ca/services/OpenInvoiceDetail?wsdlhttps://ca-live.barclaycardsmartpay.com/ca/services/Notification?wsdlhttps://pal-live.barclaycardsmartpay.com/pal/Payment.wsdlhttps://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Paymenthttps://ca-live.barclaycardsmartpay.com/reports/download/Company/***/https://ca-live.barclaycardsmartpay.com/reports/download/MerchantAccount/**/https://ca-live.barclaycardsmartpay.com/reports/rss/lasttxrss/Company/***https://ca-live.barclaycardsmartpay.com/reports/rss/lasttxrss/MerchantAccount/**https://live.barclaycardsmartpay.com/hpp/pay.shtmlhttps://live.barclaycardsmartpay.com/hpp/select.shtmlhttps://ca-live.barclaycardsmartpay.com/ca/ca/login.shtmlhttps://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Ideal?wsdlhttps://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Idealhttps://pal-live.barclaycardsmartpay.com/pal/Payment.wsdlhttps://pal-live.barclaycardsmartpay.com/pal/servlet/soap/Payment
  • 7/28/2019 SmartPay API IntegrationGuide

    43/45

    Section Topic

    KAppendix SOAP Faults

    If a payment request does not pass validation (or violates a security or configurationconstraint) the platform does not accept (and does not store) the request. Instead you will

    receive a SOAP Fault which will contain a description of the problem. Generally this will behandled as an Exception in your SOAP toolkit. Below is an example of a SOAP fault message.Note that payment requests which are rejected with a SOAP Fault will not be charged.

    The way to check the description this is to read the faultstring. If the payment was rejectedby our platform the fault string will start with one of "validation", "security" or "configuration"followed by a code and its descriptive message.

    The list of codes and messages are below, please check the latest version of this documentfor the latest list.

    soap:Servervalidation 101 Invalid card number

    Example of a SOAP Fault

    Error Code Message Description

    000 Unknown An unknown error occurred

    010 Not allowed You are not allowed to perform this action

    100 No amount specified There is no amount specified in the request

    101 Invalid card number The specified card number is not valid

    102 Unable to determine variant The system was not able to determine thevariant of the card number

    103 CVC is not the right length The length of the CVC code is not correct for thegiven card number

    104 Billing address problem There was an error in the specified billingaddress fields

    105 Invalid PaRes from issuer The submitted PaRes (Internet AuthenticationResponse) from the issuer is not correct

    107 Recurring is not enabled Recurring is not configured on the merchantaccount

    108 Invalid bankaccount number The specified bankaccount number is not valid

    http://schemas.xmlsoap.org/soap/envelope/http://www.w3.org/2001/XMLSchemahttp://www.w3.org/2001/XMLSchema-instancehttp://www.w3.org/2001/XMLSchema-instancehttp://www.w3.org/2001/XMLSchemahttp://schemas.xmlsoap.org/soap/envelope/
  • 7/28/2019 SmartPay API IntegrationGuide

    44/45

    109 Invalid variant The determined variant of the card is not valid

    110 BankDetails missing No bank details specified

    111 Invalid BankCountryCodespecified

    The specified bankCountryCode is not valid(bank payment)

    112 This bank country is notsupported The specified bankCountryCode is notsupported (bank payment)

    117 Invalid billing addresss The specified billing address is not valid

    125 Invalid recurring contractspecified

    The specified recurring contract value is notvalid

    126 Bank Account or BankLocation Id

    not valid or missing

    The specified bank account or bank location Id isnot valid or

    missing (elv payment)

    127 Account holder missing No account holder specified

    128 Card Holder Missing No card holder specified

    129 Expiry Date Invalid The specified expiry data is not a valid date

    134 Billing address problem(Country)

    E.g country missing

    Not all address information is being supplied.If you chose to supply address fields, you must

    supply all address fields.

    137 Invalid amount specified The specified amount is invalid, or above theequivalent of 50,000.00 EUR.

    138 Unsupported currencyspecified

    The specified currency is not supported

    139 Recurring requiresshopperEmail andshopperReference

    No shopperEmail or shopperReference specified

    140 Invalid expiryMonth[1..12] /expiryYear[>2000], or before

    now

    The specified expiry month/year is not valid or inthe past

    141 Invalid expiryMonth[1..12] /expiryYear[>2000]

    The specified expiry month/year is not valid

    142 Bank Name or Bank Locationnot

    valid or missing

    The specified bank name or bank location Id isnot valid or

    missing (elv payment)

    144 Invalid startMonth[1..12] /startYear[>2000], or in the

    future

    The specified start month/year is not valid or inthe future

    800 Contract not found The specified recurring contract could not befound

    802 Invalid contract The specified recurring contract is not valid

    Barclaycard Global Payment Acceptance is a trading name of Barclay Bank PLC.. Barclays Bank PLC

    is authorised and regulated by the Financial Services Authority. Registered in England. Registered

    No: 1026167. Registered Office: 1 Churchill Place, London E14 5HP.

  • 7/28/2019 SmartPay API IntegrationGuide

    45/45

    803 PaymentDetail not found The specified paymentdetails could not be

    found

    804 Failed to disable Unable to disable the specified recurring details

    805 RecurringDetailReference notavailable for provided

    recurringcontract

    The specified recurringDetailReference is notavailable for the

    specified recurring contract

    901 Invalid Merchant Account The specified merchant account is not valid

    902 Shouldn't have gotten herewithout a request!

    No request specified, or invalid namespace

    903 Internal error An internal error occurred while processing therequest

    904 Unable To Process The request could not be processed

    905 Payment details are not

    supported

    The specified payment details are not available

    for the specified action