1. REQUEST

The processing request:

<?xml version="1.0" encoding="UTF-8"?>
<SloklyRequest version="1.0" mode="live">
  <Account>
    <Username>example</Username>
    <Password>example</Password>
  </Account>
  <Transaction type="payment">
    <UsageLabel />
    <InterfaceID />
    <MerchantID>123456</MerchantID>
    <Payment>
             <SecureAuthentication mode="enabled">
        <CallbackURL><![CDATA[https://www.example.com/processing/redirect/173324]]></CallbackURL>
      </SecureAuthentication>
      <Details>
        <Amount>33700</Amount>
        <Currency>USD</Currency>
        <MaxCommission />
      </Details>
      <CreditCard>
        <Number>4000000000000000</Number>
        <ExpirationYear>2016</ExpirationYear>
        <ExpirationMonth>10</ExpirationMonth>
        <SecurityCode>444</SecurityCode>
        <HolderFirstName>Oliver</HolderFirstName>
        <HolderLastName>van Smithington</HolderLastName>
      </CreditCard>
      <ClientData>
        <ID>123456789</ID>
      </ClientData>
    </Payment>
    <FraudDetection>...</FraudDetection>
  </Transaction>
</SloklyRequest>

Parameter Type Comments
SloklyRequest @versionstringthe version of the request
SloklyRequest @modestringthe transaction mode; allowed values are test and live
Account / usernamestringthe username for this account
Account / passwordstring the password for this account
Transaction @typestring the type of this transaction: allowed values are authorization and payment
Transaction / UsageLabelstring (optional) the caption that will appear on the credit information pages of the client; usually this should contain the name of the charging company or agency
Transation / InterfaceIDstring(optional, should be used only if you know what you're doing) it is possible to request a specific interface to work with; if none specified, Slokly will automatically select the interface with the least possible commission. note that if the request is not possible via the requested interface (if the interface does not support the requested currency, its commission values are too high for the given account etc) an error will be returned
Transaction / MerchantIDnodeyour system reference the action. this field is used for logging purposes only.
Details / amountnumberthe monetary amount of this transaction. to refrain from using floating-point values, the amount includes the fractional units as the last two digits - for example, to charge 1,500.30 USD the value of this field should be 150030
Details / Currencycurrencyan ISO-4217 code (3-char notation) of the currency used in this transaction
Details / MaxCommissionfloat the maximal allowed commission value; if none specified, the max commission value of the given account will be taken. you can leave this node empty to  use the default commission
CreditCard / Numberstringthe credit card number to be charged
CreditCard / ExpirationYear4 digitsthe expiration year of the card in 4 digit format (e.g. 2018)
CreditCard / ExpirationMonth2 digitsthe card’s expiration month, in a two-digit format (e.g. 05)
CreditCard / SecurityCode3/4 digitsCVV number of the card 
CreditCard / HolderFirstNamestringthe first name of the card holder
CreditCard / HolderLastNamestringthe last name of the card holder 
SecureAuthenticationnodeoptional node to control the transaction security. use it only if you are using the fraud detection module 
SecureAuthentication @modestringindicates when a secure authentication should take place. possible values: enabled, required. see note #3 for more details
SecureAuthentication /CallbackURLurla URL that should be called once the authentication has been done on the processor’s server 
ClientData / IDstringoptional node, but may be required for specific processors. identification number (social security number,  or passport number) of the paying customer.
FraudDetectionnode see note #4 

Notes:
1. The Currency in the Details node must be a supported processing currency for the interface you are using. if not, you will receive an error.
2. If the processing commission is larger than the MaxCommission value, you will receive an error, and can re-send the same request with a higher value for this field
3. SecureAuthentication mode allows better control over the fraud security. enabled means that a secure authentication might take place according the the fraud detection module recommendations (if applicable), while required means that a secure authentication must be performed. by default, the enabled mode will not trigger a secure authentication process unless an external module (such as a fraud detection module) will recommend using this feature. please note that not all processors and not all credit cards support secured authentication, so using this field might result in an error returned.
4. there is an additional functionality for fraud detection that can be passed as part of this request under the Transaction node, see the next section for details
5. Passing Transaction @type="payment" will try to charge the user immediately for the full amount. 
Comments