# შეკვეთის მოთხოვნა ⚠️(Deprecated)

მეთოდის საშუალებით, ონლაინ მაღაზია ონლაინ განვადების სერვერზე აგზავნის გადახდის დეტალებს, ტექნიკურ მახასიათებლებსა და გადასახდელ თანხას. ოპერაციის წარმატებით დასრულების შემთხვევაში, პროცესის გასაგრძელებლად, მომხმარებელი უნდა გადაამისამართოთ ონლაინ განვადების გვერდზე, `links` პარამეტრში დაბრუნებულ `REDIRECT` მისამართზე.

### Header-ის პარამეტრები

- `Content-Type` — application/json, required

- `Authorization` — Bearer <jwt_token>, required

  გადაეცემა „Bearer <jwt_token>“  მნიშვნელობა, სადაც jwt_token არის ავთენტიფიკაციის მეთოდის Response-ის access_token პარამეტრში დაბრუნებული მნიშვნელობა.

### Body-ს პარამეტრები

- `intent` — string, required

  პარამეტრი განსაზღვრავს, რომელი გადახდის მეთოდით იხდის მომხმარებელი. განვადების ინტეგრაციის დროს ყოველთვის გადაეცემა `LOAN` მნიშვნელობა.

- `installment_month` — string, required

  მომხმარებლის მიერ არჩეული განვადების თვეების რაოდენობა. განვადების თვეებისა და ტიპების მისაღებად უნდა გამოიყენოთ [განვადების კალკულატორის](get-discounts.md) სერვისი.

- `installment_type` — string, required

  მომხმარებლის მიერ არჩეული განვადების ტიპი.

- `shop_order_id` — string, required

  შეკვეთის იდენტიფიკატორი ონლაინ მაღაზიის სისტემიდან (მაგალითად: შესყიდვების კალათის იდენტიფიკატორი).

- `success_redirect_url` — string, required

  მისამართი რომელზეც მომხმარებელი გადამისამართდება განვადების წარმატებით გააქტიურების შემთხვევაში. განვადების გააქტიურების შემდეგ მერჩანტთან იგზავნება ქოლბექი, რომელზეც უნდა დააბრუნოს `200` HTTP კოდი და ამის შემდეგ მომხმარებელი გადამისამართდება მითითებულ მისამართზე. იმ შემთხვევაში, თუ მერჩანტმა დააბრუნა სხვა HTTP კოდი, მომხმარებელი გადამისამართდება `reject_redirect_url`-ზე, სტატუსი დარჩება წარმატებული და მერჩანტმა სტატუსის გასაგებად [განვადების დეტალების](installment-details.md) სერვისი უნდა გამოიძახოს.

- `fail_redirect_url` — string, required

  მისამართი, რომელზეც მომხმარებელი გადამისამართდება იმ შემთხვევაში, თუ განვადების აქტივაციის დროს დაფიქსირდება შეცდომა.

- `reject_redirect_url` — string, required

  მისამართი, რომელზეც მომხმარებელი გადამისამართდება იმ შემთხვევაში, თუ რომელიმე აქტივაციისგან განსხვავებულ ეტაპზე დაფიქსირდა შეცდომა, ან განვადების აქტივაციის შემდეგ მერჩანტმა `200` HTTP კოდისგან განსხვავებული კოდი დააბრუნა, ან ქოლბექი გავიდა ტაიმაუტზე.

- `validate_items` — boolean

  მოცემული პარამეტრის მიხედვით, ერთმანეთს შეედარება კალათაში მოთავსებული ნივთების ფასების ჯამი და შეკვეთის ჯამური თანხა. პარამეტრის არგადმოცემის შემთხვევაში მნიშვნელობა იქნება `true`

  -	`true` გადმოცემის შემთხვევაში, ერთმანეთს შეედარება ნივთების ფასების ჯამი და შეკვეთის ჯამური რაოდენობა.  სხვაობის შემთხვევაში დაფიქსირდება შეცდომა.
  -	`false` გადმოცემის შემთხვევაში, ნივთების ფასების ჯამი და შეკვეთის ჯამური თანხა ერთმანეთს არ შეედარება, მაგრამ კალათაში მოთავსებული ნივთების ფასი უნდა იყოს 0-ზე მეტი.

