Retrieve installments
Overview
Use the getInstallments method to retrieve information about the number of installments available for a specific selection of products/services.
Supported payment methods
Credit/Debit cards: local Visa and MasterCard cards in Brazil and Turkey.
Request Parameters
| Parameters | Type/Description | 
|---|---|
| 
 sessionID  | 
 String / Required  | 
| 
 
  | 
 Session identifier, the output of the Login method. Include sessionID into all your requests. 2Checkout throws an exception if the values are incorrect. The sessionID expires in 10 minutes.  | 
| Object / Required | |
| 
 
  | 
 An object designed to collect all data necessary for an order, including billing, product/subscription plan, and payment details.  | 
Response Parameters
| Parameters | Type/Description | |
|---|---|---|
| 
 InstallmentsOption  | 
 Array of objects  | 
|
| 
 
  | 
 Details below.  | 
|
| 
 
  | 
 Number  | 
 Int  | 
| 
 
  | 
 
  | 
 The number of installments.  | 
| 
 
  | 
 Amount  | 
 Double  | 
| 
 
  | 
 
  | 
 Standalone installment value. (Total order value/Number of installments)  | 
| 
 
  | 
 Currency  | 
 String  | 
| 
 
  | 
 
  | 
 Order currency.  | 
Request Example
<?php
declare(strict_types=1);
class Configuration
{
    public const MERCHANT_CODE = '';
    public const MERCHANT_KEY = '';
    public const URL = 'http://api.avangate.local/soap/6.0';
    public const ACTION = 'getInstallments';
    public const ADDITIONAL_OPTIONS = null;
    //array or JSON
    public const PAYLOAD = <<<JSON
{
    "Amount" : 500,
    "Country": "BR",
    "Currency": "BRL",
    "FiscalCode" :"345.675.677-7",
    "EesToken": ["c49702ea-b0c5-4d39-9f5b-ba43ccf26785"]
}
JSON;
}
class Client
{
    public function call(
        string $url = Configuration::URL,
        $payload = Configuration::PAYLOAD,
        string $action = Configuration::ACTION
    ): ?object {
        if (is_array($payload)) {
            $payload = json_encode($payload);
        }
        if (!empty($payload)) {
            // SoapClient works with objects(StdClass)
            $payload = json_decode($payload);
        }
        $soapClient = $this->getClient($url);
        $sessionId = $this->getSession($soapClient);
        $args = array_filter([$sessionId, $payload]);
        return $soapClient->$action(...$args);
    }
    public function getClient(string $url): SoapClient
    {
        return new SoapClient(
            $url.'?wsdl',
            [
                'location' => $url,
                'cache_wsdl' => WSDL_CACHE_NONE,
            ]
        );
    }
    public function getSession(SoapClient $client)
    {
        $date = gmdate('Y-m-d H:i:s');
        $merchantCode = Configuration::MERCHANT_CODE;
        $key = Configuration::MERCHANT_KEY;
        $string = strlen($merchantCode).$merchantCode.strlen($date).$date;
        $hash = hash_hmac('md5', $string, $key);
        $client->__setCookie('XDEBUG_SESSION', 'PHPSTORM');
        return $client->login($merchantCode, $date, $hash);
    }
}
$client = new Client();
$result = $client->call();
var_dump($result);