Koin Ecommerce API

The Ecommerce API from Koin — 2 operation(s) for ecommerce.

OpenAPI Specification

koin-ecommerce-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Antifraud Access Ecommerce API
  description: Antifraud services
  license:
    name: Apache License Version 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: '2.0'
servers:
- url: https://api-sandbox.koin.com.br
  description: Sandbox domain url
tags:
- name: Ecommerce
paths:
  /v1/antifraud/pre-evaluations:
    post:
      tags:
      - Ecommerce
      summary: Create Pre-Evaluation
      description: Receives a new transaction for antifraud analysis, its meant to be used before payment authorization.
      operationId: createPreEvaluationUsingPOST
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EcommerceAntiFraud'
            examples:
              Ecommerce:
                value:
                  buyer:
                    address:
                      city: sao paulo
                      complement: Dsauvybixo
                      country_code: BR
                      neighborhood: Iwewsfjyol
                      number: '1234'
                      state: sao paulo
                      street: One street
                      zip_code: '12345'
                    birth_date: '1980-05-06'
                    document:
                      nationality: BR
                      number: '11123456'
                      type: CPF
                    email: test@gmail.com
                    full_name: Dgvwicjiqr Amdbvqkbja
                    gender: MALE
                    id: '1234'
                    phone:
                      area_code: '1265'
                      number: '12345678'
                      type: MOBILE
                  callback_url: https://postman-echo.com/post
                  device:
                    ipv4: 191.111.186.20
                    location:
                      latitude: -14.11132789616039
                      longitude: -48.44445822129388
                    merchant_device: b3692474-a298-41be-8b1c-938965d5b5ed
                    session_id: 40151f31-dff5-46ab-b6f7-2191bf992003
                  items:
                  - category:
                      id: '17877451306'
                      name: Vtiqzgxlwh
                    discount_amount:
                      currency: USD
                      value: 2344
                    id: '17803811909'
                    name: Aszmxlpebz
                    price:
                      currency: USD
                      value: 8008.99
                    quantity: 3
                    seller_id: '16223265193'
                    service_date: '2023-02-10T13:50:31.000Z'
                    type: Generic
                  payments:
                  - amount:
                      currency: USD
                      value: 8008.99
                    concept: Ergvekrvit Prtldbjwjs
                    details:
                      bin: '424242'
                      brand_name: Visa
                      eci: '123'
                      expiration_month: '03'
                      expiration_year: '2032'
                      last_digits: '4444'
                    id: '12345'
                    installments: 11
                    method: CreditCard
                    payer:
                      address:
                        city: sao paulo
                        complement: Vzeiidkesz
                        country_code: BR
                        full_address: Zluqwxxdhc 10091
                        neighborhood: Fcbcwsgudy
                        state: sao paulo
                        zip_code: '15060'
                      birth_date: '1978-04-29'
                      document:
                        nationality: BR
                        number: '12345678'
                        type: CPF
                      email: test@gmail.com
                      first_name: Spoignvdki
                      gender: OTHER
                      id: '12345'
                      last_name: Rljwjfspta
                      phone:
                        area_code: '123'
                        number: '1234567'
                        type: MOBILE
                    subscription: false
                  service_date: '2023-02-02T13:50:31.000Z'
                  shipping:
                    address:
                      city: sao paulo
                      complement: Vpqbsrobnf
                      country_code: BR
                      full_address: Uychukpruh 10666
                      neighborhood: Pnddnuzvys
                      state: sao paulo
                      zip_code: '18476'
                    delivery:
                      by: DHL
                      date: '2023-02-10T13:50:31.000Z'
                      type: EXPRESS
                    price:
                      currency: USD
                      value: 45.99
                  sla_date: '2023-02-10T13:50:31.000Z'
                  store:
                    category: '17057'
                    code: Hrrnhqqisi
                    latitude: -34.56532789616039
                    longitude: -58.48945822129388
                    merchant_type: shopping
                  transaction:
                    agency_id: AGEN-12345
                    business_id: '1234567'
                    country_code: BR
                    reference_id: '123456'
                    sequence: 1
                    listener_mode: false
                    total_amount:
                      currency: USD
                      value: 8008.99
                  client_info:
                    creation_date: '1978-04-29T17:10:35.387Z'
                    classification: GOLD
                    customer_order:
                      currency_code: USD
                      value: 45.99
                    days_since_first_order: 45
                    days_since_last_order: 10
                    cancelled_orders: 3
                    average_order:
                      currency_code: USD
                      value: 45.99
                    cash_orders: 3
                    card_orders: 6
                    bank_orders: 4
                    debit_orders: 2
                    super_segmentation: potential
                    purchase_power: pph
                    year_first_purchase: 2024
                    purchases_30_days: 12
                    purchases_60_days: 22
                    purchases_lifetime: 32
                  strategies_data:
                    collect_auth_supported: true
                    acquirer_bin: '408956'
                    acquirer: WDP
                    merchant_id: BRLIARLEGAPR
                    mcc: '1234'
                    merchant_descriptor: DAGS_TEST_3DS
                  type: Ecommerce
      responses:
        '200':
          description: Evaluation response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardApiPreEvalResponse'
              examples:
                Evaluation response:
                  value: '{ "id": "VEFRUD8HUR25N4992221", "evaluation_id": "31ff2cc8-199e-4c3c-ba2d-4d85b88bd9f2", "status": "received", "score": 50, "analysis_type": "AUTOMATIC" }'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadResponse'
              examples:
                Bad Request:
                  value: '{ "code": 400, "message": "Validation errors", "causes": [ "device.ip must not be blank" ] }'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnAuthorizedResponse'
              examples:
                Unauthorized Request:
                  value: '{ "code": 401, "message": "Store does not have access to path." }'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadResponse'
              examples:
                Error:
                  value: '{ "code": 500, "message": "Critical error in service for caseId db9279fd-2cc2-4672-aa13-1f02af50c488" }'
  /v1/antifraud/evaluations:
    post:
      tags:
      - Ecommerce
      summary: Create Evaluation
      description: Receives a new transaction for antifraud analysis, if used with pre-evaluation it should be called after the payment authorization. Its mandatory to reuse the reference_id from pre-evaluation.
      operationId: createEvaluationUsingPOST
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EcommerceAntiFraud'
            examples:
              Ecommerce:
                value:
                  buyer:
                    address:
                      city: sao paulo
                      complement: Dsauvybixo
                      country_code: BR
                      neighborhood: Iwewsfjyol
                      number: '1234'
                      state: sao paulo
                      street: One street
                      zip_code: '12345'
                    birth_date: '1980-05-06'
                    document:
                      nationality: BR
                      number: '11123456'
                      type: CPF
                    email: test@gmail.com
                    full_name: Dgvwicjiqr Amdbvqkbja
                    gender: MALE
                    id: '1234'
                    phone:
                      area_code: '1265'
                      number: '12345678'
                      type: MOBILE
                  callback_url: https://postman-echo.com/post
                  device:
                    ipv4: 191.111.186.20
                    location:
                      latitude: -14.11132789616039
                      longitude: -48.44445822129388
                    merchant_device: b3692474-a298-41be-8b1c-938965d5b5ed
                    session_id: 40151f31-dff5-46ab-b6f7-2191bf992003
                  items:
                  - category:
                      id: '17877451306'
                      name: Vtiqzgxlwh
                    discount_amount:
                      currency: USD
                      value: 2344
                    id: '17803811909'
                    name: Aszmxlpebz
                    price:
                      currency: USD
                      value: 8008.99
                    quantity: 3
                    seller_id: '16223265193'
                    service_date: '2023-02-10T13:50:31.000Z'
                    type: Generic
                  payments:
                  - amount:
                      currency: USD
                      value: 8008.99
                    concept: Ergvekrvit Prtldbjwjs
                    details:
                      bin: '424242'
                      brand_name: Visa
                      eci: '123'
                      expiration_month: '03'
                      expiration_year: '2032'
                      last_digits: '4444'
                    id: '12345'
                    installments: 11
                    method: CreditCard
                    payer:
                      address:
                        city: sao paulo
                        complement: Vzeiidkesz
                        country_code: BR
                        full_address: Zluqwxxdhc 10091
                        neighborhood: Fcbcwsgudy
                        state: sao paulo
                        zip_code: '15060'
                      birth_date: '1978-04-29'
                      document:
                        nationality: BR
                        number: '12345678'
                        type: CPF
                      email: test@gmail.com
                      first_name: Spoignvdki
                      gender: OTHER
                      id: '12345'
                      last_name: Rljwjfspta
                      phone:
                        area_code: '123'
                        number: '1234567'
                        type: MOBILE
                    subscription: false
                  service_date: '2023-02-02T13:50:31.000Z'
                  shipping:
                    address:
                      city: sao paulo
                      complement: Vpqbsrobnf
                      country_code: BR
                      full_address: Uychukpruh 10666
                      neighborhood: Pnddnuzvys
                      state: sao paulo
                      zip_code: '18476'
                    delivery:
                      by: DHL
                      date: '2023-02-10T13:50:31.000Z'
                      type: EXPRESS
                    price:
                      currency: USD
                      value: 45.99
                  sla_date: '2023-02-10T13:50:31.000Z'
                  store:
                    category: '17057'
                    code: Hrrnhqqisi
                    latitude: -34.56532789616039
                    longitude: -58.48945822129388
                    merchant_type: shopping
                  transaction:
                    agency_id: AGEN-12345
                    business_id: '1234567'
                    country_code: BR
                    reference_id: '123456'
                    sequence: 1
                    listener_mode: false
                    total_amount:
                      currency: USD
                      value: 8008.99
                  client_info:
                    creation_date: '1978-04-29T17:10:35.387Z'
                    classification: GOLD
                    customer_order:
                      currency_code: USD
                      value: 45.99
                    days_since_first_order: 45
                    days_since_last_order: 10
                    cancelled_orders: 3
                    average_order:
                      currency_code: USD
                      value: 45.99
                    cash_orders: 3
                    card_orders: 6
                    bank_orders: 4
                    debit_orders: 2
                    super_segmentation: potential
                    purchase_power: pph
                    year_first_purchase: 2024
                    purchases_30_days: 12
                    purchases_60_days: 22
                    purchases_lifetime: 32
                  strategies_data:
                    collect_auth_supported: true
                    acquirer_bin: '408956'
                    acquirer: WDP
                    merchant_id: BRLIARLEGAPR
                    mcc: '1234'
                    merchant_descriptor: DAGS_TEST_3DS
                  type: Ecommerce
      responses:
        '200':
          description: Evaluation response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardApiResponse'
              examples:
                Evaluation response:
                  value: '{ "id": "VEFRUD8HUR25N4992221", "evaluation_id": "31ff2cc8-199e-4c3c-ba2d-4d85b88bd9f2", "status": "received", "score": 50, "analysis_type": "AUTOMATIC" }'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadResponse'
              examples:
                Bad Request:
                  value: '{ "code": 400, "message": "Validation errors", "causes": [ "device.ip must not be blank" ] }'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnAuthorizedResponse'
              examples:
                Unauthorized Request:
                  value: '{ "code": 401, "message": "Store does not have access to path." }'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadResponse'
              examples:
                Error:
                  value: '{ "code": 500, "message": "Critical error in service for caseId db9279fd-2cc2-4672-aa13-1f02af50c488" }'
