PHP SDK

Download and use a SDK for simple integration with our API.

Requirements

Instructions

The recommended way to install the SDK is to use composer. To add the SDK as a composer dependency to your project, run the following command in your project directory:

    composer require "klarna/php-xmlrpc 5.0"

 

If your project does not support composer, you can either clone the project on GitHub or download the package from here. You will then have to manually add the library to your project.

=====================
Klarna PHP API
=====================
v5.0.0
---------------
Date: 2016-03-16

    Joakim.L & Christer.G
        Support for PHP 7.0 (#META-102)

v4.1.0
---------------
Date: 2016-02-16

    Joakim L.
        Add function extendInvoiceDueDate (#META-113)

v4.0.0
---------------
Date: 2015-05-27

    Joakim L. 
        Make SDK available on composer
        Fix URI for BETA mode with checkoutService
        Remove checkoutHTML method
        Add function extendExpiryDate
        Fix static invocation


v3.2.0
---------------
Date: 2014-11-11

    Christer G. 
        Klarna.php : Add setter for client IP


v3.1.2
---------------
Date: 2014-11-06

    Christer G. 
        Klarna.php : Fix notice and warnings in PHP 5.3 & 5.4


v3.1.1
---------------
Date: 2014-08-22

    Christer G. 
        CHANGELOG : reformat
 
v3.1.0
---------------
Date: 2014-08-22

    Christer G. 
        Klarna.php (checkoutService) : new
            Introducing a new method for using the Checkout Service

v3.0.0
---------------
Date: 2014-07-10

Story (#1682) (Christer G.) - Remove updateNotes and reserveOCRemail functions

v2.5.0
---------------
Date: 2014-03-25

Story (#1528) (Christer G.) - Remove candice from PHP library

v2.4.3
---------------
Date: 2013-11-04

Story (#824) (Christer G.) - Removing func_get_args as function parameter
Bug (#870) (Christer G.) - Fix to make example files 5.2 compatible

v2.4.2
---------------
Date: 2013-07-15

Story (#816) (Rickard D.) - Update lowest_monthly_payment_for_account for Netherlands
Story (#751) (Christer G.) - Update call filters out falsy values for digest

v2.4.0
---------------
Date: 2013-05-17

Story (#674) (Rickard D.) - Add goods list to credit calls for restocking fees
Story (#672) (Rickard D.) - Change BETA host from beta-test to testdrive

v2.3.3
---------------
Date: 2013-03-28

    Rickard D. <support@klarna.com>
        Klarna.php (reserveAmount) :
            No longer remove falsy values from the digest string.

v2.3.2
---------------
Date: 2013-03-25

    Rickard D. <support@klarna.com>
        Klarna.php (reserveAmount) :
            Allow reserveAmount calls with an amount of 0.

v2.3.1
---------------
Date: 2012-12-07

    Christer G. <support@klarna.com>
        Klarna.php (getClientIP) :
            Refactored to be more readable.

    Rickard D. <support@klarna.com>
        Klarna.php (setConfig) :
            Configuration may now be an array, aswell as a and
            ArrayAccess.

    Majid G. <support@klarna.com>
        Klarna.php (update) :
            Removed rno validation from the library

v2.3.0
---------------
Date: 2012-09-17

    Rickard D. <support@klarna.com>
        Klarna.php (activateReservation) :
            Change to allow NULL to be sent in as PNO when activating a
            reservation. Any other value than null will still trigger a
            verification that a string longer than 0 characters is sent
            as PNO.

        Klarna.php (activate) : new function
            New function to activate a reservation using minimal information.
            Optional information for the activate call should be set using
            setActivateInformation.
            To partially activate a reservation, use Klarna::addArtNo() function
            (replaces splitReservation).

        Klarna.php (update) : new function
            New function to update a reservation using minimal information.
            Use setAddress to update address, addArticle to update an article in
            the goodslist and setEstoreInfo to update order id:s.

        Klarna.php (checkCountryCurrency) : removed function
            As this function does not scale and does not belong in a library it has
            been removed.

        Country.php () :
            Added all available country constants.

        Language.php () :
            Added all available language constants.

        Klarna.php (getLanguageForCountry) : deprecated
                   (getCurrencyForCountry) : deprecated
        Country.php (checkLanguage) : deprecated
                    (checkCurrency) : deprecated
                    (getLanguage) : deprecated
                    (getCurrency) : deprecated
            Deprecated functions that will not scale and will not be compatible for
            any potential future markets.

        Klarna.php (init, setCountry) :
            Removed the automatic setting of currency and language when setting
            the country. This functionality does not scale and was not consistent
            depending on how you set the country.

    Majid G. <support@klarna.com>
        Klarna.php (addTransaction) :
            Removing the link comment for PRE_PAY flag

        Flags.php (KlarnaFlags) :
            Adding deprecated comment for Flag 8 (PRE_PAY)

v2.2.1
----------------
Date: 2011-05-18

David K. <support@klarna.com>
    Klarna.php (summarizeGoodsList)
        New method that can be used to get a aggregated price for the entire
        goodslist

    Klarna.php (reserveAmount)
        Replace the simple goodslist summary that did not take taxes and
        discounts into consideration with a call to summarizeGoodsList

v2.2.0
----------------
Date: 2011-05-15

Rickard D. <support@klarna.com>
    Klarna.php (assembleAddress) :
        Only validate that the proper object type is sent in to Klarna, no longer
        performs any validation of the content of the fields.

    klarnaaddr.php () :
        Removed validation of field contets. Now possible to set all fields to
        empty strings if you want.

    Klarna.php (addTransaction, reserveAmount, activateReservation) :
        If $gender is sent in as an empty string, treat it as null.

    klarnacalc.php (calc_apr) :
        Removed the ability to send in a FIXED or SPECIAL pclass to
        KlarnaCalc->calc_apr. If this function is called with a FIXED or SPECIAL
        pclass it will now throw an exception instead of causing a fatal error.

    Klarna.php (getAllPClasses) : added
    storage.intf.php (getAllPClasses) : added
        Added possibility to get all stored pclasses, regardless of eid or type.

    Klarna.php (setPCStorage) :
        Added possibility to set a PCStorage on the Klarna object.

    Klarna.php (getPCStorage) : made public (was protected)
        Added possibility to get the configured PCStorage object from the Klarna
        object.

    Country.php (getLanguageForCountry, getCurrencyForCountry) : added
        Added possibility to get the language or currency for a specific country.

    All Files () :
        Updated code to follow the PEAR standard.

        Refactored several classes into their own files.
            All refactored classes were previosly declared inside the Klarna.php
            file. The new files are now instead included in the Klarna.php file,
            so no functionality has changed in that regard.
                KlarnaCountry   => Country.php
                KlarnaCurrency  => Currency.php
                KlarnaEncoding  => Encoding.php
                KlarnaException => Exceptions.php
                KlarnaFlags     => Flags.php
                KlarnaLanguage  => Language.php


        Made almost all exceptions thrown more specific and meaningful than just
        KlarnaException, although they still extend KlarnaException so old
        try-catch blocks will still work.

v2.1.3
----------------
Date: 2011-09-26

* Fixed a minor conversion issue.

v2.1.2
----------------
Date: 2011-09-12

* Improved the MySQL and SQL storage modules

    Added so you can pass an associative array to pcURI with the database info

    Added support for dashes in the normal regexp handling

    Fixed a rounding bug which requires a DROP TABLE and re-update of all PClasses

* Fixed a minor issue regarding the debug and xmlrpcDebug settings

* Added support for the ISO 3166-1 alpha-3 country codes


v2.1.1
----------------
Date: 2011-09-06

* Corrected a few issues in the phpDoc comments

* Improved fetchPClasses, it is now possible to specify only country (as code or constant)

* Changed the MySQL PClass storage's clear functionality to use DELETE FROM instead of DROP TABLE,
  this is to prevent possible permission issues in the database

* Various improvements and bug fixes

v2.1.0
----------------
Date: 2011-08-19

* Added support for stronger cryptographic hashes

    The default is now SHA-512 instead of MD5

* Experimental generic database storage using PDO

* Added work arounds for issues with the XML-RPC library

* Bug fix and additional sanity checks in getCheapestPClass

* Debug mode uses FirePHP if available

v2.0.0
----------------
Date: 2011-07-01

* Initial release of 2.0 API

* A complete rewrite using object oriented practices