Skip to content

Web Service Methods

This section contains detailed information of the method calls you can make with the Web service.

Info

This documentation is provided for supporting clients using the SOAP Web Service API. If you are starting a new integration to Worldline One Commerce Hub, it is recommended that you are using a more recent way of integration. See Tech Guides for an overview of options available.

Method Description
Alive Checks the availability of the Web service endpoint
StoreToken To store a card or other payment instrument that you can reference later
Initiate3d/Complete3d Used for 3D Secure authentication
InitiatePayment Initiate card, IBP, EFT, Internet Bank Transfer or other types of payments
CancelOrder To cancel an order that has not been captured
CaptureOrder To capture funds
CompletePayment To complete a transaction (for Redirect payment methods)
RefundOrder To refund payments to consumers
QueryOrder Retrieve transactions and status of an order
GetPaymentMethods To retrieve available payment methods
OriginalCredit Credit an account or card holder without reference to a previous payment
GetAddress Retrieve addresses based on a social security number/personal number. Currently only supported for Klarna.
GetPaymentPlans Retrieve the payment plans for the Merchant. Currently only supported for Klarna.
SendPaymentInstruction Send payment instruction. Currently only supported for Klarna.
UpdateOrder Update order data. Currently only supported for Klarna.
UpdateAccount Trigger an update of stored cards, updated expiry date, card number and account status.

Details on Web Service Methods

Alive

Check availability of the Web Service end point.

StoreToken

StoreToken is used to store details about payment instruments. StoreToken currently supports tokenization of card payments details (card number and expiration date) or account payment details (account info and Direct Debit mandate info). The token is not tied to a specific order and can be referenced in any order. A Merchant is configured for either Single-Use Token or Multi-Use Token.

Single-Use Token Single-Use Token only supports card payments tokens. The tokens belongs to one MerchantID. A new call to StoreToken on the same card number will generate a new token, which is also how updates to a token should be done. The OrderId must be unique. The token returned by StoreToken (for Single-Use Token) will have a similar format as a TransactionId (9-10 digits).

Multi-Use Token Multi-Use Token support means that a Token can be created and used by all MerchantID’s belonging to the same CompanyID. Multi-Use Token supports tokenization of both card payments details and account payments details. For card payments details a new call to StoreToken on the same card number and expiration date will reply back with the already existing token. The OrderId must be unique.

The token returned by StoreToken (for Multi-Use Token) will have a similar format as the card number (16 digits, starting with 9000 and ending with the 4 last digits of the tokenized card number).

The Merchant can also choose to set their own token ID (the Token ID can be any string up to 35 characters).

For Client Side Encryption the merchant should send the encrypted card information in the field EncryptedPayload.

Initiate3d

The initiate3d method is used to check if the merchant is required to redirect the consumer to the issuing bank for authentication of the payment. If authentication is required, you should redirect the consumer to the URL that is returned from this method call.

Complete3d

If the initiate3d call indicated that the payment required an authorization at the issuing bank, use the complete3d call when the consumer comes back from the redirect to the bank, to interpret whether the authentication was successful or not. Note that the card and money has still not been authorized, but needs to be processed via InitiatePayment as the next step.

InitiatePayment

The Web Service supports several payment methods, cards, eWallets, IBP, EFT, etc, although the Payment Page interface is recommended for all payment methods except cards. If you prefer to use the Web Service for those payment methods, please contact your integration manager. When the payment is to be executed, they all require the InitiatePayment method to be invoked. For each new order, InitiatePayment requires that you send a unique order ID.

You can use the InitiatePayment call to:

  • send the card information for authorization at the issuing bank
  • acquire the redirect URLrequest for IBP, Redirect and eWallets
  • acquire the EFT order reference number
  • refer to a stored payment instrument token obtained by the StoreToken method.

See Examples below

InitiatePayment for Cards

To authorize a card, call the InitiatePayment method with the card number or a token (see below). A real-time host-to-host authorization will be processed. The Order ID that is used in this call can be used throughout the payment’s lifecycle to perform subsequent actions (cancellation, captures, refunds).

If you mark the order as "AutoCapture," the service automatically settles successful transactions. Otherwise you will need to separately capture the card using CaptureOrder or send a batch file via a separate interface.

