Dokumentacja

Dokumentacja przedstawia krok po kroku jak w prosty i szybki sposób skomunikować
Twój sklep z Comfino.

Składanie wniosku kredytowego

  • Wszystkie kwoty przesyłane do API powinny być polem typu int oraz podane w groszach.
  • Zamówienie można stworzyć w trybie draftu jeśli kwota zamówienia nie jest jeszcze wiadoma.
  • Zamówienia stworzone w trybie draft muszą zostać uprawomocnione.

Zapytanie: | Zapytanie jest sprawdzane pod kątem poprawności przesyłanych wartości

curl -X POST 'http://{HOST_API}/v1/orders' \
--header 'API-KEY: {API-KEY}' \
--header 'Content-Type: application/json' \
--data-raw '{
  "notifyUrl": "https://your-shop.tld/notify",
  "returnUrl": "https://your-shop.tld/thanks",
  "orderId": "{twój_identyfikator_zamówienia}",
  "draft": false,
  "loanParameters": {
    "term": 123,
    "type": "INSTALLMENTS_ZERO_PERCENT"
  },
  "cart": {
      "category": "KATEGORIA Z SŁOWNIKA",
      "totalAmount": 100000,
      "deliveryCost": 1000,
      "products": [
          {
              "name": "Lenovo Ideapad 120S-14IAP",
              "quantity": 1,
              "price": 12321,
              "photoUrl": "01e5f8",
              "ean": "9002490100070",
              "externalId": "123"
              "category": "productCategory"
          },
          {
              "name": "Lenovo Ideapad 120S-14IAP",
              "quantity": 1,
              "price": 159900,
              "photoUrl": "01e5f8",
              "ean": "9002490100070",
              "externalId": "123",
              "category": "productCategory"
          }
      ]
  },
  "customer": {
    "firstName": "John",
    "lastName": "John",
    "taxId": null,
    "email": "dadas@da.pl",
    "phoneNumber": "312213213",
    "ip": "ip klienta",
    "regular": false,
    "logged": false,
    "address": {
      "street": "Rowowa",
      "buildingNumber": "1",
      "apartmentNumber": "1",
      "postalCode": "10-899",
      "city": "Karłowice",
      "countryCode": "PL"
    }
  },
  "seller": {
    "taxId": "1234567890"
  }
}'

Definicja pól:

Nazwa pola Typ Wymagane Format
notifyUrl string nie Znaki alfanumeryczne (max. 255)
returnUrl string tak Znaki alfanumeryczne (max. 255)
orderId string tak Znaki alfanumeryczne (max. 36)
loanParameters object tak Obiekt w formacie JSON
cart object tak Obiekt w formacie JSON
customer object tak Obiekt w formacie JSON
seller object nie Obiekt w formacie JSON lub pusta wartosc. Dla typu konta merchant pole jest pomijane. Dla marketplace'u jest wymagane oraz NIP musi byc wczesniej zdefiniowany metoda sale-point-add.

loanParameters:

Nazwa pola Typ Wymagane Format
term int, null nie Znaki numeryczne, pusta wartosc
type string, null nie INSTALLMENTS_ZERO_PERCENT, CONVENIENT_INSTALLMENTS, PAY_LATER, COMPANY_INSTALLMENTS, RENEWABLE_LIMIT, null

Typy produktów:

  • INSTALLMENTS_ZERO_PERCENT - Raty 0%
  • CONVENIENT_INSTALLMENTS - Niskie raty
  • PAY_LATER - Kup teraz zapłać później
  • COMPANY_INSTALLMENTS - Kredyt dla firm
  • RENEWABLE_LIMIT - Limit odnawialny

cart:

Nazwa pola Typ Wymagane Format
category string nie Znaki alfanumeryczne
totalAmount int tak Znaki numeryczne (kwota w groszach) - suma wszystkich produktow wraz z kwota dostawy
deliveryCost int nie Znaki numeryczne, pusta wartosc
products array tak obiekt JSON

cart.product:

Nazwa pola Typ Wymagane Format
name string tak Znaki alfanumeryczne
quantity int tak Znaki numeryczne
price int tak Znaki numeryczne
photoUrl string, null nie Znaki alfanumeryczne, pusta wartosc
ean string, null nie Znaki alfanumeryczne, pusta wartosc
externalId string, null nie Znaki alfanumeryczne, pusta wartosc
category string, null nie Znaki alfanumeryczne, pusta wartosc

customer:

Nazwa pola Typ Wymagane Opis Format
firstName string, null tak Imie Znaki alfanumeryczne (min. 2, max. 63) - jesli sklep ma imie i nazwisko w jednym polu, dzielimy lancuch po spacji i przekazujemy 1. element.
lastName string, null tak Nazwisko Znaki alfanumeryczne (min. 2, max. 63) - jesli sklep ma imie i nazwisko w jednym polu, dzielimy lancuch po spacji i przekazujemy wszystko od 2. elementu rozdzielajac spacja.
taxId string, null nie NIP Znaki alfanumeryczne
email string tak Adres e-mail Znaki alfanumeryczne
phoneNumber string tak Numer telefonu Znaki numeryczne (9 cyfr)
ip string tak Adres IP klienta (IPv4) Znaki numeryczne z dozwolona kropka
regular bool, null nie Staly klient/ponowny zakup true, false, null
logged bool, null nie Zalogowany/niezalogowany true, false, null
address object, null nie Adres klienta obiekt JSON

customer.address:

Nazwa pola Typ Wymagane Format
street string, null nie Znaki alfanumeryczne, pusta wartosc
buildingNumber string, null nie Znaki alfanumeryczne, pusta wartosc
apartmentNumber string, null nie Znaki alfanumeryczne, pusta wartosc
postalCode string, null nie Znaki alfanumeryczne, pusta wartosc
city string, null nie Znaki alfanumeryczne, pusta wartosc
countryCode string, null nie Znaki alfanumeryczne, pusta wartosc

seller:

Nazwa pola Typ Wymagane Format
taxId string, null nie Znaki alfanumeryczne (10 znakow), pusta wartosc

Odpowiedź:

{
    "status": "CREATED",
    "externalId": "{twój_identyfikator_zamówienia}",
    "applicationUrl": "{url_do_przekierowania_na_stronę_formularza}",
    "_links": {
        "legalize": {
            "href": "http://{HOST_API}/v1/orders/legalize",
            "method": "PUT"
        },
        "self": {
            "href": "http://{HOST_API}/v1/orders/{twój_identyfikator_zamówienia}",
            "method": "GET"
        },
        "cancel": {
            "href": "http:/{HOST_API}/v1/orders/{twój_identyfikator_zamówienia}/cancel",
            "method": "PUT"
        }
    }
}

Kody odpowiedzi:

  • 201 Created
  • 400 Bad Request
  • 401 Unauthorized
  • 405 Method Not Allowed
  • 500 Internal Server Error