# 3.1. HTTP Request transaction API
### Przykładowy adres na który należy wysłać żądanie POST
```
https://api.axepta.pl/v1/merchant/6yt3gjtm9p7b8h9xsdqz/transaction
```
### Payload zapytania
```json
{
"type": "sale",
"serviceId": "62f574ed-d4ad-4a7e-9981-89ed7284aaba",
"amount": 9900,
"currency": "PLN",
"orderId": "12",
"clientIp": "192.168.10.2",
"paymentMethod": "pbl",
"paymentMethodChannel": "bnpparibas",
"successReturnUrl": "https://domain.com/success",
"failureReturnUrl": "https://domain.com/failure",
"customer": {
"firstName": "Maciej",
"lastName": "Kowalski",
"email": "jan.kowalski@example.com"
}
}
```
### Parametry payload
| Parametr | Typ | Wymagany | Opis |
|---------------------|-------------|-------------------|----------------|
| `type` | string | ✔️ | Typ transakcji.
**Dopuszczalne wartości**: `sale`. |
| `serviceId` | string(36) | ✔️ | identyfikator sklepu jako UUID v4. |
| `clientIp` | string | ✔️ | Adres IP klienta w standardzie IPv4 lub IPv6. |
| `amount` | integer(1-999999999) | ✔️ | Kwota transakcji w najmniejszej jednostce waluty np. grosze. |
| `currency` | string(3) | ✔️ | Waluta transakcji w standardzie ISO 4217. |
| `orderId` | string(100) | ✔️ | Numer zamówienia akceptanta,
**dopuszczalne znaki**: A-Za-z0-9#_-.\/ oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `title` | string(255) | - | Tytuł transakcji,
**dopuszczalne znaki**: A-Za-z0-9#&_-"',.\/ oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `paymentMethod` | string | ✔️ | Metoda realizacji zamówienia. Więcej informacji w rozdziale [1.4 Metody i kanały realizacji transakcji] |
| `paymentMethodChannel` | string | ✔️ | Oznaczenie kanału płatności. Więcej informacji w rozdziale [1.4 Metody i kanały realizacji transakcji]|
| `successReturnUrl` | string(300) | ✔️ | Adres powrotu z zewnętrznej strony obsługującej płatność w przypadku dokonania płatności z powodzeniem. |
| `failureReturnUrl` | string(300) | ✔️ | Adres powrotu z zewnętrznej strony obsługującej płatność w przypadku wystąpienia błędu płatności. |
| `returnUrl` | string(300) | ✔️ | Domyślny adres powrotu. |
| `customer` | object | ✔️ | Dane klienta. |
| `billing` | object | - | Dane płatnika. |
| `shipping` | object | - | Dane dotyczące dostawy. |
| `card` | object | - | Dane dot. płatności kartą. (Wymagane podczas płatności `card`)|
| `additionalData` | object | - | Informacje o przeglądarce płatnika, wymagane podczas wykonywania płatności kartą z autoryzacją 3ds. |
| `activeTo` | integer, null | - | Data ważności transakcji jako unix timestamp w sekundach (czas mierzony w sekundach od początku 1970 roku UTC)
(**wartość musi być większa, bądz równa: 1 i mniejsza bądź równa 4294967295**). Jeżeli nie jest przekazana lub jest null to transakcja ważna jest zawsze. Brak realizacji płatności do tego czasu spowoduje jej anulowanie.
| `distributor` | string | - | Nazwa dystybutora, wartość dopuszczalna: "shoper".|
| `surcharge` | boolean | - | flaga determinujaca czy zostanie użyte obciazenie platnika dla danej transkacji. Wartość dopuszczalna: 'true', 'false' (wymagane ustawienie flagi surcharge w procesie boardingu). |
| `blikCode` | integer(6) | - | Wartość kodu blik dla transakcji z przekazaniem kodu po API.|
>Jeżeli w zapytaniu wystąpi parametr, `billing`, `shipping` lub `card` konieczne jest dostarczenie dodatkowych parametrów, opisanych poniżej.
#### customer
| Parametr | Typ | Wymagany | Opis |
|-------------|-------------|-------------------|------------------------|
| `firstName` | string(100) | ✔️ | Imię klienta,
**dopuszczalne znaki**: A-Za-z0-9#&_-"',.\/ oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `lastName` | string(100) | ✔️ | Nazwisko klienta,
**dopuszczalne znaki**: A-Za-z0-9#&_-"',.\/ oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `cid` | string(36) | - | Identyfikator klienta/płatnika nadany przez akceptanta,
**dopuszczalne znaki**: A-Za-z0-9 oraz myślnik (0x2D) |
| `phone` | string(20) | - | Numer telefonu,
**dopuszczalne znaki**: 0-9+- oraz znak spacji (0x20). |
| `email` | string(200) | ✔️ | Adres email. |
| `locale` | string(2) | - | Lokalizacja płatnika, określa język wysyłanej wiadomości mailowej, informującej o rozpoczęciu procesu płatności,
**dopuszczalne wartości**: `pl`, `en`. |
Domyślnym językiem wysyłanej wiadomości mailowej jest język polski dla transakcji w PLN, oraz język angielski dla pozostałych walut.
#### billing
| Parametr | Typ | Wymagany | Opis |
|---------------------|-------------|-------------------|-------------------|
| `firstName` | string(100) | ✔️ | Imię klienta,
**dopuszczalne znaki**: A-Za-z0-9#&_-"',.\/ oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `lastName` | string(100) | ✔️ | Nazwisko klienta,
**dopuszczalne znaki**: A-Za-z0-9#&_-"',.\/ oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `company` | string(200) | - | Nazwa firmy,
*Dopuszczalne znaki*: A-Za-z0-9-"'/,. oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `street` | string(200) | - | Ulica,
*Dopuszczalne znaki*: A-Za-z0-9-"'/,. oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `city` | string(100) | - | Miasto,
*Dopuszczalne znaki*: A-Za-z0-9-"'/,. oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `region` | string(100) | - | Region,
*Dopuszczalne znaki*: A-Za-z0-9-"'/,. oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `postalCode` | string(30) | - | Kod pocztowy,
*Dopuszczalne znaki*: A-Za-z0-9-"'/,. oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `countryCodeAlpha2` | string(2) | - | Kod kraju Alpha2. |
#### shipping
| Parametr | Typ | Wymagany | Opis |
|---------------------|-------------|-------------------|-------------------|
| `firstName` | string(100) | ✔️ | Imię klienta,
**dopuszczalne znaki**: A-Za-z0-9#&_-"',.\/ oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `lastName` | string(100) | ✔️ | Nazwisko klienta,
**dopuszczalne znaki**: A-Za-z0-9#&_-"',.\/ oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `company` | string(200) | - | Nazwa firmy,
*Dopuszczalne znaki*: A-Za-z0-9-"'/,. oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `street` | string(200) | - | Ulica,
*Dopuszczalne znaki*: A-Za-z0-9-"'/,. oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `city` | string(100) | - | Miasto,
*Dopuszczalne znaki*: A-Za-z0-9-"'/,. oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `region` | string(100) | - | Region,
*Dopuszczalne znaki*: A-Za-z0-9-"'/,. oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `postalCode` | string(30) | - | Kod pocztowy,
*Dopuszczalne znaki*: A-Za-z0-9-"'/,. oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `countryCodeAlpha2` | string(2) | - | Kod kraju Alpha2. |
#### card
| Parametr | Typ | Wymagany | Opis |
|---------------------|-------------|-------------------|-------------------|
`firstName` | string(100) | ✔️ | Imię właściciela karty,
**dopuszczalne znaki**: A-Za-z0-9#&_-"',.\/ oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `lastName` | string(100) | ✔️ | Nazwisko właściciela karty,
**dopuszczalne znaki**: A-Za-z0-9#&_-"',.\/ oraz znak spacji(0x20) i znaki z zakresu UNICODE 00C0 - 02C0 (m.in. polskie znaki diakrytyczne) |
| `number` | string(16) | ✔️ | Numer karty |
| `month` | string(2) | ✔️ | Ważność karty - miesiąc |
| `year` | string(4) | ✔️ | Ważność karty - rok |
| `cvv` | string(4) | ✔️ | Kod cvv karty |