If you mark the order as “CreateToken” the initiatePayment method will automatically generate a Multi-Use Token and return the Token in the initiatePayment response. The Merchant will be charged for the generated Token (more info about tokens in section StoreToken).

For Client Side Encryption the merchant should send in the encrypted card information in the field EncryptedPayload.

InitiatePayment example
<InitiatePaymentRequest>
    <OrderInfo>
        <OrderId>ExampleOrder13176368119160</OrderId>
        <OrderDescription>OrderDescription</OrderDescription>
        <OrderDetailDescription>OrderDetailDescription
        </OrderDetailDescription>
    </OrderInfo>
    <RequestInfo>
        <TransactionChannel>Web Online</TransactionChannel>
        <TimeoutSeconds>45</TimeoutSeconds>
    </RequestInfo>
    <MerchantInfo>
        <MerchantId>1108852714</MerchantId>
        <PosId>0</PosId>
    </MerchantInfo>
    <PayInfo>
        <Amount>1400</Amount>
        <Currency>
            <AlphabeticCode>SEK</AlphabeticCode>
        </Currency>
        <Tax>
            <TaxRate>25</TaxRate>
        </Tax>
    </PayInfo>
    <PaymentMethodInfo>
        <PaymentMethod>VISA</PaymentMethod>
        <BillingInfo>
            <FullName>John Smith</FullName>
        </BillingInfo>
        <CardInfo>
            <CardNumber>4715320600000012</CardNumber>
            <ExpirationDate>2015-12</ExpirationDate>
        </CardInfo>
        <CardVerificationInfo>
            <CvCode>
                <Value>123</Value>
                <State>USED</State>
            </CvCode>
            <UseAVS>FALSE</UseAVS>
        </CardVerificationInfo>
    </PaymentMethodInfo>
    <AutoCapture>FALSE</AutoCapture>
    <BrowserInfo>
        <IpAddress>212.21.48.16</IpAddress>
        <HttpAccept>application/xhtml+xml</HttpAccept>
        <HttpAcceptLanguage>sv, en-gb</HttpAcceptLanguage>
        <HttpUserAgent>Mozilla/5.0 (Windows; U; Windows NT 5.1; de;rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (FM Scene 4.6.1)</HttpUserAgent>
        <DnsIpAddress>212.21.48.16</DnsIpAddress>
        <TimeZoneOffset>200</TimeZoneOffset>
        <DeviceCategory>PC</DeviceCategory>
    </BrowserInfo>
</InitiatePaymentRequest>
<InitiatePaymentResponse>
    <MerchantId>1108852714</MerchantId>
    <OrderId>ExampleOrder13176368119160</OrderId>
    <OrderAmount>1400</OrderAmount>
    <FulfillmentAmount>1400</FulfillmentAmount>
    <CapturedAmount>0</CapturedAmount>
    <RefundedAmount>0</RefundedAmount>
    <Currency>
        <AlphabeticCode>SEK</AlphabeticCode>
    </Currency>
    <Timestamp>2011-10-03T12:13:31.916+02:00</Timestamp>
    <OrderState>Registered</OrderState>
    <Capturable>true</Capturable>
    <TransactionResponse>
        <TransactionId>227637781</TransactionId>
        <TransactionState>Processed</TransactionState>
        <StatusCode>0</StatusCode>
        <Description>Transaction accepted</Description>
        <TransactionType>Authorize</TransactionType>
        <PaymentMethodType>Card</PaymentMethodType>
        <PaymentMethodId>1001</PaymentMethodId>
        <PaymentMethodName>Visa</PaymentMethodName>
        <PaymentMethodCategory>Card</PaymentMethodCategory>
        <TransactionResult>
            <CardTransactionResult>
                <AvsResult>
                    <AnswerCode>4</AnswerCode>
                    <Response />
                </AvsResult>
                <CvCodeResult>
                    <AnswerCode>1</AnswerCode>
                    <Response>C</Response>
                </CvCodeResult>
                <AcquirerResponse>
                    <AuthorizationCode>623829</AuthorizationCode>
                </AcquirerResponse>
            </CardTransactionResult>
        </TransactionResult>
        <Timestamp>2011-10-03T12:13:31.916+02:00</Timestamp>
        <Amount>1400</Amount>
        <Currency>
            <AlphabeticCode>SEK</AlphabeticCode>
        </Currency>
        <PosId>0</PosId>
    </TransactionResponse>
</InitiatePaymentResponse>

Recurring Payments

Storing the payment details as a token when the consumer enters them for the first time makes it possible be re-used again at a later payment event for the same account. Examples include when a card is charged monthly for subscription services, or merchants that set up user account profiles, where the card details has been entered once, tokenized, and then re-used for subsequent purchases from the same consumer.

To process a tokenized payment method for recurring payments, the following best practice is used:

  • tore the payment method securely at Worldline using the StoreToken method.
  • When charging the same user again, use InitiatePayment with a reference to the token and:
    • The recurring indicator must be set to either NOT_RECURRING (default), FIRST_RECURRING, SUBSEQUENT_RECURRING or LAST_RECURRING. This controls the logic for setting the right flags in the message to the acquiring bank. Some acquiring banks require a separate bank account for recurring transactions. In these cases the merchant need to indicate POS ID=R. Contact your account manager for support.

Validation with CVC and AVS

To authorize a card with the CV code, you must set the CVCode Value and CVCode State. For AVS you must set the field useAVS = true, and populate the fields in BillingInfo.

InitiatePayment for IBP, Redirect, or eWallet payment methods

Note

The Payment Page interface is recommended for all payment methods except cards. If you prefer to use the Web Service for those payment methods, please contact your integration manager.

To initiate payments for IBP, Redirect or eWallet payment methods, a URL is generated during the InitiatePayment process that will allow the consumer to be redirected to the appropriate site.

If you mark the order as "AutoCapture," the service automatically settles successful transactions, if possible (only possible for eWallets and some other specific local payment schemes).

InitiatePayment for EFT

Note

The Payment Page interface is recommended for all payment methods except cards. If you prefer to use the Web Service for those payment methods, please contact your integration manager.

To initiate payments for EFT, populate the EFT fields. With this call you have registered an order, and will need to wait for a report or notification of payment before the money is guaranteed. The actual money paid by the consumer will be reflected by the fulfilment amount.

InitiatePayment for DirectDebit

Note

The Payment Page interface is recommended for all payment methods except cards. If you prefer to use the Web Service for those payment methods, please contact your integration manager.

To initiate payments for Direct Debit, populate the Direct Debit fields. With this call you have registered an order. However, Direct Debit is an offline payment method. The funds are not guaranteed until they have been cleared through the bank network. With this call you have registered an order, and will need to wait for a report or notification of payment before the money is guaranteed, as reflected by the fulfilment amount.

CancelOrder

The CancelOrder method can be sent to void the authorization before any payment on an order have been made (CaptureOrder or auto-settled InitiatePayment). This is only supported for card payments, and may not be supported by all banks.

CancelOrder retry support

The CancelOrder method supports retries. I.e. the request can be sent multiple times with the same parameters without any side effects, until a terminal response is received. This is useful if e.g. the response from the bank is delayed, not received at all or pending, but a terminal response is still required by the merchant. In order to use the retry capability, the merchant defined parameter must be included in the first and all subsequent retried CancelOrder requests within the same scope. The RequestId must be unique per MerchantId.

CancelOrder Example

<CancelOrderRequest>
    <OrderInfo>
        <OrderId>ExampleOrder13176368119160</OrderId>
    </OrderInfo>
    <RequestInfo>
        <TransactionChannel>Web Online</TransactionChannel>
        <TimeoutSeconds>45</TimeoutSeconds>
        <RequestId>13176368119160</RequestId>
    </RequestInfo>
    <MerchantInfo>
        <MerchantId>1108852714</MerchantId>
    </MerchantInfo>
</CancelOrderRequest>
<CancelOrderResponse>
    <MerchantId>1108852714</MerchantId>
    <OrderId>ExampleOrder13176368119160</OrderId>
    <OrderAmount>0</OrderAmount>
    <FulfillmentAmount>0</FulfillmentAmount>
    <CapturedAmount>0</CapturedAmount>
    <RefundedAmount>0</RefundedAmount>
    <Currency>
        <AlphabeticCode>SEK</AlphabeticCode>
    </Currency>
    <Timestamp>2011-10-03T12:13:48.284+02:00</Timestamp>
    <OrderState>Cancelled</OrderState>
    <Capturable>false</Capturable>
    <TransactionResponse>
        <TransactionId>227637801</TransactionId>
        <TransactionState>Processed</TransactionState>
        <StatusCode>0</StatusCode>
        <Description>Transaction accepted</Description>
        <TransactionType>Cancel</TransactionType>
        <PaymentMethodType>Card</PaymentMethodType>
        <PaymentMethodId>1001</PaymentMethodId>
        <PaymentMethodName>Visa</PaymentMethodName>
        <PaymentMethodCategory>Card</PaymentMethodCategory>
        <TransactionResult>
            <CardTransactionResult>
                <AvsResult>
                    <AnswerCode>4</AnswerCode>
                    <Response />
                </AvsResult>
                <CvCodeResult>
                    <AnswerCode>4</AnswerCode>
                    <Response />
                </CvCodeResult>
                <AcquirerResponse>
                    <AuthorizationCode />
                </AcquirerResponse>
            </CardTransactionResult>
        </TransactionResult>
        <Timestamp>2011-10-03T13:14:00.000+02:00</Timestamp>
        <Amount>1400</Amount>
        <Currency>
            <AlphabeticCode>SEK</AlphabeticCode>
        </Currency>
        <PosId>0</PosId>
    </TransactionResponse>
</CancelOrderResponse>

CaptureOrder

Supported for cards and some e-wallets only.

This method is used to complete a previous initiatePayment for payment methods that supports the authorize/capture flow (this is indicated by the capturable flag in the response). With the CaptureOrder, you optionally refer to a previous transaction ID. You must use the same OrderId as you used in the InitiatePayment method. Some but not all payment methods support partial or multiple captures. Worldline support captures up to maximum 100% of the authorized amount in the standard client configuration. In some specific cases, up to 115% amount is allowed. Speak with your integrations manager to have this configured.

CaptureOrder example
<CaptureOrderRequest>
    <OrderInfo>
        <OrderId>ExampleOrder13176368119160</OrderId>
    </OrderInfo>
    <RequestInfo>
        <TransactionChannel>Web Online</TransactionChannel>
        <TimeoutSeconds>45</TimeoutSeconds>
    </RequestInfo>
    <MerchantInfo>
        <MerchantId>1108852714</MerchantId>
    </MerchantInfo>
    <PayInfo>
        <Amount>1400</Amount>
        <Currency>
            <AlphabeticCode>SEK</AlphabeticCode>
        </Currency>
    </PayInfo>
</CaptureOrderRequest>
<CaptureOrderResponse>
    <MerchantId>1108852714</MerchantId>
    <OrderId>ExampleOrder13176368119160</OrderId>
    <OrderAmount>1400</OrderAmount>
    <FulfillmentAmount>1400</FulfillmentAmount>
    <CapturedAmount>1400</CapturedAmount>
    <RefundedAmount>0</RefundedAmount>
    <Currency>
        <AlphabeticCode>SEK</AlphabeticCode>
    </Currency>
    <Timestamp>2011-10-03T12:13:32.451+02:00</Timestamp>
    <OrderState>Paid</OrderState>
    <Capturable>false</Capturable>
    <TransactionResponse>
        <TransactionId>227637785</TransactionId>
        <TransactionState>Processed</TransactionState>
        <StatusCode>0</StatusCode>
        <Description>Transaction accepted</Description>
        <TransactionType>Capture</TransactionType>
        <PaymentMethodType>Card</PaymentMethodType>
        <PaymentMethodId>1001</PaymentMethodId>
        <PaymentMethodName>Visa</PaymentMethodName>
        <PaymentMethodCategory>Card</PaymentMethodCategory>
        <TransactionResult>
            <CardTransactionResult>
                <AvsResult>
                    <AnswerCode>4</AnswerCode>
                    <Response/>
                </AvsResult>
                <CvCodeResult>
                    <AnswerCode>0</AnswerCode>
                    <Response/>
                </CvCodeResult>
                <AcquirerResponse>
                    <AuthorizationCode>880484</AuthorizationCode>
                </AcquirerResponse>
            </CardTransactionResult>
        </TransactionResult>
        <Timestamp>2011-10-03T12:13:32.451+02:00</Timestamp>
        <Amount>1400</Amount>
        <Currency>
            <AlphabeticCode>SEK</AlphabeticCode>
        </Currency>
        <PosId>0</PosId>
    </TransactionResponse>
</CaptureOrderResponse>

CompletePayment

Supported for IBP and Redirect payment methods only.

The response will trigger a real-time check to get the latest transaction status from 3rd parties e.g. banks.

RefundOrder

The RefundOrder method reverses the payment to the consumer.

The RefundOrder response will have the RefundedAmount updated with the total amount of successful RefundOrder requests. The response will also contain the individual credit and/or payout transaction results.

You must always refer back to a previous payment, either by an orderId, or an orderId and transactionId.

  • When referencing by orderId only (not a transactionId), the system will issue a refund for all payment transactions on the order. This may result in more than one refund transaction in the response.
  • When referencing by transactionId, the system will issue a refund for that transaction only. The response will only contain one transaction.

You cannot refund a higher amount than what has been successfully paid, if the merchant configuration is not specifically set to allow higher amounts.

For cards, and refunds involving Payout transactions, you may do partial refunds, i.e. multiple refunds on the same order, up to the total amount that was paid.

Some payment methods do not support an automated reversal of the money flow, and therefore more account details must be collected by the consumer to complete the refund via a Payout. Contact your integration manager for more details.

RefundOrder retry support

The RefundOrder method supports retries. I.e. the request can be sent multiple times with the same parameters without any side effects, until a terminal response is received. This is useful if e.g. the response from the bank is delayed, not received at all or pending, but a terminal response is still required by the merchant.

In order to use the retry capability, the merchant defined RequestId parameter must be included in the first and all subsequent retried RefundOrder requests within the same scope. The RequestId must be unique per MerchantId.

QueryOrder

The QueryOrder method can be sent by the merchant anytime: The response will tell you Worldline status on that order, and will not trigger a real-time check of the latest status with 3rd parties e.g. banks. For offline payment methods, the fulfilment amount of an order will be updated as soon as Worldline has reconciled the order. For redirect payment methods, Worldline will when possible automatically query the bank for the latest status on a given interval if an order is left open, or otherwise update the fulfilment amount as soon as Worldline has reconciled the order.

QueryOrder Examples

Retrieval of order state with amount summary only, by indicating <RetrieveTransactions>false</RetrieveTransactions>

<QueryOrderRequest>
    <OrderInfo>
        <OrderId>ExampleOrder13176368119160</OrderId>
    </OrderInfo>
    <RequestInfo>
        <TimeoutSeconds>45</TimeoutSeconds>
    </RequestInfo>
    <MerchantInfo>
        <MerchantId>1108852714</MerchantId>
    </MerchantInfo>
    <RetrieveTransactions>false</RetrieveTransactions>
</QueryOrderRequest>
<QueryOrderResponse>
    <MerchantId>1108852714</MerchantId>
    <OrderId>ExampleOrder13176368119160</OrderId>
    <OrderAmount>1400</OrderAmount>
    <FulfillmentAmount>1400</FulfillmentAmount>
    <CapturedAmount>1400</CapturedAmount>
    <RefundedAmount>1400</RefundedAmount>
    <Currency>
        <AlphabeticCode>SEK</AlphabeticCode>
    </Currency>
    <Timestamp>2011-10-03T13:14:00.000+02:00</Timestamp>
    <OrderState>Refunded</OrderState>
    <Capturable>false</Capturable>
</QueryOrderResponse>

Retrieval of order state and also detailed information of all transaction on the order, by indicating <RetrieveTransactions>true</RetrieveTransactions>

<QueryOrderRequest>
    <OrderInfo>
        <OrderId>ExampleOrder13176368119160</OrderId>
    </OrderInfo>
    <RequestInfo>
        <TransactionChannel>Web Online</TransactionChannel>
        <TimeoutSeconds>45</TimeoutSeconds>
    </RequestInfo>
    <MerchantInfo>
        <MerchantId>1108852714</MerchantId>
    </MerchantInfo>
    <RetrieveTransactions>true</RetrieveTransactions>
</QueryOrderRequest>
<QueryOrderResponse>
    <MerchantId>1108852714</MerchantId>
    <OrderId>07QueryOrder1317636821512</OrderId>
    <OrderAmount>1400</OrderAmount>
    <FulfillmentAmount>1400</FulfillmentAmount>
    <CapturedAmount>1400</CapturedAmount>
    <RefundedAmount>1400</RefundedAmount>
    <Currency>
        <AlphabeticCode>SEK</AlphabeticCode>
    </Currency>
    <Timestamp>2011-10-03T13:14:00.000+02:00</Timestamp>
    <OrderState>Refunded</OrderState>
    <Capturable>false</Capturable>
    <TransactionResponse>
        <TransactionId>227637797</TransactionId>
        <TransactionState>Processed</TransactionState>
        <StatusCode>0</StatusCode>
        <Description>Transaction accepted</Description>
        <TransactionType>Credit</TransactionType>
        <PaymentMethodType>Card</PaymentMethodType>
        <PaymentMethodId>1001</PaymentMethodId>
        <PaymentMethodName>Visa</PaymentMethodName>
        <PaymentMethodCategory>Card</PaymentMethodCategory>
        <TransactionResult>
            <CardTransactionResult>
                <AvsResult>
                    <AnswerCode>4</AnswerCode>
                    <Response/>
                </AvsResult>
                <CvCodeResult>
                    <AnswerCode>0</AnswerCode>
                    <Response/>
                </CvCodeResult>
                <AcquirerResponse>
                    <AuthorizationCode>832678</AuthorizationCode>
                </AcquirerResponse>
            </CardTransactionResult>
        </TransactionResult>
        <Timestamp>2011-10-03T13:14:00.000+02:00</Timestamp>
        <Amount>1400</Amount>
        <Currency>
            <AlphabeticCode>SEK</AlphabeticCode>
        </Currency>
        <PosId>0</PosId>
    </TransactionResponse>
    <TransactionResponse>
        <TransactionId>227637795</TransactionId>
        <TransactionState>Processed</TransactionState>
        <StatusCode>0</StatusCode>
        <Description>Transaction accepted</Description>
        <TransactionType>Capture</TransactionType>
        <PaymentMethodType>Card</PaymentMethodType>
        <PaymentMethodId>1001</PaymentMethodId>
        <PaymentMethodName>Visa</PaymentMethodName>
        <PaymentMethodCategory>Card</PaymentMethodCategory>
        <TransactionResult>
            <CardTransactionResult>
                <AvsResult>
                    <AnswerCode>4</AnswerCode>
                    <Response/>
                </AvsResult>
                <CvCodeResult>
                    <AnswerCode>0</AnswerCode>
                    <Response/>
                </CvCodeResult>
                <AcquirerResponse>
                    <AuthorizationCode>832678</AuthorizationCode>
                </AcquirerResponse>
            </CardTransactionResult>
        </TransactionResult>
    </TransactionResponse>
    <TransactionResponse>
        <TransactionId>227637793</TransactionId>
        <TransactionState>Processed</TransactionState>
        <StatusCode>0</StatusCode>
        <Description>Transaction accepted</Description>
        <TransactionType>Authorize</TransactionType>
        <PaymentMethodType>Card</PaymentMethodType>
        <PaymentMethodId>1001</PaymentMethodId>
        <PaymentMethodName>Visa</PaymentMethodName>
        <PaymentMethodCategory>Card</PaymentMethodCategory>
        <TransactionResult>
            <CardTransactionResult>
                <AvsResult>
                    <AnswerCode>4</AnswerCode>
                    <Response/>
                </AvsResult>
                <CvCodeResult>
                    <AnswerCode>1</AnswerCode>
                    <Response>C</Response>
                </CvCodeResult>
                <AcquirerResponse>
                    <AuthorizationCode>832678</AuthorizationCode>
                </AcquirerResponse>
            </CardTransactionResult>
        </TransactionResult>
        <Timestamp>2011-10-03T13:14:00.000+02:00</Timestamp>
        <Amount>1400</Amount>
        <Currency>
            <AlphabeticCode>SEK</AlphabeticCode>
        </Currency>
        <PosId>0</PosId>
    </TransactionResponse>
    <TransactionResponse>
        <TransactionId>227637795</TransactionId>
        <TransactionState>Processed</TransactionState>
        <StatusCode>0</StatusCode>
        <Description>Transaction accepted</Description>
        <TransactionType>Capture</TransactionType>
        <PaymentMethodType>Card</PaymentMethodType>
        <PaymentMethodId>1001</PaymentMethodId>
        <PaymentMethodName>Visa</PaymentMethodName>
        <PaymentMethodCategory>Card</PaymentMethodCategory>
        <TransactionResult>
            <CardTransactionResult>
                <AvsResult>
                    <AnswerCode>4</AnswerCode>
                    <Response/>
                </AvsResult>
                <CvCodeResult>
                    <AnswerCode>0</AnswerCode>
                    <Response/>
                </CvCodeResult>
                <AcquirerResponse>
                    <AuthorizationCode>832678</AuthorizationCode>
                </AcquirerResponse>
            </CardTransactionResult>
        </TransactionResult>
        <Timestamp>2011-10-03T13:14:00.000+02:00</Timestamp>
        <Amount>1400</Amount>
        <Currency>
            <AlphabeticCode>SEK</AlphabeticCode>
        </Currency>
        <PosId>0</PosId>
    </TransactionResponse>
</QueryOrderResponse>

GetPaymentMethods

The GetPaymentMethods operation can be used to retrieve available payment methods. Only the payment methods that are configured and enabled are listed. GetPaymentMethods requires MerchantId as one of the parameters, but optionally the result can be filtered to include only payment methods supporting a particular country, currency, payment method type or similar.

OriginalCredit

OriginalCredit can be used to credit a card without linking the credit to a previous payment. The Order ID must be unique for this transaction type.

GetAddress

Retrieve addresses based on a social security number/personal number / zip code. Made getAddress call generic. This call is limited to a few markets and specific payment methods.

SendPaymentInstruction

Send payment instruction. Currently only supported for Klarna.

GetPaymentPlans

Retrieve the payment plans for the Merchant. Currently only supported for Klarna.

UpdateOrder

Update order data. Currently only supported for Klarna.

UpdateAccount

Trigger a request for information on updated expiry date, card number and similar card holder data.

Responses

Error Codes

Depending on the nature of the error, the system generates different error responses. For business and transaction related responses, the result is sent as a Transaction Status that indicate success or a set of different errors. Please see Answer Codes (TBD) for more information.

If you use the integrated fraud screening services from Transaction Defender, the response will also contain a fraud screening result.

Making the Connection

Service Endpoints

Worldline currently operates multiple live data centres, each having an endpoint address that accepts transactions. The merchant application should be able to detect if either of the URLs are unavailable due to network connectivity problems and redirect traffic to another. Worldline also provide a DNS based failover solution based on GTM (Global Traffic Manager). The GTM will response with the DNS name to an available endpoint address.

Note

Although the WSDL defines endpoints, it is important that the application can be reconfigured to use other addresses. The reason for this is not the usual failover scenario, but in the event of a DDOS attack or similar, when Worldline needs to communicate new endpoint addresses to the merchant for further processing.

Connection Performance (Optional)

From a client side development point of view, Worldline recommends the following for achieving higher performance in processing:

  1. Reuse SSL contexts rather than renegotiating each time. Often, an SSL connection takes a long time to set up. This is by far the most time consuming step.
  2. Utilize a multithreaded client application to send messages.
  3. Reuse HTTP/SOAP connection rather than reconnect for each transaction.

Keep Alive (Optional)

A keep-alive for reusing the HTTP/SOAP connection may be implemented by issuing the “alive” operation.

Failover and Disaster Recovery

Worldline Services operates multiple active data centres. At any time, transactions can be sent to any of them. Even though all data centres are “live”, Worldline Services assigns one primary data centre on a per-merchant basis.

Failover support

Worldline provides a single URL that will support failover between data centers, using DNS.

In order to ensure that a merchant will be switched quickly away from an unreachable datacenter (for whatever reason), the time-to-live (TTL) of the web service URL is 60 seconds. It is important to ensure that any DNS caching taking place honors this TTL so that changes reaches other servers as soon as possible.

Custom fail over

Should a merchant not wish to use this DNS Failover support, but rather switch or process on multiple data centers simultaneously, please contact Worldline for an up to date list of endpoints. Use the web service call alive to determine if a particular datacenter is reachable instead of an ICMP (ping) or TCP conenection. The alive call will ensure that there is an application responding.