Utworzenie zamówienia

Metoda do utworzenia zamówienia

W danej metodzie wymagamy implementacji wszystkich pól wymienionych w tabeli, ponieważ składają się na całość usługi InPost Pay. Część poniższych pól w kolumnie 'Wymagalność' jest oznaczona jako 'O' tj. opcjonalna ze względu na to, że nie wszystkie produkty/koszyki w sklepach internetowych mają przypisane wszystkie parametry, więc koszyk może zostać utworzony, a zamówienie złożone bez nich. Jednak implementacja/wdrożenie wszystkich pól jest biznesowo WYMAGANE.

POST /v1/izi/order

Parameters - brak

Request

Nazwa pola

Opis

Typ

Wymagalność

Dodatkowe uwagi

order_details

Dane do utworzenia zamówienia

object

Y

 

order_details.order_comments

Dodatkowe informacje o zamówieniu

string

O

"comments":"Zamówienie test"

order_details.basket_id

Identyfikator koszyka nadany przez merchanta na podstawie którego ma być utworzone zamówienie

string

Y

"basket_id":"4734da95-458b-44da-8d6e-854b2e501066"

order_details.currency

Waluta. Obecnie tylko PLN

string

Y

"currency":"PLN"

order_details.basket_price

Całkowita wartość koszyka wraz z kosztami dostawy

object

Y

 

order_details.basket_price.net

Netto

number($decimal)

Y

"basket_price":{"net":584.62,"gross":584.62,"vat":0}

order_details.basket_price.gross

Brutto

number($decimal)

Y

order_details.basket_price.vat

VAT

number($decimal)

Y

order_details.payment_type

Wybrana forma płatności przez użytkownika. Dostępne formy Enum:

[ CARD, CARD_TOKEN, GOOGLE_PAY, APPLE_PAY, BLIK_CODE, BLIK_TOKEN, PAY_BY_LINK, SHOPPING_LIMIT, DEFERRED_PAYMENT, CASH_ON_DELIVERY ]

string

Y

"payment_type":"PAY_BY_LINK"

account_info

Informacje o koncie użytkowania

object

Y

 

account_info.name

Imię

string

Y

"name":"Jan"

account_info.surname

Nazwisko

string

Y

"surname":"Kowalski"

account_info.phone_number

Numer telefonu

object

Y

 

account_info.phone_number.country_prefix

Prefix

string

Y

"phone_number":{"country_prefix":"+48","phone":"200000000"}

account_info.phone_number.phone

Numer telefonu użytkownika

string

Y

account_info.mail

Mail

Jeżeli użytkownik loguje się do InPost Pay z użyciem Apple, adres email konta zawiera hash nadany przez Apple i ma formę np. abc@privaterelay.appleid.com. Aby Merchant mógł komunikować się z klientem używając tego adresu, domena Merchanta musi być dodana na koncie InPost w Apple. Apple limituje liczbę domen przypisanych do konta do 100. W związku z tym InPost przekazuje do Merchanta adres email abc@mail.inpostpay.pl z tym samym hash, ale w domenie mail.inpostpay.pl.

string

Y

"mail":"jan.nowak@t...l"

account_info.client_address

Adres użytkownika

object

Y

 

account_info.client_address.country_code

Kod kraju

string

Y

"client_address":{"country_code":"PL","city":"POZNAN","address":"Testowa 100","postal_code":"00-000","address_details":{"street":"Testowa","building":"100"}}

account_info.client_address.address

Adres

string

Y

account_info.client_address.city

Miasto

string

Y

account_info.client_address.postal_code

Kod pocztowy

string

Y

account_info.client_address.address_details

Obiekt do przekazania rozparsowanego adresu

object

O

account_info.client_address.address_details.street

Ulica

string

O

account_info.client_address.address_details.building

Numer budynku

string

O

account_info.client_address.address_details.flat

Numer mieszkania

string

O

invoice_details

Dane do faktury

object

O

 

invoice_details.legal_form

Forma prawna Enum: [ PERSON, COMPANY ]

string

O