- `locale` — ka

  განსაზღვრავს, ონლაინ განვადების გვერდზე გადამისამართების შემდეგ, რომელი ენის ინტერფეისი დახვდება მომხმარებელს. ამჟამად ხელმისაწვდომია მხოლოდ `ka` - ქართული.

- `purchase_units` — array, required

  მოცემულია ინფორმაცია განვადების თანხისა და ვალუტის შესახებ.

  - `amount` — object, required

        განვადების თანხის ობიექტი.

    - `currency_code` — string, required

        განვადების ვალუტა.

    - `value` — number, required

        განვადების თანხის მნიშვნელობა.

- `cart_items` — array, required

  ონლაინ მაღაზიაში, მოცემული გადახდის ფარგლებში, შესყიდული პროდუქტების სია, რომელიც მოიცავს შემდეგ ატრიბუტებს

  - `total_item_amount` — string, required

    პროდუქტის ჯამური ფასი. მაგალითად, თუ პროდუქტის ფასი არის 50 ₾ და რაოდენობა 2, პარამეტრში უნდა გადასცეთ 100₾

  - `item_description` — string, required

    შესყიდული პროდუქტის დასახელება (აღწერა)

  - `total_item_qty` — number, required

    შესყიდული პროდუქტის რაოდენობა

  - `item_vendor_code` — string, required

    შესყიდული პროდუქტის იდენტიფიკატორი ონლაინ მაღაზიის სისტემაში

  - `product_image_url` — string

    პროდუქტის სურათის ვებმისამართი (URL)

  - `item_site_detail_url` — string

    პროდუქტის ვებმისამართი ონლაინ მაღაზიის გვერდზე

**request**

```api
POST /v1/installment/checkout HTTP/1.1
Content-Type: application/json
Authorization: Bearer <jwt_token>
```

```json
{
  "intent": "LOAN",
  "installment_month": 6,
  "installment_type": "STANDARD",
  "shop_order_id": "123456",
  "success_redirect_url": "https://demo.ipay.ge/success",
  "fail_redirect_url": "https://demo.ipay.ge/fail",
  "reject_redirect_url": "https://demo.ipay.ge/reject",
  "validate_items": true,
  "locale": "ka",
  "purchase_units": [
    {
      "amount": {
        "currency_code": "GEL",
        "value": "500.00"
      }
    }
  ],
  "cart_items": [
    {
      "total_item_amount": "10.50",
      "item_description": "test_product",
      "total_item_qty": "1",
      "item_vendor_code": "123456",
      "product_image_url": "https://example.com/product.jpg",
      "item_site_detail_url": "https://example.com/product"
    }
  ]
}
```

### Response

- `status` — string

  ონლაინ განვადების სტატუსი.

- `links` — array

  ვებრესურსის მისამართები, რომელიც განვადების პროცესის შემდგომ ეტაპებზე გამოიყენება.
  ამჟამად links პარამეტრი აბრუნებს ორ რესურსს:
  -	განვადების დეტალების მისამართი, რომლის საშუალებითაც შეგვიძლია გავიგოთ ინფორმაცია ონლაინ განვადების შესახებ (ამ რესურსის rel პარამეტრი იღებს მნიშვნელობას -  self).
  -	ვებგვერდის მისამართი, რომელზეც უნდა გადავიდეს მომხმარებელი ონლაინბანკინგის მონაცემების შესაყვანად და განვადების პროცესის დასასრულებლად (ამ რესურსის rel პარამეტრი იღებს მნიშვნელობას -  target).

  - `href` — string

    ვებრესურსის მისამართი

  - `rel` — string

    ვებრესურსის უნიკალური დასახელება

  - `method` — string

    http - ვებრესურსზე გადასასვლელი მეთოდი (GET, REDIRECT…)

- `order_id` — string

  ონლაინ განვადების შეკვეთის იდენტიფიკატორი.

**response**

```json
{
  "status": "CREATED",
  "links": [
      {
          "href": "https://installment-test.bog.ge/v1/installment/checkout/{order_id}",
          "rel": "self",
          "method": "GET"
      },
      {
          "href": "https://installment-test.bog.ge/?order_id={order_id}&locale=ka",
          "rel": "target",
          "method": "REDIRECT"
      }
    ],
  "order_id": "{order_id}"
}
```