components:
  schemas:
    PrePaidCard:
      title: PrePaidCard
      type: object
      allOf:
      - $ref: '#/components/schemas/BaseCardPayment'
    Person:
      title: Person
      type: object
      properties:
        id:
          type: string
          description: Client custom person identifier
          example: c1245228
        first_name:
          type: string
          description: First name. Required if full_name is blank.
          example: Alvaro
        last_name:
          type: string
          description: Last name.  Required if full_name is blank.
          example: Garrincha
        full_name:
          type: string
          description: Full name. Is required if first_name and last_name are blank
          example: Alvaro Garrincha
        document:
          $ref: '#/components/schemas/Document'
        gender:
          type: string
          description: Gender
          enum:
          - FEMALE
          - MALE
          - OTHER
        address:
          $ref: '#/components/schemas/Address'
        birth_date:
          type: string
          description: Birthdate
          example: '1990-05-06'
        email:
          type: string
          description: Email contact. Required for Ecommerce Antifraud Data
          example: email@domain.com
        phone:
          description: phone
          $ref: '#/components/schemas/Phone'
    BaseDeviceData:
      title: device
      type: object
      properties:
        ipv4:
          type: string
          description: The original ipv4 address from the browser. Required if ipv6 is blank
          example: 70.56.69.13
        ipv6:
          type: string
          description: The original ipv6 address from the browser. Required if ipv4 is blank
          example: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
        location:
          $ref: '#/components/schemas/Location'
        merchant_device:
          type: string
          description: Id of the device, identified by the merchant in their internal systems
          example: 234c20c3-45de-41bf-b243-87ad5$RTbc3b
        session_id:
          type: string
          description: Value generated by the javascript/sdk snippet of our device fingerprint solution
          example: 5b8c20c3-45de-41bf-b243-87ad5d21bc3b
    Promissory:
      title: Promissory
      properties:
        installments:
          type: integer
          description: Number of installments
          format: int32
          example: 12
        provider:
          type: string
          description: Promissory provider name
          example: Prestamos SA.
        method:
          type: string
          description: Payment method used for the buyer
          enum:
          - Cash
          - CreditCard
          - DebitCard
          - Pix
          - Wallet
          - GiftCard
          - Points
          - Promissory
        payer:
          $ref: '#/components/schemas/Payer'
        amount:
          type: number
          description: Payment amount. Two decimal places
          format: bigdecimal
          example: 3370
      allOf:
      - $ref: '#/components/schemas/Payment'
    LicesingAmount:
      title: licesing_amount
      type: object
      allOf:
      - $ref: '#/components/schemas/Amount'
    Tour:
      title: Tour
      type: object
      properties:
        provider:
          $ref: '#/components/schemas/Provider'
        modality:
          type: string
          description: Tour modality
        description:
          type: string
          description: Description of the product
        passengers_resume:
          $ref: '#/components/schemas/PassengersResume'
      allOf:
      - $ref: '#/components/schemas/DestinationService'
      - type: object
        properties:
          type:
            type: string
            enum:
            - Tour
    BaseCardPayment:
      title: BaseCard
      type: object
      required:
      - payer
      properties:
        details:
          $ref: '#/components/schemas/CardPaymentDetail'
        method:
          type: string
          description: Payment method used for the buyer
          enum:
          - Cash
          - CreditCard
          - DebitCard
          - PrePaidCard
          - Transfer
          - Pix
          - Wallet
          - GiftCard
          - Points
          - Promissory
        payer:
          $ref: '#/components/schemas/Payer'
        amount:
          $ref: '#/components/schemas/PaymentAmount'
          description: Payment amount
        subscription:
          type: boolean
          description: Indicates if it's a subscription or recurring payment
        concept:
          type: string
          description: 'A brief description what is being payed '
          example: Heladera con freezer
        secure_token:
          type: string
          description: The Token returned by the payment tokenization endpoint
          example: 286f701a5937a83c69bcfd58a9fdc87e30f20ee79101020f5ef824fa59d1e5dc5da2f0cc14fecbc7d27e8360c1a6309f5ccd99eaee14463d6dd59a46c0650c6f41ee2f0cf926a7a25388e5fcfab3fef4e1cd310bf543a1adcdb58d2207d8921608c0e2
      allOf:
      - $ref: '#/components/schemas/Payment'
    Lodging:
      title: Lodging
      type: object
      required:
      - checkin_date
      - checkout_date
      - nights
      - address
      properties:
        address:
          $ref: '#/components/schemas/Address'
        checkin_date:
          type: string
          description: 'Checkin date. Date format "yyyy-MM-dd''T''HH:mm:ss.SSS''Z''" as described in the ISO 8601 '
          example: '2021-10-02T14:10:44'
        checkout_date:
          type: string
          description: 'Checkout date. Date format "yyyy-MM-dd''T''HH:mm:ss.SSS''Z''" as described in the ISO 8601 '
          example: 2021-11-02T14:10
        guests:
          uniqueItems: true
          description: guests
          type: array
          items:
            $ref: '#/components/schemas/Person'
        lodger:
          description: lodger details
          $ref: '#/components/schemas/Lodger'
        nights:
          type: integer
          description: Number of nights
          example: 8
        refundable:
          type: boolean
          description: is refundable
          example: true
      allOf:
      - $ref: '#/components/schemas/Item'
      - type: object
        properties:
          type:
            type: string
            enum:
            - Lodging
    UnAuthorizedResponse:
      title: UnAuthorized Response
      type: object
      properties:
        code:
          type: integer
          description: Status code
          example: 401
        message:
          type: string
          description: Error message
          example: Validation errors
    Insurance:
      title: Insurance
      type: object
      properties:
        expiration_date:
          type: string
          format: 'date-time. Format "yyyy-MM-dd''T''HH:mm:ss.SSS''Z''" as described in the ISO 8601 '
          example: '2021-02-23T14:10:44.307062Z'
        installment:
          type: number
          format: bigdecimal
        subscription_date:
          type: string
          format: 'date-time. Format "yyyy-MM-dd''T''HH:mm:ss.SSS''Z''" as described in the ISO 8601 '
          example: '2021-02-23T14:10:44.307062Z'
        type:
          type: string
    Course:
      title: course
      type: object
      properties:
        category:
          type: string
        end_date:
          type: string
          description: 'Course end date. Format "yyyy-MM-dd''T''HH:mm:ss.SSS''Z''" as described in the ISO 8601 '
          example: '2021-02-23T14:10:44.307062Z'
        link:
          type: string
          description: Course link
          example: https://link
        monthly_fee:
          type: number
          description: Course monthly fee
          example: '245.12'
        name:
          type: string
        presential:
          type: boolean
        scholarship_percentage:
          type: integer
          description: Course scholarship percentage
          example: 20
        start_date:
          type: string
          description: 'Course start date. Format "yyyy-MM-dd''T''HH:mm:ss.SSS''Z''" as described in the ISO 8601 '
          example: 2021-012-23T14:10:44.307062Z
        subcategory:
          type: string
    DepartureAirport:
      title: departure
      type: object
      allOf:
      - $ref: '#/components/schemas/BaseAirportData'
    Transfer:
      title: Transfer
      type: object
      required:
      - accountNumber
      - bankName
      properties:
        accountNumber:
          type: string
          description: Transfer account number
          example: '235687943672'
        bankName:
          type: string
          description: Transfer bank name
          example: ITAU
        payer:
          $ref: '#/components/schemas/Payer'
      allOf:
      - $ref: '#/components/schemas/Payment'
    GiftCard:
      title: GiftCard
      properties:
        id:
          type: string
          description: Payment unique identifier
          example: 02BF653185664752AA5F8B7415BD5043
        method:
          type: string
          description: Payment method used for the buyer
          enum:
          - Cash
          - CreditCard
          - DebitCard
          - Pix
          - Wallet
          - GiftCard
          - Points
          - Promissory
        amount:
          $ref: '#/components/schemas/PaymentAmount'
          description: Payment amount
      allOf:
      - $ref: '#/components/schemas/Payment'
    Store:
      title: store
      type: object
      properties:
        code:
          type: string
          description: Merchant code name
          example: Hellmans
        category:
          type: string
          description: Merchant category name. Four-digit code as described in the ISO 18245 international standard. See [MCC](https://classification.codes/classifications/industry/mcc/)
          example: '0763'
        latitude:
          type: number
          description: Store latitude coordinate
          format: double
          example: -34.56532789616039
        longitude:
          type: number
          description: Store longitude coordinate
          format: double
          example: -58.48945822129388
        merchant_type:
          type: string
          description: Type of merchant or store
          example: shopping
    CellphoneInsurance:
      type: object
      title: CellphoneInsurance
      properties:
        client:
          $ref: '#/components/schemas/Client'
        device:
          $ref: '#/components/schemas/Device'
        insurance:
          $ref: '#/components/schemas/Insurance'
      allOf:
      - $ref: '#/components/schemas/Item'
      - type: object
        properties:
          type:
            type: string
            enum:
            - CellphoneInsurance
    CarDelivery:
      title: CarDelivery
      type: object
      required:
      - date
      - address
      properties:
        address:
          description: Delivery address
          $ref: '#/components/schemas/Address'
        date:
          type: string
          description: 'Delivery date. Format "yyyy-MM-dd''T''HH:mm:ss.SSS''Z''" as described in the ISO 8601 '
          example: '2021-02-23T14:10:44.307062Z'
    StrategyResponse:
      title: StrategyResponse
      type: object
      properties:
        type:
          type: string
          description: Strategy type, see [Strategies](https://api-koin.readme.io/reference/strategies)
          enum:
          - VerificationCode
          - DocumentScan
          - ManualVerification
          - CollectAuthRecovery
        link:
          type: string
          description: Url for access the strategy page
        channels:
          type: string
          description: Channels for the strategy
          enum:
          - Mail
          - Phone
        provider:
          type: string
          description: Provider for the strategy in case of CollectAuthRecovery strategy
          enum:
          - 3DS2
        mode:
          type: string
          description: Mode for the strategy in case of CollectAuthRecovery strategy
          enum:
          - FRICTIONLESS
          - CHALLENGE
        code:
          type: string
          description: Code in case of verification code strategy
    Profile:
      title: Profile
      type: object
      properties:
        category:
          type: string
          description: Customer level for example Free, Basic, Pro, Gold, etc
          example: Platinum
    Client:
      title: client
      type: object
      allOf:
      - $ref: '#/components/schemas/Person'
    Payment:
      title: Payment
      required:
      - method
      - amount
      type: object
      properties:
        id:
          type: string
          description: Payment unique identifier
          example: 02BF653185664752AA5F8B7415BD5043
        method:
          type: string
          description: Payment method used for the buyer
          enum:
          - Cash
          - CreditCard
          - DebitCard
          - Pix
          - Wallet
          - GiftCard
          - Points
          - Promissory
        amount:
          $ref: '#/components/schemas/PaymentAmount'
          description: Payment amount
    Points:
      title: Points
      required:
      - quantity
      - method
      - amount
      type: object
      properties:
        quantity:
          type: integer
          description: Points quantity spent
          format: int32
          example: 10
      allOf:
      - $ref: '#/components/schemas/Payment'
    PaymentAmount:
      title: amount
      type: object
      allOf:
      - $ref: '#/components/schemas/Amount'
    Education:
      title: Education
      type: object
      properties:
        course:
          description: Course details
          $ref: '#/components/schemas/Course'
        students:
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/Student'
      allOf:
      - $ref: '#/components/schemas/Item'
      - type: object
        properties:
          type:
            type: string
            enum:
            - Education
    DropOff:
      title: drop_off
      type: object
      allOf:
      - $ref: '#/components/schemas/CarDelivery'
    Segment:
      title: Segment
      type: object
      properties:
        airline_code:
          type: string
          description: Airline code
          example: AA
        departure:
          description: Departure airport data
          $ref: '#/components/schemas/DepartureAirport'
        arrival:
          description: Arrival airport data
          $ref: '#/components/schemas/ArrivalAirport'
        flight_class:
          description: Flight class
          type: string
        flight_number:
          description: Flight number
          type: integer
          example: 123
        position:
          description: Segment order
          type: integer
          example: 1
    StandardApiPreEvalResponse:
      title: StandardApiResponse
      type: object
      properties:
        analysis_type:
          type: string
          description: Resolution type
          enum:
          - AUTOMATIC
          - MANUAL
        evaluation_id:
          type: string
          description: antifraud provider identifier
        id:
          type: string
          description: Client transaction identifier
        score:
          type: integer
          description: Evaluation score
        status:
          type: string
          description: Transaction status
          enum:
          - approved
          - denied
    Shipping:
      title: shipping
      required:
      - price
      - address
      type: object
      properties:
        address:
          $ref: '#/components/schemas/Address'
        delivery:
          $ref: '#/components/schemas/Delivery'
        price:
          $ref: '#/components/schemas/Price'
    Item:
      title: Item
      required:
      - category
      - id
      - name
      - price
      - type
      type: object
      properties:
        category:
          $ref: '#/components/schemas/Category'
        discount_amount:
          $ref: '#/components/schemas/DiscountAmount'
          description: Item price discount
        id:
          type: string
          description: Item id
          ex

# --- truncated at 32 KB (71 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/koin/refs/heads/main/openapi/koin-ecommerce-api-openapi.yml