# Split Payment
An `invoice` object must be attached to the basic request creating the transaction as described in the section [Creating a payment](#topic-creating-a-payment). This object consists of a `buyer` object and a `positions` array with the following parameters:
`buyer` object:
| Parameter | Type | Parameter required | Description |
|-------------------|-----------------------------------------------|-|-|
| `invoiceId` | string | `YES` | Invoice number |
| `type` | string | `YES` | It takes the value `PERSON` *individual buyer or `COMPANY` *company* |
| `email` | string(200) | `YES` | E-mail address in the format compliant with RFC 5322 and RFC 6531 |
| `fullName`| string(200) | `YES` | Buyer's name/company name,
**available characters:** A-Za-z0-9#&_-"',.\/ space (0x20) and the UNICODE characters from the range 00C0 - 02C0 (e.g. Polish diacritic characters), 0400 - 04FF (Cyrillic script) |
| `street` | string(200) | `YES` | Street |
| `city` | string(100) | `YES` | City
| `postalCode` | string(30) | `YES` | Postal code |
| `countryCodeAlpha2` | string(2) | `YES` | Country code `Alpha2` |
| `idCountryCodeAlpha2` | string(2) | `NO` | `Alpha2` country code identifier. Required for the `VAT_ID` value of the `idType` parameter. |
| `idType` | string | `NO` | Identification number type. Required for the `COMPANY` value of the `type` parameter. Takes the value of `ID` *TIN* or `VAT_ID` *CRN* |
| `idNumber`| string(30) | `NO` | CRN or TIN number. Required for the `COMPANY` value of the `type` parameter |
`positions` array:
| Parameter | Type | Parameter required | Description |
|-------------------|-----------------------------------------------|-|-|
| `name` | string | `YES` | Product name |
| `code` | string | `YES` | Product code |
| `quantity` | number | `YES` | Quantity. The **minimum value is 0** |
| `unit` | string | `YES` | Unit |
| `grossAmount` | integer | `YES` | Gross unit value |
| `taxStake` | string | `YES` | Tax rate. Available values: `TAX_23`, `TAX_22`, `TAX_8`, `TAX_7`, `TAX_5`, `TAX_3`, `TAX_0`, `TAX_EXEMPT`, `TAX_NOT_LIABLE`, `TAX_REVERSE_CHARGE`, `TAX_EXCLUDING` |
| `taxAmount` | integer | `YES` | Value of tax in pennies |
| `discountAmount` | integer | `NO` | Discount value |
### Example data structure
```php
$invoiceData = [
"invoiceId" => "04/12/23",
"buyer" => [
"type" => "COMPANY",
"idType" => "VAT_ID",
"idNumber" => "5354235387",
"email" => "nazwafirmy@example.com",
"fullName" => "Nazwa firmy",
"street" => "Ulica",
"city" => "Miasto",
"postalCode" => "12-345",
"countryCodeAlpha2" => "PL",
"idCountryCodeAlpha2" => "PL"
],
"positions" => [
[
"name" => "Produkt",
"code" => "produkt-01",
"quantity" => 1,
"unit" => "Sztuki",
"taxStake" => "TAX_23",
"grossAmount" => 12300,
"taxAmount" => 2300
],
],
];
```
The above parameters should be taken into account when calculating the signature in accordance with the section [Authorisation](#topic-authorisation)
### Preparing the invoice object
### Using the PHP function
The data collected from the above parameters should be encoded using the function:
`base64_encode(gzencode(json_encode($invoiceData), 5));`
where:
`$invoiceData` - previously prepared parameters
```php
$invoiceData = [
"invoiceId" => "04/12/23",
"buyer" => [
"type" => "COMPANY",
"idType" => "VAT_ID",
"idNumber" => "5354235387",
"email" => "nazwafirmy@example.com",
"fullName" => "Nazwa firmy",
"street" => "Ulica",
"city" => "Miasto",
"postalCode" => "12-345",
"countryCodeAlpha2" => "PL",
"idCountryCodeAlpha2" => "PL"
],
"positions" => [
[
"name" => "Produkt",
"code" => "produkt-01",
"quantity" => 1,
"unit" => "Sztuki",
"taxStake" => "TAX_23",
"grossAmount" => 12300,
"taxAmount" => 2300
],
],
];
$invoice = base64_encode(gzencode(json_encode($invoiceData), 5));
$fields = [
'serviceId' => '63f574ed-d90d-4abe-9cs1-39117584a7b7',
'merchantId' => '6yt3gjtm9p1odfgx8491',
'amount' => '12300',
'currency' => 'PLN',
'orderId' => 'Split payment',
'orderDescription' => 'Split payment',
'customerFirstName' => 'Jan',
'customerLastName' => 'Kowalski',
'customerEmail' => 'jan.kowalski@example.com',
'customerPhone' => '501501501',
'visibleMethod' => 'wt',
'urlSuccess' => 'https://domain.com/success',
'urlFailure' => 'https://domain.com/failure',
'urlReturn' => 'https://domain.com/return',
'invoice' => $invoice,
];
$serviceKey = 'eAyhFLuHgwl5hu-32GM8QVlCVMWRU0dGjH1c';
$hashMethod = 'sha256';
$signature= createSignature(
$fields,
$serviceKey,
$hashMethod
) . ';' . $hashMethod;
```
### Example of an encoded invoice object
```php
H4sIAAAAAAAACm2QXU+DMBSG/4rp9eaAQjRcSfBmiUOSodE4s3TQaUM/EE51jPDfPe3inZfneT/6phMR+tuImq8bkpIg3q3CaLeKKFmQgx15T9KJwNhxFPPHTZkVr6iIprqg56zar+89Kaw6ODtJaBJHNKG3N8i5YkIi1Oz8w46iV+MdPzHVSX5dG4WGo5WyYMqVFc5z5U0oDNBzDoifpKgZglrAiOdGsAEM3p0ZgMncNC4bRksaJ85lrIZ+dDiT3SeLUCwf/ML8f2n2VQKE0QNJ3ybc6ueUvWlsC77Tv9FdwDIIkX1ZpsEvChfEauGWbs9gW4EisNMWWOtCVfay97/50ZthyJTbgJmIBoH3/REH5vf5FyK2JcWPAQAA
```
### Example HTML form content
```html
```