"invoice_details":{"legal_form":"COMPANY","country_code":"PL","tax_id":"0000000000","company_name":TEST","city":"Warszawa","street":"ul. Krakowska","building":"10A","postal_code":"00-000","mail":"test@m..l","registration_data_edited":"true"}

invoice_details.country_code

Kod kraju

string

O

invoice_details.tax_id_prefix

Id prefix

string

O

invoice_details.tax_id

Identyfikator podatkowy

string

O

invoice_details.company_name

Nazwa firmy

string

O

invoice_details.name

Imię

string

O

invoice_details.surname

Nazwisko

string

O

invoice_details.city

Miasto

string

O

invoice_details.street

Ulica

string

O

invoice_details.building

Numer budynku

string

O

invoice_details.flat

Numer mieszkania

string

O

invoice_details.postal_code

Kod pocztowy

string

O

invoice_details.mail

Mail

string

O

invoice_details.registration_data_edited

Data rejestracji

string

O

invoice_details.additional_information

Dodatkowe informacje

string

O

delivery

Informacje o dostawie

object

Y

 

delivery.delivery_type

Forma dostawy Enum:

[ APM, COURIER ]

string

Y

"delivery_type":"APM"

delivery.delivery_codes

Wybrane opcje dostawy - lista

array

O

"delivery_codes":["PWW"]

delivery.mail

Mail

Jeżeli użytkownik loguje się do InPost Pay z użyciem Apple, adres email konta zawiera hash nadany przez Apple i ma formę np. abc@privaterelay.appleid.com. Aby Merchant mógł komunikować się z klientem używając tego adresu, domena Merchanta musi być dodana na koncie InPost w Apple. Apple limituje liczbę domen przypisanych do konta do 100. W związku z tym InPost przekazuje do Merchanta adres email abc@mail.inpostpay.pl z tym samym hash, ale w domenie mail.inpostpay.pl.

string

O

"mail":"test@m..m"

delivery.phone_number

Numer telefonu

object

O

 

delivery.phone_number.country_prefix

Prefix

string

Y

"phone_number":{"country_prefix":"+48","phone":"600000000"}

delivery.phone_number.phone

Numer

string

Y

delivery.delivery_point

Punkt dostawy paczkomatu

string

O

"delivery_point":"RSL218"

delivery.delivery_address

Adres dostawy

object

O

 

delivery.delivery_address.name

Nazwa

string

Y

"name":"Jan Kowalski"

delivery.delivery_address.country_code

Kod kraju

string

O

"country_code":"PL"

delivery.delivery_address.address

Adres

string

Y

"address":"SW.Jana 100"

delivery.delivery_address.city

Miasto

string

Y

"city":"POZNAN"

delivery.delivery_address.postal_code

Kod pocztowy

string

Y

"postal_code":"11-005"

address_details

Rozprasowany adres

object

O

 

address_details.street

Ulica

string

O

"address_details":{"street":"Swmichala","building":"100"}

address_details.building

Numer budynku

string

O

address_details.flat

Numer lokalu

string

O

delivery.courier_note

Uwagi dla kuriera

string

O

"courier_note ":"Proszę o przekazanie przesyłki po godzinie 16"

consents

Obiekt służący do przekazania informacji o wyrażonych zgodach przez klienta dla danego zamówienia

array

Y

 

consents.consent_id

Id zgody

string

Y

"consent_id":3

consents.consent_version

Wersja zgody

string

O

"consent_version":1

consents.is_accepted

Informacja, czy została wyrażona zgoda

boolean

Y

"is_accepted": true

 

Response

Nazwa pola

Opis

Typ

Wymagalność

Dodatkowe uwagi

order_details

Szczegóły zamówienia

object

Y

 

order_details.order_comments

Uwagi o zmówieniu

string

O

"comments ":"Zamówienie przetwarzane"

order_details.order_id

Identyfikator zmówienia nadawany przez merchanta

string

Y

"order_id":"3433d1b7-fd9b-484b-aa68-80fccc575407"

order_details.customer_order_id

Identyfikator zamówienia prezentowany klientowi oraz wykorzystywany do płatności. W przypadku braku wykorzystywany jest order_id

string

O

"customer_order_id":"3433d1b7”

order_details.pos_id

POS id

string

Y

"pos_id":"V000000000"

order_details.order_creation_date

Data utworzenia zamówienia

string($date-time)

Y

"order_creation_date":"2023-09-07T14:18:41.949Z"

order_details.basket_id

Identyfikator koszyka, na podstawie którego zostało utworzone zamówienia

string

Y

"basket_id":"f55646f7-5773-0009-d8ba-000064fae5e1"

order_details.payment_type

Wybrany typ płatności. Enum:

[ CARD, CARD_TOKEN, GOOGLE_PAY, APPLE_PAY, BLIK_CODE, BLIK_TOKEN, PAY_BY_LINK, SHOPPING_LIMIT, DEFERRED_PAYMENT, CASH_ON_DELIVERY ]

string

Y

"payment_type":"BLIK_CODE"

order_details.order_merchant_status_description

Status opisowy prezentowany klientowi w aplikacji InPost Pay - każdy Merchant może przekazać status tak, aby statusy prezentowane w InPost Mobile były zgodne ze statusem prezentowanym klientowi w sklepie Merchanta.

string

Y

"order_merchant_status_description":"W trakcie realizacji"

order_details.order_base_price

Cena za zamówienie bez kosztów dostawy

object

Y

 

order_details.order_base_price.net

Netto

number($decimal)

Y

"order_base_price":{"net":202.51,"gross":263.0,"vat":60.49},

order_details.order_base_price.gross

Brutto

number($decimal)

Y

order_details.order_base_price.vat

VAT

number($decimal)

Y

order_details.order_final_price

Cena za zamówienie z uwzględnieniem kosztów dostawy

object

Y

 

order_details.order_final_price.net

Netto

number($decimal)

Y

"order_final_price":{"net":208.2,"gross":270.0,"vat":61.8}

order_details.order_final_price.gross

Brutto

number($decimal)

Y

order_details.order_final_price.vat

VAT

number($decimal)

Y

order_details.order_discount

Wartość zastosowanych kodów rabatowych na zamówieniu

number($decimal) 

"order_discount": 20.2

order_details.currency

Waluta zamówienia (obecnie tylko PLN)

string

Y

"currency":"PLN"

order_details.delivery_references_list

Lista nadanych numerów przesyłek zamówienia

array

O

"delivery_references_list":[12345678]

account_info

Informacje o koncie użytkowania

object

Y

 

account_info.name

Imię

string

Y

"account_info":{"name":"Jan","surname":"Kowalski","phone_number":{"country_prefix":"+48","phone":"600000000"}

account_info.surname

Nazwisko

string

Y

account_info.phone_number

Numer telefonu

object

Y

account_info.phone_number.country_prefix

Prefix

string

Y

account_info.phone_number.phone

Numer telefonu użytkownika

string

Y

account_info.mail

Mail

string

Y

"mail":"test@g...m"

account_info.client_address

Adres użytkownika

object

Y

 

account_info.client_address.country_code

Kod kraju

string

Y

"client_address":{"country_code":"PL","city":"TEST","address":"Testowa 3/9 Testowa 3 ","postal_code":"11-111"}

account_info.client_address.address

Adres

string

Y

account_info.client_address.city

Miasto

string

Y

account_info.client_address.postal_code

Kod pocztowy

string

Y

invoice_details

Dane do faktury

object

O

 

invoice_details.legal_form

Forma prawna [ PERSON, COMPANY ]

string

O

"invoice_details":{"legal_form":"COMPANY","country_code":"PL","tax_id":"0000000000","company_name":TEST","city":"Test","street":"ul. Krakowska","building":"10A","postal_code":"01-997","mail":"test@m..l","registration_data_edited":"true"}

invoice_details.country_code

Kod kraju

string

O

invoice_details.tax_id_prefix

Id prefix

string

O

invoice_details.tax_id

Identyfikator podatkowy

string

O

invoice_details.company_name

Nazwa firmy

string

O

invoice_details.name

Imię

string

O

invoice_details.surname

Nazwisko

string

O

invoice_details.city

Miasto

string

O

invoice_details.street

Ulica

string

O

invoice_details.building

Numer budynku

string

O

invoice_details.flat

Numer mieszkania

string

O

invoice_details.postal_code

Kod pocztowy

string

O

invoice_details.mail

Mail

string

O

invoice_details.registration_data_edited

Data rejestracji

string

O

invoice_details.additional_information

Dodatkowe informacje

string

O

delivery

Informacje o dostawie

object

Y

 

delivery.delivery_type

Forma dostawy Enum:

[ APM, COURIER ]

string

Y

"delivery_type":"COURIER"

delivery.delivery_date

Data dostawy

string($date-time)

Y

"delivery_date":"2023-09-10T12:00:00.000Z"

delivery.delivery_options

Wybrane opcje dostawy

array

O

 

delivery.delivery_options.delivery_name

Nazwa

string

Y

"delivery_options":[{"delivery_name":"Paczka w Weekend","delivery_code_value":"PWW","delivery_option_price":{"net":5,"gross":"6.15","vat":"1.15"}}]

delivery.delivery_options.delivery_code_value

Kod opcji

string

Y

delivery.delivery_options.delivery_option_price

Kwota opcji odstawy

object

Y

delivery.delivery_options.delivery_option_price.net

Netto

number($decimal)

Y

delivery.delivery_options.delivery_option_price.gross

Brutto

number($decimal)

Y

delivery.delivery_options.delivery_option_price.vat

VAT

number($decimal)

Y

delivery.mail

Mail

string

O

"mail":"test@g..m"

delivery.phone_number

Numer telefonu

object

O

 

delivery.phone_number.country_prefix

Prefix

string

Y

"phone_number":{"country_prefix":"+48","phone":"600000000"}

delivery.phone_number.phone

Numer

string

Y

delivery.delivery_point

Punkt dostawy paczkomatu

string

O

"delivery_point":"RSL218"

delivery.delivery_address

Adres dostawy

object

O

 

delivery.delivery_address.name

Nazwa

string

Y

"delivery_address":{"name":"Jan Kowalski","country_code":"PL","address":"Testowana 3 ","city":"test","postal_code":"09-100"}

delivery.delivery_address.country_code

Kod kraju

string

Y

delivery.delivery_address.address

Adres

string

Y

delivery.delivery_address.city

Miasto

string

Y

delivery.delivery_address.postal_code

Kod pocztowy

string

Y

delivery.delivery_price

Obiekt służący do przekazania informacji o koszcie dostawy

object

Y

 

delivery.delivery_price.net

Cena netto

number ($decimal)(10,2)

Y

"delivery_price":{"net":"10.00","gross":"12.30","vat":"2.30"}

delivery.delivery_price.gross

Cena brutto (netto + VAT)

number ($decimal)(10,2)

Y

delivery.delivery_price.vat

VAT

number ($decimal)(10,2)

Y

delivery.courier_note

Uwagi dla kuriera

string

O

"courier_note ":"Proszę o przekazanie przesyłki po godzinie 16"

products

Lista produktów w zamówieniu

array

Y

 

products.product_id

Identyfikator produktu nadany przez merchanta

string

Y

"product_id":26

products.product_category

Kategoria produktu nadana przez merchanta

string

O

"product_category":20

products.ean

Ean

string

O

"ean":"0"

products.product_name

Nazwa produktu

string

Y

"product_name":"Plecak washpapa"

 

products.product_description

Opis produktu

string

O

"product_description":" \r\n\r\nCzasem masz ochotę rzucić wszystko, spakować się i wyjechać w Bieszczady? Jest to dobry plan na wakacje. A w ciągu roku po prostu odkrywaj swoje miasto na nowo.\r\n\r\nUdana eksploracja nie obędzie się bez solidnego plecaka ze zwijanym zamknięciem i uszytego z wysokiej jakości materiałów, takiego jak nasz.\r\n\r\nBawełniane pasy zapewnią wygodę noszenia, a washpapa wyrazi Twoje przywiązanie do natury. Pamiętaj! Za każdą przygodą stoi dobry plecak."

products.product_link

Link do produktu na stronie merchanta

string

O

"product_link":"https://test.outofthebox.pl/product/plecak-washpapa/"

products.product_image

Link do zdjęcia produktu. Preferowane formaty: png, jpg (rekomendacja: png bez tła)

string

O

"product_image":"https://test.outofthebox.pl/img/2022/10/INPOST_aranzacje-z-modelami25-1.jpg"

products.additional_product_images

Obiekt do przekazania dodatkowych zdjęć produktu (lista)

object

O

-

products.additional_product_images.small_size

zdjęcie produktu. Preferowany rozmiar 360 x 352

string

Y

-

products.additional_product_images.normal_size

zdjęcie produktu. Preferowany rozmiar 360 x 504

string

Y

-

products.base_price

Cena produktu uwzględniająca zastosowane rabaty i kody promocyjne na produkcie

object

Y

 

 

products.base_price.net

Cena netto

number ($decimal)(10,2)

Y

"base_price":{"net":"161.79","gross":"199.00","vat":"37.21"}

products.base_price.gross

Cena brutto (netto + VAT)

number ($decimal)(10,2)

Y

products.base_price.vat

VAT

number ($decimal)(10,2)

Y

products.quantity

Obiekt do przekazania informacji o ilości produktu

object

Y

 

products.quantity.quantity

Ilość produktu

number ($decimal)

 

Y

"quantity":1

 

products.quantity.quantity_type

Typ pola quantity. Dostępne wartości: Enum: [ DECIMAL, INTEGER ]

Jeżeli quantity_type produktu to INTEGER, wtedy Merchant przesyła cenę za 1 sztukę produktu. Jeżeli quantity_type produktu to DECIMAL, wtedy Merchant przesyła cenę za wybraną ilość produktu.  

  • Przykład 1) Mamy 5 sztuk koszul w cenie 10 zł za sztukę. W takim przypadku quantity_type, to INTEGER i cena produktu wynosi 10 zł.

  • Przykład 2) Mamy 0,35 kg mąki w cenie 5 zł. W takim przypadku quantity_type, to DECIMAL i cena produktu wynosi 5 zł.

string

0

"quantity_type":"INTEGER"

products.quantity.quantity_unit

Jednostka ilości produktu

string

O

"quantity_unit":"pcs"

products.product_attributes

Obiekt służący do określenia atrybutów produktu

array

O

 

products.product_attributes.attribute_name

Nazwa atrybutu

string

Y

"product_attributes":[{"attribute_name":"Wymiary/Pojemność","attribute_value":"54 cm x 38 cm x 10 cm"},{"attribute_name":"Materiał","attribute_value":"Washable paper standard + kodura + pasy bawełniane tkane"}]

products.product_attributes.attribute_value

Wartość atrybutu

string

Y

consents

Obiekt służący do przekazania informacji o wyrażonych zgodach przez klienta dla danego zamówienia

array

Y

 

consent_id

Id zgody

string

Y

"consent_id":3

consents.consent_version

Wersja zgody

string

Y

"consent_version":1

consents.is_accepted

Informacja, czy została wyrażona zgoda

boolean

Y

"is_accepted": true

Przykładowy request

{ "order_details": { "basket_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "currency": "PLN", "basket_price": { "net": 19.51, "gross": 24, "vat": 4.49 }, "payment_type": "BLIK_CODE" }, "account_info": { "name": "<secret>", "surname": "<secret>", "phone_number": { "country_prefix": "+48", "phone": "5xxxxxxxx" }, "mail": "<secret>", "client_address": { "country_code": "<secret>", "address": "<secret>", "address_details": { "street": "<secret>", "building": "<secret>", "flat": "<secret>" }, "city": "<secret>", "postal_code": "<secret>" } }, "delivery": { "delivery_type": ""COURIER"", "mail": "<secret>", "phone_number": { "country_prefix": "+48", "phone": "5xxxxxxxx" }, "delivery_address": { "name": "<secret>", "country_code": "<secret>", "address": "<secret>", "city": "<secret>", "postal_code": "<secret>", "address_details": { "street": "<secret>", "building": "<secret>", "flat": "<secret>" } }, }, "consents": [ { "consent_id": "3", "consent_version": "1", "is_accepted": true } ] }

Response

{ "order_details": { "order_comments": "", "order_id": "xxxxxxx", "pos_id": "xxx", "order_creation_date": "2023-08-24T09:21:59.809Z", "basket_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "order_merchant_status_description": "Wstrzymane (oczekujące na płatność)", "payment_type": "BLIK_CODE", "order_base_price": { "net": "11.38", "gross": "14.00", "vat": "2.62" }, "order_final_price": { "net": "19.51", "gross": "24.00", "vat": "4.49" }, "currency": "PLN", "delivery_references_list": [ "" ] }, "account_info": { "name": "<secret>", "surname": "<secret>", "phone_number": { "country_prefix": "+48", "phone": "5xxxxxxxx" }, "mail": "<secret>", "client_address": { "country_code": "string", "address": "<secret>", "address_details": { "street": "<secret>", "building": "<secret>", "flat": "<secret>" }, "city": "<secret>", "postal_code": "<secret>" } }, "invoice_details": { "legal_form": null, "country_code": "<secret>", "tax_id_prefix": "<secret>", "tax_id": "<secret>", "company_name": "<secret>", "name": "<secret>", "surname": "<secret>", "city": "<secret>", "street": "<secret>", "building": "<secret>", "flat": "<secret>", "postal_code": "<secret>", "mail": "<secret>", "registration_data_edited": "<secret>", "additional_information": "" }, "delivery": { "delivery_type": "COURIER", "delivery_date": "2023-08-25T12:00:00.000Z", "delivery_options": null "mail": "<secret>", "phone_number": { "country_prefix": "+48", "phone": "5xxxxxxx" }, "delivery_point": null, "delivery_address": { "name": "<secret>", "country_code": "<secret>", "address": "<secret>", "city": "<secret>", "postal_code": "<secret>", "address_details": { "street": "<secret>", "building": "<secret>", "flat": "<secret>" } }, "delivery_price": { "net": "8.13", "gross": "10.00", "vat": "1.87" }, "courier_note": "" }, "products": [ { "product_id": "660", "product_category": "17", "ean": "0", "product_name": "Pin Szach - Mat", "product_description": " \r\n\r\nCzy wiesz, czym jest pin? To hasło, które idealnie do Ciebie pasuje. A czy wiesz, czym różni się pin InPost od kodu PIN do bankomatu?\r\nPinu InPost nie musisz chować przed światem. Nie musisz się bać, że ktoś Ci go zabierze, a potem wykorzysta. Pin InPost możesz nosić w miejscach publicznych i chwalić się nim przypadkowo napotkanym ludziom.\r\nDla kogo jest ten pin?\r\nDla tych, którzy lubią wygrywać, docierać do celu, stawiać na swoim. Dla tych, którzy chcą odnosić sukcesy na tyle sposobów, ile jest kombinacji szachowych.\r\nZ czego zrobiono ten pin? Wytłoczono go z miedzianej blachy i pomalowano lakierami akrylowymi.\r\n\r\nKliknij po pin -- i noś go z dumą!\r\n\r\n \r\n\r\n \r\n\r\n) opakowanie nie zawiera dumy, dumę musisz zorganizować sobie samodzielnie", "product_link": "https://outofthebox.pl/product/pin-szach-mat/", "product_image": "https://outofthebox.pl/app/uploads/2022/10/INPOST_packshoty27.jpg", "base_price": { "net": "11.38", "gross": "14.00", "vat": "2.62" }, }, "quantity": { "quantity": 1, "quantity_type": "DECIMAL", "quantity_unit": "pcs" }, "product_attributes": [] } ], "consents": [ { "consent_id": "3", "consent_version": "1", "is_accepted": true } ] }