1. Wprowadzenie

Dokument zawiera informacje na temat RESTful API bramki płatności imoje.

2. Status transakcji
3. Metoda autoryzacji

Bramka pozwala na autoryzację metodą Basic Auth lub metodą OAuth. Zalecaną metodą jest autoryzacja OAuth.

3.1. Basic Auth

Aby dokonać autoryzacji za pomocą metody Basic Auth w żądaniu do serwera należy w nagłówkach zapytania umieścić dane autoryzacyjne (login i hasło):

Accept: application/json
Content-Type: application/json
Authorization: Basic Y2YzzjRjZ2ctM2I3NC00ZGEaLWIwNzAtMjlkYjRhZjM1ZjVhqjM5M2RkZDBkLTBlZWItNDYxNC02Z1ExLTAxMz B9NjEzZTI2NQ==

3.2. OAuth

Aby dokonać autoryzacji za pomocą metody OAuth należy w nagłówkach żądania do serwera umieścić dane autoryzacyjne:

Accept: application/json

Content-Type: application/json

Authorization: Bearer ad8y3hdoashco8fh49fhiahfb237f8hoihsd0f2hfikljf023h8

Kody odpowiedzi HTTP:

4. Metody RESTful API

Base URL: https://api.zen.pl/v1/merchant

Każdy poprawny adres składa się z trzech części:

  • adresu bazowego zapytania (https://api.zen.pl/v1),

  • identyfikatora akceptanta (/merchant/{identyfikator akceptanta}),

  • funkcji jednoznacznie określającej zakres danych, których dotyczy zapytanie ( np. /transaction lub /services).

Każde zapytanie do serwera powinno zawierać dane autoryzacyjne w nagłówkach (Basic Auth lub OAuth).

gdzie:

  • merchantId – identyfikator akceptanta w systemie

  • accessToken – token autoryzacyjny,

  • serviceId – identyfikator sklepu z którym związane są określone metody realizacji transakcji (UUID v4),

  • state – status transakcji,

  • cid – identyfikator klienta/płatnika nadany przez akceptanta,

  • transactionId – unikalny identyfikator transakcji (UUID v4).

Payload zapytania

5. Tworzenie nowej transakcji przez API

W celu utworzenia nowego zamówienia należy za pomocą metody POST przesłać komunikat na endpoint API https://api.zen.pl/v1/merchant/{merchantId}/transaction zawierający informacje o nowym zamówieniu.

5.1. HTTP Request dla płatności PBL

Przykładowy adres na który należy wysłać żądanie POST

Nagłówki zapytania

Accept: application/json
Authorization: Basic sMkJhaYusOksa87Hbagt+8salsnsJjayPmznx
Content-Length: 895
Content-Type: application/json

{

 "type": "sale",

 "serviceId": "62f574ed-d4ad-4a7e-9981-89ed7284aaba",

 "amount": 100,

 "currency": "PLN",

 "title": "",

 "orderId": "123123123",

 "paymentMethod": "ing",

 "paymentMethodCode": "ing",

 "successReturnUrl": "https://domain.com/success",

 "failureReturnUrl": "https://domain.com/failure",

 "customer": {

   "firstName": "Jan",

   "lastName": "Kowalski",

   "cid": "123",

   "company": "",

   "phone": "",

   "email": "jan.kowalski@example.com"

  },

 "billing": {

   "firstName": "Jan",

   "lastName": "Kowalski",

   "company": "Company",

   "street": "Street",

   "city": "City",

   "region": "Region",

   "postalCode": "",

   "countryCodeAlpha2": "PL"

  },

 "shipping": {

   "firstName": "Jan",

   "lastName": "Kowalski",

   "company": "Company",

   "street": "Street",

   "city": "City",

   "region": "Region",

   "postalCode": "",

   "countryCodeAlpha2": "PL"

  }

}

Parametr Payload

Jeżeli w zapytaniu wystąpi parametr customerbilling, lub shipping konieczne jest dostarczenie parametrów:

Customer

Billing

Shipping