openapi: 3.0.3
info:
  title: 'API Reference'
  description: 'Welcome to the V3 Collivery.net API reference.'
  version: 1.0.0
servers:
  -
    url: 'https://api.collivery.co.za'
paths:
  /v3/login:
    post:
      summary: 'Log in'
      description: 'Log in with your credentials and receive back your api token (to be used in further calls)'
      parameters:
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 87
                    full_name: 'Collivery Demo'
                    email_address: demo@collivery.co.za
                    landline_number: '011 241 4911'
                    mobile_number: ''
                    api_token: OpSjx5TlXGCGkzGAvUOm
                    client:
                      id: 116
                      name: 'Demo Collivery (PTY) Ltd.'
                      landline_number: '011 241 4911'
                      mobile_number: null
                      account_code: TESTCOLLIVER
                      account_type: account
                      primary_address:
                        id: 952
                        address_id: 952
                        custom_id: ''
                        town_id: 147
                        town_name: Johannesburg
                        town_other_name: ''
                        suburb_id: 1936
                        suburb_name: Selby
                        company_name: 'MDS JHB'
                        building_complex_name: ''
                        street_number: 58C
                        street_name: 'Webber St'
                        postal_code: ''
                        country_name: 'South Africa'
                        text: 'MDS JHB, 58C Webber St, Selby, Johannesburg'
                        short_text: 'MDS JHB, Selby, Johannesburg'
                        location_type:
                          id: 1
                          name: 'Business Premises'
                          surcharge: false
                          surcharge_amount: 0
                        town:
                          id: 147
                          name: Johannesburg
                          other_name: ''
                          province: GP
                          latitude: -26.204103
                          longitude: 28.047305
                          category: Major
                          town_surcharge: 0
                        geocode_data:
                          accuracy: 8
                          accuracy_type: Address
                          last_geocoded_at: '2010-06-09'
                          latitude: -26.214703
                          longitude: 28.040485
                properties:
                  data:
                    type: object
                    example:
                      id: 87
                      full_name: 'Collivery Demo'
                      email_address: demo@collivery.co.za
                      landline_number: '011 241 4911'
                      mobile_number: ''
                      api_token: OpSjx5TlXGCGkzGAvUOm
                      client:
                        id: 116
                        name: 'Demo Collivery (PTY) Ltd.'
                        landline_number: '011 241 4911'
                        mobile_number: null
                        account_code: TESTCOLLIVER
                        account_type: account
                        primary_address:
                          id: 952
                          address_id: 952
                          custom_id: ''
                          town_id: 147
                          town_name: Johannesburg
                          town_other_name: ''
                          suburb_id: 1936
                          suburb_name: Selby
                          company_name: 'MDS JHB'
                          building_complex_name: ''
                          street_number: 58C
                          street_name: 'Webber St'
                          postal_code: ''
                          country_name: 'South Africa'
                          text: 'MDS JHB, 58C Webber St, Selby, Johannesburg'
                          short_text: 'MDS JHB, Selby, Johannesburg'
                          location_type:
                            id: 1
                            name: 'Business Premises'
                            surcharge: false
                            surcharge_amount: 0
                          town:
                            id: 147
                            name: Johannesburg
                            other_name: ''
                            province: GP
                            latitude: -26.204103
                            longitude: 28.047305
                            category: Major
                            town_surcharge: 0
                          geocode_data:
                            accuracy: 8
                            accuracy_type: Address
                            last_geocoded_at: '2010-06-09'
                            latitude: -26.214703
                            longitude: 28.040485
      tags:
        - '1. Authentication'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'Your email address.'
                  example: demo@collivery.co.za
                password:
                  type: string
                  description: 'Your login password.'
                  example: demo
              required:
                - email
                - password
      security: []
  /v3/register:
    post:
      summary: Register
      description: 'Create a new client account'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 54596
                    full_name: 'John Doe'
                    email_address: foobar@example.com
                    landline_number: '123456789'
                    mobile_number: '123456789'
                    api_token: q4HuuQP67J6NabYoqov4
                    client:
                      id: 40203
                      name: 'John Doe'
                      landline_number: '123456789'
                      mobile_number: '123456789'
                      account_code: null
                      account_type: pre-paid
                      primary_address:
                        id: 2433244
                        custom_id: null
                        town: Johannesburg
                        town_id: 147
                        suburb: Selby
                        suburb_id: 1936
                        text: 'John Doe, MDS House, 58c Webber Street, Selby, Johannesburg'
                        short_text: 'John Doe, Selby, Johannesburg'
                properties:
                  data:
                    type: object
                    example:
                      id: 54596
                      full_name: 'John Doe'
                      email_address: foobar@example.com
                      landline_number: '123456789'
                      mobile_number: '123456789'
                      api_token: q4HuuQP67J6NabYoqov4
                      client:
                        id: 40203
                        name: 'John Doe'
                        landline_number: '123456789'
                        mobile_number: '123456789'
                        account_code: null
                        account_type: pre-paid
                        primary_address:
                          id: 2433244
                          custom_id: null
                          town: Johannesburg
                          town_id: 147
                          suburb: Selby
                          suburb_id: 1936
                          text: 'John Doe, MDS House, 58c Webber Street, Selby, Johannesburg'
                          short_text: 'John Doe, Selby, Johannesburg'
        412:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    -
                      - 'That email address is already registered. Please rather login through http://api.collivery.co.za/v3/login'
                properties:
                  error:
                    type: array
                    example:
                      -
                        - 'That email address is already registered. Please rather login through http://api.collivery.co.za/v3/login'
                    items:
                      type: array
      tags:
        - '1. Authentication'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'Your full name. Minimum 5 characters. Maximum 50 characters.'
                  example: 'John Doe'
                terms:
                  type: boolean
                  description: 'Whether you accept all terms an conditions. Should be fetched from our `/terms` endpoint.'
                  example: true
                email_address:
                  type: string
                  description: 'A valid email address that is not yet registered.'
                  example: foobar@example.com
                telephone:
                  type: integer
                  description: 'Your personal or business land-line number. One of `telephone` or `cellphone` *must* be provided.'
                  example: null
                cellphone:
                  type: integer
                  description: 'Your personal or business mobile number. One of `telephone` or `cellphone` *must* be provided.'
                  example: 123456789
                suburb_id:
                  type: integer
                  description: 'A valid id of a suburb in the town provided, can be fetched from out `/suburbs` endpoint.'
                  example: 1936
                street_name:
                  type: string
                  description: 'The name of the street your primary address is on. Minimum 5 characters, maximum 50 characters.'
                  example: 'Webber Street'
                street_number:
                  type: string
                  description: 'The street number of your primary address. Maximum 5 characters.'
                  example: 58c
                building:
                  type: string
                  description: 'The building name of your primary address. Maximum 50 characters.'
                  example: 'MDS House'
                company_name:
                  type: string
                  description: 'The name of your business. Indicates that this is a business registration. Minimum 5 characters. Maximum 70 characters.'
                  example: null
                id_number:
                  type: integer
                  description: 'ID number of the person responsible for the payment of the account. Required if `company_name` is filled. Maximum 20 characters. If you are registering as a business and this is an invalid RSA id number your account will automatically be placed on hold, and we will contact you to get the correct details.'
                  example: null
                is_vat_registered:
                  type: string
                  description: 'Must be one of <code>yes</code> or <code>no</code>.'
                  example: 'no'
                vat_number:
                  type: string
                  description: 'Your company VAT number. Required if `company_name` is filled. Maximum 20 characters.'
                  example: null
                registration:
                  type: string
                  description: 'Your company registration number. Required if `company_name` is filled. Maximum 20 characters.'
                  example: null
                other_input:
                  type: string
                  description: 'This field is required when <code>find_how</code> is <code>10</code>.'
                  example: null
                town_id:
                  type: integer
                  description: 'A valid town id, can be fetched from out `/towns` endpoint.'
                  example: 147
              required:
                - name
                - terms
                - email_address
                - suburb_id
                - street_name
                - town_id
  /v3/address:
    get:
      summary: Index
      description: 'List your addresses'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: query
          name: include
          description: 'A comma separated list of relationships to return.  Available entries: `contacts`, `suburb`, `town`, `active_waybills`.'
          example: null
          required: false
          schema:
            type: string
            description: 'A comma separated list of relationships to return.  Available entries: `contacts`, `suburb`, `town`, `active_waybills`.'
            example: null
        -
          in: query
          name: custom_id
          description: 'Search by this custom address id only.'
          example: null
          required: false
          schema:
            type: string
            description: 'Search by this custom address id only.'
            example: null
        -
          in: query
          name: search
          description: 'Search in `street`, `building`, `company_name`, `suburb` or `town` for a match.'
          example: Johannes
          required: false
          schema:
            type: string
            description: 'Search in `street`, `building`, `company_name`, `suburb` or `town` for a match.'
            example: Johannes
        -
          in: query
          name: town_id
          description: 'Limit to results with this town id.'
          example: null
          required: false
          schema:
            type: string
            description: 'Limit to results with this town id.'
            example: null
        -
          in: query
          name: suburb_id
          description: 'Limit to results with this suburb id.'
          example: null
          required: false
          schema:
            type: string
            description: 'Limit to results with this suburb id.'
            example: null
        -
          in: query
          name: page
          description: 'Page number to return.'
          example: 1
          required: false
          schema:
            type: string
            description: 'Page number to return.'
            example: 1
        -
          in: query
          name: per_page
          description: 'The limit per page. If this option is provided, `links` and `meta` will exist in the response with further information about the full list.`0` is the same as not limiting. Default is  100 Example: 3.'
          example: 3
          required: false
          schema:
            type: string
            description: 'The limit per page. If this option is provided, `links` and `meta` will exist in the response with further information about the full list.`0` is the same as not limiting. Default is  100 Example: 3.'
            example: 3
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 952
                      address_id: 952
                      custom_id: ''
                      town_id: 147
                      town_name: Johannesburg
                      town_other_name: ''
                      suburb_id: 1936
                      suburb_name: Selby
                      company_name: 'MDS JHB'
                      building_complex_name: ''
                      street_number: 58C
                      street_name: 'Webber St'
                      postal_code: ''
                      country_name: 'South Africa'
                      text: 'MDS JHB, 58C Webber St, Selby, Johannesburg'
                      short_text: 'MDS JHB, Selby, Johannesburg'
                      location_type:
                        id: 1
                        name: 'Business Premises'
                        surcharge: false
                        surcharge_amount: 0
                      town:
                        id: 147
                        name: Johannesburg
                        other_name: ''
                        province: GP
                        latitude: -26.204103
                        longitude: 28.047305
                        category: Major
                        town_surcharge: 0
                      geocode_data:
                        accuracy: 8
                        accuracy_type: Address
                        last_geocoded_at: '2010-06-09'
                        latitude: -26.214703
                        longitude: 28.040485
                    -
                      id: 4527477
                      address_id: 4527477
                      custom_id: ''
                      town_id: 147
                      town_name: Johannesburg
                      town_other_name: ''
                      suburb_id: 1000
                      suburb_name: 'Jeppestown South'
                      company_name: ''
                      building_complex_name: ''
                      street_number: ''
                      street_name: '1 Boom Straat'
                      postal_code: ''
                      country_name: 'South Africa'
                      text: '1 Boom Straat, Jeppestown South, Johannesburg'
                      short_text: 'Jeppestown South, Johannesburg'
                      location_type:
                        id: 1
                        name: 'Business Premises'
                        surcharge: false
                        surcharge_amount: 0
                      town:
                        id: 147
                        name: Johannesburg
                        other_name: ''
                        province: GP
                        latitude: -26.204103
                        longitude: 28.047305
                        category: Major
                        town_surcharge: 0
                      geocode_data:
                        accuracy: 5
                        accuracy_type: Suburb
                        last_geocoded_at: '1900-01-01'
                        latitude: -26.204201
                        longitude: 28.079201
                  links:
                    first: 'https://api.collivery.co.za/v3/address?page=1'
                    last: 'https://api.collivery.co.za/v3/address?page=1'
                    prev: null
                    next: null
                  meta:
                    current_page: 1
                    from: 1
                    last_page: 1
                    links:
                      -
                        url: null
                        label: '&laquo; Previous'
                        active: false
                      -
                        url: 'https://api.collivery.co.za/v3/address?page=1'
                        label: '1'
                        active: true
                      -
                        url: null
                        label: 'Next &raquo;'
                        active: false
                    path: 'https://api.collivery.co.za/v3/address'
                    per_page: 3
                    to: 2
                    total: 2
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 952
                        address_id: 952
                        custom_id: ''
                        town_id: 147
                        town_name: Johannesburg
                        town_other_name: ''
                        suburb_id: 1936
                        suburb_name: Selby
                        company_name: 'MDS JHB'
                        building_complex_name: ''
                        street_number: 58C
                        street_name: 'Webber St'
                        postal_code: ''
                        country_name: 'South Africa'
                        text: 'MDS JHB, 58C Webber St, Selby, Johannesburg'
                        short_text: 'MDS JHB, Selby, Johannesburg'
                        location_type:
                          id: 1
                          name: 'Business Premises'
                          surcharge: false
                          surcharge_amount: 0
                        town:
                          id: 147
                          name: Johannesburg
                          other_name: ''
                          province: GP
                          latitude: -26.204103
                          longitude: 28.047305
                          category: Major
                          town_surcharge: 0
                        geocode_data:
                          accuracy: 8
                          accuracy_type: Address
                          last_geocoded_at: '2010-06-09'
                          latitude: -26.214703
                          longitude: 28.040485
                      -
                        id: 4527477
                        address_id: 4527477
                        custom_id: ''
                        town_id: 147
                        town_name: Johannesburg
                        town_other_name: ''
                        suburb_id: 1000
                        suburb_name: 'Jeppestown South'
                        company_name: ''
                        building_complex_name: ''
                        street_number: ''
                        street_name: '1 Boom Straat'
                        postal_code: ''
                        country_name: 'South Africa'
                        text: '1 Boom Straat, Jeppestown South, Johannesburg'
                        short_text: 'Jeppestown South, Johannesburg'
                        location_type:
                          id: 1
                          name: 'Business Premises'
                          surcharge: false
                          surcharge_amount: 0
                        town:
                          id: 147
                          name: Johannesburg
                          other_name: ''
                          province: GP
                          latitude: -26.204103
                          longitude: 28.047305
                          category: Major
                          town_surcharge: 0
                        geocode_data:
                          accuracy: 5
                          accuracy_type: Suburb
                          last_geocoded_at: '1900-01-01'
                          latitude: -26.204201
                          longitude: 28.079201
                    items:
                      type: object
                  links:
                    type: object
                    example:
                      first: 'https://api.collivery.co.za/v3/address?page=1'
                      last: 'https://api.collivery.co.za/v3/address?page=1'
                      prev: null
                      next: null
                  meta:
                    type: object
                    example:
                      current_page: 1
                      from: 1
                      last_page: 1
                      links:
                        -
                          url: null
                          label: '&laquo; Previous'
                          active: false
                        -
                          url: 'https://api.collivery.co.za/v3/address?page=1'
                          label: '1'
                          active: true
                        -
                          url: null
                          label: 'Next &raquo;'
                          active: false
                      path: 'https://api.collivery.co.za/v3/address'
                      per_page: 3
                      to: 2
                      total: 2
      tags:
        - '2. Addresses'
    post:
      summary: Store
      description: 'Save a new Address.'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 4550108
                    address_id: 4550108
                    custom_id: ''
                    town_id: 147
                    town_name: Johannesburg
                    town_other_name: ''
                    suburb_id: 1936
                    suburb_name: Selby
                    company_name: 'MDS Collivery'
                    building_complex_name: 'MDS House'
                    street_number: 58c
                    street_name: 'Webber Street'
                    postal_code: null
                    country_name: null
                    text: 'MDS Collivery, MDS House, 58c Webber Street, Selby, Johannesburg'
                    short_text: 'MDS Collivery, Selby, Johannesburg'
                    location_type:
                      id: 1
                      name: 'Business Premises'
                      surcharge: false
                      surcharge_amount: 0
                    contacts:
                      -
                        id: 4798036
                        full_name: 'John Doe '
                        cell_no: '0723456789'
                        cellphone: '0723456789'
                        work_no: ''
                        work_phone: ''
                        email: demo@collivery.co.za
                    town:
                      id: 147
                      name: Johannesburg
                      other_name: ''
                      province: GP
                      latitude: -26.204103
                      longitude: 28.047305
                      category: Major
                      town_surcharge: 0
                    geocode_data:
                      accuracy: 5
                      accuracy_type: Suburb
                      last_geocoded_at: '1900-01-01'
                      latitude: -26.2125
                      longitude: 28.0375
                properties:
                  data:
                    type: object
                    example:
                      id: 4550108
                      address_id: 4550108
                      custom_id: ''
                      town_id: 147
                      town_name: Johannesburg
                      town_other_name: ''
                      suburb_id: 1936
                      suburb_name: Selby
                      company_name: 'MDS Collivery'
                      building_complex_name: 'MDS House'
                      street_number: 58c
                      street_name: 'Webber Street'
                      postal_code: null
                      country_name: null
                      text: 'MDS Collivery, MDS House, 58c Webber Street, Selby, Johannesburg'
                      short_text: 'MDS Collivery, Selby, Johannesburg'
                      location_type:
                        id: 1
                        name: 'Business Premises'
                        surcharge: false
                        surcharge_amount: 0
                      contacts:
                        -
                          id: 4798036
                          full_name: 'John Doe '
                          cell_no: '0723456789'
                          cellphone: '0723456789'
                          work_no: ''
                          work_phone: ''
                          email: demo@collivery.co.za
                      town:
                        id: 147
                        name: Johannesburg
                        other_name: ''
                        province: GP
                        latitude: -26.204103
                        longitude: 28.047305
                        category: Major
                        town_surcharge: 0
                      geocode_data:
                        accuracy: 5
                        accuracy_type: Suburb
                        last_geocoded_at: '1900-01-01'
                        latitude: -26.2125
                        longitude: 28.0375
      tags:
        - '2. Addresses'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                custom_id:
                  type: string
                  description: 'The custom id you would like to assign to this address. Must be unique. Max 30 characters.'
                  example: null
                town_id:
                  type: integer
                  description: 'without `town_name` and `suburb_id`. Required with ''country'' only if ''country'' is sent or not ZAF . Can be obtained from `/towns/` endpoint.'
                  example: 147
                town_name:
                  type: string
                  description: 'without `town_id` and `suburb_id`. Can be obtained from `/towns/` endpoint.'
                  example: Johannesburg
                province:
                  type: string.
                  description: 'The name of the province, useful when providing `town_name` to filter the towns.'
                  example: Gauteng
                suburb_id:
                  type: integer
                  description: 'without `suburb_name`. Can be obtained from `/suburbs/` endpoint. Ignored when country sent is not ZAF.'
                  example: 1936
                suburb_name:
                  type: string
                  description: 'Required when country is not ZAF or without suburb_id. South African suburbs can be obtained from /suburbs/ endpoint.'
                  example: Selby
                company_name:
                  type: string
                  description: 'The name of the company of the address. Max 50 characters.'
                  example: 'MDS Collivery'
                building:
                  type: string
                  description: 'The building of the address. Max 50 characters.'
                  example: 'MDS House'
                street_number:
                  type: string
                  description: 'The number on the street of the address. Max 5 characters.'
                  example: 58c
                street:
                  type: string
                  description: 'The name of the street that the address is on. Max 50 characters.'
                  example: 'Webber Street'
                location_type:
                  type: integer
                  description: 'without `location_type_name`. The id of the location type for the address. Can be obtained from `/location_types/` endpoint.'
                  example: 1
                location_type_name:
                  type: string
                  description: 'without `location_type`. The name of the location type for the address. Can be obtained from `/location_types/` endpoint.'
                  example: 'Business Premises'
                contact:
                  type: object
                  description: 'optional If you are creating/updating a contact with the address, please ensure that it is a valid JSON object.'
                  example: []
                  properties:
                    id:
                      type: integer
                      description: 'optional Only required for update requests. The id of the contact that you wish to update.'
                      example: 2519728
                    full_name:
                      type: string
                      description: 'optional If you are creating a contact with the address, their full name. Required if any of `cellphone`, `work_phone` or `email_address` is present in the `contact` object. Min 2 characters, max 50 characters.'
                      example: 'John Doe'
                    cellphone:
                      type: string
                      description: 'optional If you are creating a contact with the address, their cellphone. Required if any of `full_name` or `email_address` is present in the `contact` object - and `work_phone` is not provided. Min 10 characters, max 20 characters.'
                      example: '0723456789'
                    work_phone:
                      type: string
                      description: 'optional If you are creating a contact with the address, their cellphone. Required if any of `full_name` or `email_address` is present in the `contact` object - and `cellphone` is not provided. Min 10 characters, max 20 characters.'
                      example: null
                    email_address:
                      type: string
                      description: 'optional If you are creating a contact with the address, their full name. Useful for tracking updates to be sent to. Max 50 characters.'
                      example: demo@collivery.co.za
                country:
                  type: string.
                  description: 'The three letter abbreviation (ISO 3166) for the country. Defaults to ZAF. Can be obtained from `/country/` endpoint.'
                  example: ZAF
              required:
                - town_id
                - town_name
                - suburb_id
                - street
                - location_type
                - location_type_name
  '/v3/address/{id}':
    get:
      summary: Show
      description: ''
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 952
                    address_id: 952
                    custom_id: ''
                    town_id: 147
                    town_name: Johannesburg
                    town_other_name: ''
                    suburb_id: 1936
                    suburb_name: Selby
                    company_name: 'MDS JHB'
                    building_complex_name: ''
                    street_number: 58C
                    street_name: 'Webber St'
                    postal_code: ''
                    country_name: 'South Africa'
                    text: 'MDS JHB, 58C Webber St, Selby, Johannesburg'
                    short_text: 'MDS JHB, Selby, Johannesburg'
                    location_type:
                      id: 1
                      name: 'Business Premises'
                      surcharge: false
                      surcharge_amount: 0
                    contacts:
                      -
                        id: 593
                        full_name: 'Billy banks '
                        cell_no: '0721234567'
                        cellphone: '0721234567'
                        work_no: '0214242000'
                        work_phone: '0214242000'
                        email: world@example.com
                      -
                        id: 3804171
                        full_name: 'John Doe '
                        cell_no: '0721234567'
                        cellphone: '0721234567'
                        work_no: null
                        work_phone: null
                        email: foo@example.com
                      -
                        id: 3910017
                        full_name: 'Tyron Blakes '
                        cell_no: '0831234569'
                        cellphone: '0831234569'
                        work_no: '0314555555'
                        work_phone: '0314555555'
                        email: tyron@hotmail.com
                      -
                        id: 3910018
                        full_name: 'Vaugan Blakes '
                        cell_no: '0831234530'
                        cellphone: '0831234530'
                        work_no: '0314555590'
                        work_phone: '0314555590'
                        email: vaugan@hotmail.com
                      -
                        id: 4123858
                        full_name: 'John Doe '
                        cell_no: '0721234567'
                        cellphone: '0721234567'
                        work_no: '0721234567'
                        work_phone: '0721234567'
                        email: foo@example.com
                      -
                        id: 4478364
                        full_name: 'Marius Claassen '
                        cell_no: '086 143 3548'
                        cellphone: '086 143 3548'
                        work_no: '086 143 354'
                        work_phone: '086 143 354'
                        email: info@ideliver.co.za
                    town:
                      id: 147
                      name: Johannesburg
                      other_name: ''
                      province: GP
                      latitude: -26.204103
                      longitude: 28.047305
                      category: Major
                      town_surcharge: 0
                    geocode_data:
                      accuracy: 8
                      accuracy_type: Address
                      last_geocoded_at: '2010-06-09'
                      latitude: -26.214703
                      longitude: 28.040485
                properties:
                  data:
                    type: object
                    example:
                      id: 952
                      address_id: 952
                      custom_id: ''
                      town_id: 147
                      town_name: Johannesburg
                      town_other_name: ''
                      suburb_id: 1936
                      suburb_name: Selby
                      company_name: 'MDS JHB'
                      building_complex_name: ''
                      street_number: 58C
                      street_name: 'Webber St'
                      postal_code: ''
                      country_name: 'South Africa'
                      text: 'MDS JHB, 58C Webber St, Selby, Johannesburg'
                      short_text: 'MDS JHB, Selby, Johannesburg'
                      location_type:
                        id: 1
                        name: 'Business Premises'
                        surcharge: false
                        surcharge_amount: 0
                      contacts:
                        -
                          id: 593
                          full_name: 'Billy banks '
                          cell_no: '0721234567'
                          cellphone: '0721234567'
                          work_no: '0214242000'
                          work_phone: '0214242000'
                          email: world@example.com
                        -
                          id: 3804171
                          full_name: 'John Doe '
                          cell_no: '0721234567'
                          cellphone: '0721234567'
                          work_no: null
                          work_phone: null
                          email: foo@example.com
                        -
                          id: 3910017
                          full_name: 'Tyron Blakes '
                          cell_no: '0831234569'
                          cellphone: '0831234569'
                          work_no: '0314555555'
                          work_phone: '0314555555'
                          email: tyron@hotmail.com
                        -
                          id: 3910018
                          full_name: 'Vaugan Blakes '
                          cell_no: '0831234530'
                          cellphone: '0831234530'
                          work_no: '0314555590'
                          work_phone: '0314555590'
                          email: vaugan@hotmail.com
                        -
                          id: 4123858
                          full_name: 'John Doe '
                          cell_no: '0721234567'
                          cellphone: '0721234567'
                          work_no: '0721234567'
                          work_phone: '0721234567'
                          email: foo@example.com
                        -
                          id: 4478364
                          full_name: 'Marius Claassen '
                          cell_no: '086 143 3548'
                          cellphone: '086 143 3548'
                          work_no: '086 143 354'
                          work_phone: '086 143 354'
                          email: info@ideliver.co.za
                      town:
                        id: 147
                        name: Johannesburg
                        other_name: ''
                        province: GP
                        latitude: -26.204103
                        longitude: 28.047305
                        category: Major
                        town_surcharge: 0
                      geocode_data:
                        accuracy: 8
                        accuracy_type: Address
                        last_geocoded_at: '2010-06-09'
                        latitude: -26.214703
                        longitude: 28.040485
      tags:
        - '2. Addresses'
    put:
      summary: Update
      description: "Modify the details of a pre-existing address.\n<aside class=\"warning\">\n  You cannot change the town of an address. <br>\n  If the address has waybills created that are linked to it, please create a new address or contact us.\n</aside>"
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 2415979
                    custom_id: ''
                    town: Johannesburg
                    town_id: 147
                    suburb: Selby
                    suburb_id: 1936
                    text: 'MDS Collivery, MDS House, 58c Webber Street, Selby, Johannesburg'
                    short_text: 'MDS Collivery, Selby, Johannesburg'
                    geocode_data:
                      accuracy: 5
                      accuracy_type: Suburb
                      last_geocoded_at: '1900-01-01'
                      latitude: 0
                      longitude: 0
                properties:
                  data:
                    type: object
                    example:
                      id: 2415979
                      custom_id: ''
                      town: Johannesburg
                      town_id: 147
                      suburb: Selby
                      suburb_id: 1936
                      text: 'MDS Collivery, MDS House, 58c Webber Street, Selby, Johannesburg'
                      short_text: 'MDS Collivery, Selby, Johannesburg'
                      geocode_data:
                        accuracy: 5
                        accuracy_type: Suburb
                        last_geocoded_at: '1900-01-01'
                        latitude: 0
                        longitude: 0
        400:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    http_code_text: 'Bad Request'
                    http_code: 400
                    message: 'There are waybills linked to that address, rather create a new one.'
                properties:
                  error:
                    type: object
                    example:
                      http_code_text: 'Bad Request'
                      http_code: 400
                      message: 'There are waybills linked to that address, rather create a new one.'
      tags:
        - '2. Addresses'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                custom_id:
                  type: string
                  description: 'The custom id you would like to assign to this address. Must be unique. Max 30 characters.'
                  example: null
                town_id:
                  type: integer
                  description: 'without `town_name` and `suburb_id`. Required with ''country'' only if ''country'' is sent or not ZAF . Can be obtained from `/towns/` endpoint.'
                  example: 147
                town_name:
                  type: string
                  description: 'without `town_id` and `suburb_id`. Can be obtained from `/towns/` endpoint.'
                  example: Johannesburg
                province:
                  type: string.
                  description: 'The name of the province, useful when providing `town_name` to filter the towns.'
                  example: Gauteng
                suburb_id:
                  type: integer
                  description: 'without `suburb_name`. Can be obtained from `/suburbs/` endpoint. Ignored when country sent is not ZAF.'
                  example: 1936
                suburb_name:
                  type: string
                  description: 'Required when country is not ZAF or without suburb_id. South African suburbs can be obtained from /suburbs/ endpoint.'
                  example: Selby
                company_name:
                  type: string
                  description: 'The name of the company of the address. Max 50 characters.'
                  example: 'MDS Collivery'
                building:
                  type: string
                  description: 'The building of the address. Max 50 characters.'
                  example: 'MDS House'
                street_number:
                  type: string
                  description: 'The number on the street of the address. Max 5 characters.'
                  example: 58c
                street:
                  type: string
                  description: 'The name of the street that the address is on. Max 50 characters.'
                  example: 'Webber Street'
                location_type:
                  type: integer
                  description: 'without `location_type_name`. The id of the location type for the address. Can be obtained from `/location_types/` endpoint.'
                  example: 1
                location_type_name:
                  type: string
                  description: 'without `location_type`. The name of the location type for the address. Can be obtained from `/location_types/` endpoint.'
                  example: 'Business Premises'
                contact:
                  type: object
                  description: 'optional If you are creating/updating a contact with the address, please ensure that it is a valid JSON object.'
                  example: []
                  properties:
                    id:
                      type: integer
                      description: 'optional Only required for update requests. The id of the contact that you wish to update.'
                      example: 2519728
                    full_name:
                      type: string
                      description: 'optional If you are creating a contact with the address, their full name. Required if any of `cellphone`, `work_phone` or `email_address` is present in the `contact` object. Min 2 characters, max 50 characters.'
                      example: 'John Doe'
                    cellphone:
                      type: string
                      description: 'optional If you are creating a contact with the address, their cellphone. Required if any of `full_name` or `email_address` is present in the `contact` object - and `work_phone` is not provided. Min 10 characters, max 20 characters.'
                      example: '0723456789'
                    work_phone:
                      type: string
                      description: 'optional If you are creating a contact with the address, their cellphone. Required if any of `full_name` or `email_address` is present in the `contact` object - and `cellphone` is not provided. Min 10 characters, max 20 characters.'
                      example: null
                    email_address:
                      type: string
                      description: 'optional If you are creating a contact with the address, their full name. Useful for tracking updates to be sent to. Max 50 characters.'
                      example: demo@collivery.co.za
                country:
                  type: string.
                  description: 'The three letter abbreviation (ISO 3166) for the country. Defaults to ZAF. Can be obtained from `/country/` endpoint.'
                  example: ZAF
              required:
                - town_id
                - town_name
                - suburb_id
                - street
                - location_type
                - location_type_name
    delete:
      summary: Delete
      description: ''
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    message: 'Address # 952 has been deleted'
                properties:
                  data:
                    type: object
                    example:
                      message: 'Address # 952 has been deleted'
        400:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    http_code_text: 'Bad Request'
                    http_code: 400
                    message: 'Address # 952 is already used for waybills, you cannot delete it.'
                properties:
                  error:
                    type: object
                    example:
                      http_code_text: 'Bad Request'
                      http_code: 400
                      message: 'Address # 952 is already used for waybills, you cannot delete it.'
      tags:
        - '2. Addresses'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the address.'
        example: -1
        required: true
        schema:
          type: integer
      -
        in: path
        name: address
        description: 'The address id.'
        example: 952.0
        required: true
        schema:
          type: number
  /v3/default_address:
    get:
      summary: 'Show Default Address'
      description: ''
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 2415979
                    custom_id: ''
                    town: Johannesburg
                    town_id: 147
                    suburb: Selby
                    suburb_id: 1936
                    text: 'MDS Collivery, MDS House, 58c Webber Street, Selby, Johannesburg'
                    short_text: 'MDS Collivery, Selby, Johannesburg'
                properties:
                  data:
                    type: object
                    example:
                      id: 2415979
                      custom_id: ''
                      town: Johannesburg
                      town_id: 147
                      suburb: Selby
                      suburb_id: 1936
                      text: 'MDS Collivery, MDS House, 58c Webber Street, Selby, Johannesburg'
                      short_text: 'MDS Collivery, Selby, Johannesburg'
        400:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    http_code_text: 'Bad Request'
                    http_code: 400
                    message: 'Default address not found.'
                properties:
                  error:
                    type: object
                    example:
                      http_code_text: 'Bad Request'
                      http_code: 400
                      message: 'Default address not found.'
      tags:
        - '2. Addresses'
  /v3/contacts:
    get:
      summary: Index
      description: ''
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: query
          name: address_id
          description: 'Limit to contacts for this specific address.'
          example: null
          required: false
          schema:
            type: string
            description: 'Limit to contacts for this specific address.'
            example: null
        -
          in: query
          name: search
          description: 'Search in name for a match.'
          example: Collivery
          required: false
          schema:
            type: string
            description: 'Search in name for a match.'
            example: Collivery
        -
          in: query
          name: page
          description: 'Page number to return.'
          example: 1
          required: false
          schema:
            type: string
            description: 'Page number to return.'
            example: 1
        -
          in: query
          name: per_page
          description: 'The limit per page. If this option is provided, `links` and `meta` will exist in the response with further information about the full list.`0` is the same as not limiting. Default is  100.'
          example: 3
          required: false
          schema:
            type: string
            description: 'The limit per page. If this option is provided, `links` and `meta` will exist in the response with further information about the full list.`0` is the same as not limiting. Default is  100.'
            example: 3
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 729097
                      email: support@collivery.co.za
                      full_name: 'Collivery Support'
                      cell_no: null
                      cellphone: null
                      work_no: '0123456789'
                      work_phone: '0123456789'
                    -
                      id: 729098
                      email: integration@collivery.co.za
                      full_name: 'Collivery Integration'
                      cell_no: null
                      cellphone: null
                      work_no: '0123456789'
                      work_phone: '0123456789'
                    -
                      id: 729099
                      email: api@collivery.co.za
                      full_name: 'Collivery Api'
                      cell_no: null
                      cellphone: null
                      work_no: '0123456789'
                      work_phone: '0123456789'
                  links:
                    first: 'https://api.collivery.co.za/v3/contacts?page=1'
                    last: 'https://api.collivery.co.za/v3/contacts?page=1532'
                    next: 'https://api.collivery.co.za/v3/contacts?page=1501'
                    prev: 'https://api.collivery.co.za/v3/contacts?page=1499'
                  meta:
                    current_page: 1500
                    from: 4498
                    last_page: 1532
                    path: 'https://api.collivery.co.za/v3/contacts'
                    per_page: '3'
                    to: 4500
                    total: 4596
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 729097
                        email: support@collivery.co.za
                        full_name: 'Collivery Support'
                        cell_no: null
                        cellphone: null
                        work_no: '0123456789'
                        work_phone: '0123456789'
                      -
                        id: 729098
                        email: integration@collivery.co.za
                        full_name: 'Collivery Integration'
                        cell_no: null
                        cellphone: null
                        work_no: '0123456789'
                        work_phone: '0123456789'
                      -
                        id: 729099
                        email: api@collivery.co.za
                        full_name: 'Collivery Api'
                        cell_no: null
                        cellphone: null
                        work_no: '0123456789'
                        work_phone: '0123456789'
                    items:
                      type: object
                  links:
                    type: object
                    example:
                      first: 'https://api.collivery.co.za/v3/contacts?page=1'
                      last: 'https://api.collivery.co.za/v3/contacts?page=1532'
                      next: 'https://api.collivery.co.za/v3/contacts?page=1501'
                      prev: 'https://api.collivery.co.za/v3/contacts?page=1499'
                  meta:
                    type: object
                    example:
                      current_page: 1500
                      from: 4498
                      last_page: 1532
                      path: 'https://api.collivery.co.za/v3/contacts'
                      per_page: '3'
                      to: 4500
                      total: 4596
      tags:
        - '3. Contacts'
    post:
      summary: Store
      description: 'Save a new Contact.'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 3804171
                    full_name: 'John Doe '
                    cell_no: '0721234567'
                    cellphone: '0721234567'
                    work_no: null
                    work_phone: null
                    email: foo@example.com
                properties:
                  data:
                    type: object
                    example:
                      id: 3804171
                      full_name: 'John Doe '
                      cell_no: '0721234567'
                      cellphone: '0721234567'
                      work_no: null
                      work_phone: null
                      email: foo@example.com
      tags:
        - '3. Contacts'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                address_id:
                  type: integer
                  description: 'The id of the address you wish to add this contact to. Can be fetched through the `/addresses` endpoint.'
                  example: 952
                email:
                  type: string
                  description: 'optional Valid email address. Minimum 5 characters.'
                  example: foo@example.com
                full_name:
                  type: string
                  description: 'required. The contact''s full name. Minimum 3 characters.'
                  example: 'John Doe'
                cell_no:
                  type: string
                  description: 'without `work_phone`. Minimum 10 characters. *For legacy reasons, `cell_no` is also supported*.'
                  example: '0721234567'
                cellphone:
                  type: string
                  description: 'without `work_phone`. Minimum 10 characters. *For legacy reasons, `cell_no` is also supported*.'
                  example: '0721234567'
                work_no:
                  type: string
                  description: 'without `cellphone`. Minimum 10 characters. *For legacy reasons, `work_no` is also supported*.'
                  example: null
                work_phone:
                  type: string
                  description: 'without `cellphone`. Minimum 10 characters. *For legacy reasons, `work_no` is also supported*.'
                  example: null
              required:
                - address_id
                - cell_no
                - cellphone
                - work_no
                - work_phone
  '/v3/contacts/{id}':
    get:
      summary: Show
      description: ''
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Address Contact for id 1 not found'
                properties:
                  message:
                    type: string
                    example: 'Address Contact for id 1 not found'
      tags:
        - '3. Contacts'
    put:
      summary: Update
      description: ''
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 593
                    full_name: 'John Doe '
                    cell_no: '0721234567'
                    cellphone: '0721234567'
                    work_no: null
                    work_phone: null
                    email: foo@example.com
                properties:
                  data:
                    type: object
                    example:
                      id: 593
                      full_name: 'John Doe '
                      cell_no: '0721234567'
                      cellphone: '0721234567'
                      work_no: null
                      work_phone: null
                      email: foo@example.com
      tags:
        - '3. Contacts'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                address_id:
                  type: integer
                  description: 'The id of the address you wish to add this contact to. Can be fetched through the `/addresses` endpoint.'
                  example: 952
                email:
                  type: string
                  description: 'optional Valid email address. Minimum 5 characters.'
                  example: foo@example.com
                full_name:
                  type: string
                  description: 'required. The contact''s full name. Minimum 3 characters.'
                  example: 'John Doe'
                cell_no:
                  type: string
                  description: 'without `work_phone`. Minimum 10 characters. *For legacy reasons, `cell_no` is also supported*.'
                  example: '0721234567'
                cellphone:
                  type: string
                  description: 'without `work_phone`. Minimum 10 characters. *For legacy reasons, `cell_no` is also supported*.'
                  example: '0721234567'
                work_no:
                  type: string
                  description: 'without `cellphone`. Minimum 10 characters. *For legacy reasons, `work_no` is also supported*.'
                  example: null
                work_phone:
                  type: string
                  description: 'without `cellphone`. Minimum 10 characters. *For legacy reasons, `work_no` is also supported*.'
                  example: null
              required:
                - address_id
                - cell_no
                - cellphone
                - work_no
                - work_phone
    delete:
      summary: Delete
      description: ''
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    message: 'Contact # 593 has been deleted.'
                properties:
                  data:
                    type: object
                    example:
                      message: 'Contact # 593 has been deleted.'
        400:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    http_code_text: 'Bad Request'
                    http_code: 400
                    message: 'Contact # 593 is already used for waybills, you cannot delete it.'
                properties:
                  error:
                    type: object
                    example:
                      http_code_text: 'Bad Request'
                      http_code: 400
                      message: 'Contact # 593 is already used for waybills, you cannot delete it.'
      tags:
        - '3. Contacts'
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. required.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 593
  /v3/quote:
    post:
      summary: 'Request a quote'
      description: 'Get a waybill quote based on the parameters provided.'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      service_type: 2
                      total: 1561.6
                      total_inclusive: 1795.84
                      delivery_type: main
                  meta:
                    times:
                      '2':
                        collection_time: '2025-01-24T10:00:00.000000Z'
                        delivery_time: '2025-01-29T14:00:00.000000Z'
                    warnings:
                      '2': 'Minimum hours from Johannesburg to Middelburg-MP on the Next Day service is 120, you requested the waybill be delivered within 76 hours. Weekends included. Deliver before time has adjusted.'
                    surcharges:
                      '2':
                        locationTypeSurcharge: 120
                        regionalSurcharge: 132.33
                    extras:
                      '2':
                        inc_weight: 2
                        vol_weight: 1.4
                        vm_divisor: 5000
                        weight: 30
                        rate_per_kg: 27.5
                properties:
                  data:
                    type: array
                    example:
                      -
                        service_type: 2
                        total: 1561.6
                        total_inclusive: 1795.84
                        delivery_type: main
                    items:
                      type: object
                  meta:
                    type: object
                    example:
                      times:
                        '2':
                          collection_time: '2025-01-24T10:00:00.000000Z'
                          delivery_time: '2025-01-29T14:00:00.000000Z'
                      warnings:
                        '2': 'Minimum hours from Johannesburg to Middelburg-MP on the Next Day service is 120, you requested the waybill be delivered within 76 hours. Weekends included. Deliver before time has adjusted.'
                      surcharges:
                        '2':
                          locationTypeSurcharge: 120
                          regionalSurcharge: 132.33
                      extras:
                        '2':
                          inc_weight: 2
                          vol_weight: 1.4
                          vm_divisor: 5000
                          weight: 30
                          rate_per_kg: 27.5
      tags:
        - '4. Get Quote'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                services:
                  type: array
                  description: 'number A list of the services you would like a quote on. Any or none of `1`,`2`,`3`,`5`. Defaults to all services.'
                  example:
                    - 2
                  items:
                    type: object
                parcels:
                  type: array
                  description: 'Very important for determining accurate quote. Will default to an "average" parcel if not supplied. Dimensions are limited to 1000, weight is limited to 400'
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      length:
                        type: number
                        description: 'The length of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                        example: 21.5
                      width:
                        type: number
                        description: 'The width of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                        example: 10.0
                      height:
                        type: number
                        description: 'The height of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                        example: 5.5
                      weight:
                        type: number
                        description: 'The weight of the parcel. Values in *kilograms*. Can be supplied as floats or integers.'
                        example: 5.2
                      quantity:
                        type: integer
                        description: 'The amount of parcels of this type.'
                        example: 2
                      product_id:
                        type: integer
                        description: 'The id of the predefined parcel. Length, width, height and weight will be ignored if value is set. Can be obtained from `/predefined_parcels/` endpoint.'
                        example: 2542
                collection_address:
                  type: integer/object
                  description: 'optional Required if `collection_town` is not supplied. Can be the id of the address or a json object if the address is not yet stored. *See below for object structure*'
                  example: null
                delivery_address:
                  type: integer/object
                  description: 'optional Required if `delivery_town` is not supplied.  Can be the id of the address or a json object if the address is not yet stored. *See below for object structure*'
                  example: null
                collection_town:
                  type: integer
                  description: 'optional Required if `collection_address` is not supplied.'
                  example: 147
                delivery_town:
                  type: integer
                  description: 'optional Required if `delivery_address` is not supplied.'
                  example: 200
                collection_location_type:
                  type: integer
                  description: 'optional Must be a valid location type. Values can be gotten from our `/location_type` endpoint.'
                  example: 1
                delivery_location_type:
                  type: integer
                  description: 'optional Must be a valid location type. Values can be gotten from our `/location_type` endpoint.'
                  example: 5
                collection_time:
                  type: string
                  description: 'optional Any future date/time representation that can be parsed by PHP `strtotime()`. Interpreted as GMT+2. If left empty no time surcharges will be encountered. Must be after current time.'
                  example: '2025-01-24 12:00'
                delivery_time:
                  type: string
                  description: 'Any future date/time representation that can be parsed by PHP `strtotime()`. Interpreted as GMT+2. If left empty no time surcharges will be encountered. Must be after `collection_time`.'
                  example: '2025-01-25 16:00:00'
                exclude_weekend:
                  type: boolean
                  description: 'optional Whether to allow for weekend collection or delivery. Surcharges will be applied. Defaults to `true`.'
                  example: null
                risk_cover:
                  type: boolean
                  description: 'optional Whether to enable risk cover over and above the default cover. See terms and conditions. Surcharges will be applied. Defaults to `false`.'
                  example: null
                rica:
                  type: boolean
                  description: 'optional Whether this delivery requires RICA information and documentation to be supplied. Surcharges will be applied. Defaults to `false`.'
                  example: null
                consignee:
                  type: boolean
                  description: 'optional Whether this delivery can only be received by the person it is addressed to, with identity document required. Surcharges will be applied. Defaults to `false`.'
                  example: null
                sms_tracking:
                  type: boolean
                  description: 'optional Whether to send SMS updates to you, the collection and delivery contacts. Surcharges will be applied. Defaults to `false`.'
                  example: null
                hide_collection_address:
                  type: boolean
                  description: 'optional Whether to reprint the waybill when received in order to hide collection details from delivery recipient. Surcharges will be applied. Defaults to `false`.'
                  example: null
                delivery_pin:
                  type: boolean
                  description: 'optional Whether to enable delivery pin. Pin is emailed/SMS''d to the delivery contact and is verified upon delivery. Surcharges will be applied. Defaults to `false`.'
                  example: null
                strict_delivery_time:
                  type: boolean
                  description: ''
                  example: false
                document_express:
                  type: boolean
                  description: 'optional Whether to set the waybill to use Document Express. This is an over-night service for documents only. Service sent will be ignored and parcels if exist must validate to be below 2Kg. Defaults to `false`.'
                  example: null
  /v3/waybill:
    get:
      summary: Index
      description: 'List your waybills'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data: []
                  links:
                    first: 'https://api.collivery.co.za/v3/waybill?page=1'
                    last: 'https://api.collivery.co.za/v3/waybill?page=1'
                    prev: null
                    next: null
                  meta:
                    current_page: 1
                    from: null
                    last_page: 1
                    links:
                      -
                        url: null
                        label: '&laquo; Previous'
                        active: false
                      -
                        url: 'https://api.collivery.co.za/v3/waybill?page=1'
                        label: '1'
                        active: true
                      -
                        url: null
                        label: 'Next &raquo;'
                        active: false
                    path: 'https://api.collivery.co.za/v3/waybill'
                    per_page: 15
                    to: null
                    total: 0
                properties:
                  data:
                    type: array
                    example: []
                  links:
                    type: object
                    example:
                      first: 'https://api.collivery.co.za/v3/waybill?page=1'
                      last: 'https://api.collivery.co.za/v3/waybill?page=1'
                      prev: null
                      next: null
                  meta:
                    type: object
                    example:
                      current_page: 1
                      from: null
                      last_page: 1
                      links:
                        -
                          url: null
                          label: '&laquo; Previous'
                          active: false
                        -
                          url: 'https://api.collivery.co.za/v3/waybill?page=1'
                          label: '1'
                          active: true
                        -
                          url: null
                          label: 'Next &raquo;'
                          active: false
                      path: 'https://api.collivery.co.za/v3/waybill'
                      per_page: 15
                      to: null
                      total: 0
      tags:
        - '5. Waybills'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                custom_id:
                  type: string
                  description: 'Custom Waybill ID.'
                  example: CustomID_786
                per_page:
                  type: The
                  description: 'limit per page. Max is `10000`. If this option is provided, ''links'' and `meta` will exist in the response with further information about the full list of waybills. `0` is the same as not limiting. Default is 100.'
                  example: '15'
                statuses:
                  type: optional
                  description: 'A comma-separated list of statuses to limit the results to. Defaults to all active statuses.'
                  example: '3'
                show:
                  type: optional
                  description: "The value represent group of statuses. Acceptable values include: 'active', 'in-active', 'cancelled', 'all', 'pre-collected', 'pre-delivered', 'pre-received', or 'failed'.\nIf no value is provided, only items with 'active' status will be returned by default."
                  example: active
                start_date:
                  type: optional
                  description: 'Any valid time representation that can be parsed by PHP `strtotime()`. Refers to the date the waybill was created. Defaults to 1 week ago.'
                  example: null
                end_date:
                  type: Any
                  description: 'valid time representation that can be parsed by PHP `strtotime()`. Refers to the date the waybill was created. Defaults to now.'
                  example: null
                include:
                  type: A
                  description: 'comma separated list of relationships to return.  Available entries: client, collection_address, delivery_address, collection_contact, delivery_contact, proofs_of_delivery.'
                  example: 'client,collection_address'
    post:
      summary: Store
      description: "Create a new waybill\n<aside class=\"notice\">\n  Please note if you have a pre-paid account with us, your waybills will need to be paid for before the collection can start. Take note of the `payment_needed` parameter in the response meta, that will contain the payment URL (if any)\n</aside>\n<aside class=\"warning\">\n  Any time errors are returned in a \"meta\" array\n</aside>"
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Address for id 955 not found'
                properties:
                  message:
                    type: string
                    example: 'Address for id 955 not found'
      tags:
        - '5. Waybills'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                service:
                  type: integer
                  description: 'A service you would like to deliver the waybill on. Defaults to 2 *(Overnight Express)*.'
                  example: 3
                parcels:
                  type: array
                  description: 'Very important for determining accurate a quote. Will default to an "average" parcel if not supplied. Dimensions are limited to 1000, weight is limited to 400'
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      length:
                        type: number
                        description: 'The length of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                        example: 21.5
                      width:
                        type: number
                        description: 'The width of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                        example: 10.0
                      height:
                        type: number
                        description: 'The height of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                        example: 5.5
                      weight:
                        type: number
                        description: 'The weight of the parcel. Values in *kilograms*. Can be supplied as floats or integers.'
                        example: 5.2
                      quantity:
                        type: integer
                        description: 'The amount of parcels of this type.'
                        example: 2
                      product_id:
                        type: integer
                        description: 'The id of the predefined parcel. Length, width, height and weight will be ignored if value is set. Can be obtained from `/predefined_parcels/` endpoint.'
                        example: 2542
                      ref:
                        type: string
                        description: 'Must not be greater than 25 characters.'
                        example: ypcemwoqy
                      reference:
                        type: string
                        description: 'Parcel reference. Max 25 characters.'
                        example: null
                delivery_method:
                  type: integer
                  description: 'The vehicle that we should collect it with. Defaults to 1 *(Motorbike)*.'
                  example: null
                collection_address:
                  type: integer/object
                  description: 'optional Required if `collection_town` is not supplied. Can be the id of the address or a json object if the address is not yet stored. *See below for object structure*.'
                  example: '952'
                collection_contact:
                  type: integer
                  description: 'optional The id of the Collection Contact. Required only if you are not providing the `contact` object in `collection_address`.'
                  example: 593
                delivery_address:
                  type: integer/object
                  description: 'optional Required if `delivery_town` is not supplied.  Can be the id of the address or a json object if the address is not yet stored. *See below for object structure*.'
                  example: '955'
                delivery_contact:
                  type: integer
                  description: 'optional The id of the Delivery Contact. Required only if you are not providing the `contact` object in `delivery_address`.'
                  example: 596
                custom_id:
                  type: string
                  description: 'A custom id for you to track the waybill by. Max 25 characters.'
                  example: null
                reference:
                  type: string
                  description: 'Customer reference number. Max 100 characters.'
                  example: null
                description:
                  type: string
                  description: 'A description of the package. Required for international waybills. Max 100 characters.'
                  example: null
                special_instructions:
                  type: string
                  description: 'Any instructions on the handling, collection or delivery of your waybill. Max 2048 characters.'
                  example: null
                collection_time:
                  type: string
                  description: 'optional Any future date/time representation that can be parsed by PHP `strtotime()`. Interpreted as GMT+2. If left empty no time surcharges will be encountered. Must be after current time.'
                  example: null
                delivery_time:
                  type: string
                  description: 'Any future date/time representation that can be parsed by PHP `strtotime()`. Interpreted as GMT+2. If left empty no time surcharges will be encountered. Must be after `collection_time`.'
                  example: null
                exclude_weekend:
                  type: boolean
                  description: 'optional Whether to allow for weekend collection or delivery. Surcharges will be applied. Defaults to `true`.'
                  example: true
                risk_cover:
                  type: boolean
                  description: 'optional Whether to enable risk cover over and above the default cover. See terms and conditions. Surcharges will be applied. Defaults to `false`.'
                  example: true
                rica:
                  type: boolean
                  description: 'optional Whether this delivery requires RICA information and documentation to be supplied. Surcharges will be applied. Defaults to `false`.'
                  example: null
                consignee:
                  type: boolean
                  description: 'optional Whether this delivery can only be received by the person it is addressed to, with identity document required. Surcharges will be applied. Defaults to `false`.'
                  example: null
                sms_tracking:
                  type: boolean
                  description: 'optional Whether to send SMS updates to you, the collection and delivery contacts. Surcharges will be applied. Defaults to `false`.'
                  example: null
                hide_collection_address:
                  type: boolean
                  description: 'optional Whether to reprint the waybill when received in order to hide collection details from delivery recipient. Surcharges will be applied. Defaults to `false`.'
                  example: null
                delivery_pin:
                  type: boolean
                  description: 'optional Whether to enable delivery pin. Pin is emailed/SMS''d to the delivery contact and is verified upon delivery. Surcharges will be applied. Defaults to `false`.'
                  example: null
                strict_delivery_time:
                  type: boolean
                  description: 'Waybill should not be delivered before delivery_time. Delivery time may change if it cannot be reached, this setting does not stop that.'
                  example: null
                consolidate:
                  type: boolean
                  description: 'optional Whether to allow for waybill to be consolidated with existing pre-collected waybill that has matching addresses, service and dates. NB: Consolidation also need to be activated on your account so please contact support@colllivery.co.za if you wish to do so. Defaults to `false`.'
                  example: true
                auto_accept:
                  type: boolean
                  description: 'optional Whether waybill added should immediately be accepted. Defaults to `false`.'
                  example: null
                battery_type:
                  type: string
                  description: 'optional Does the parcel contain any lithium-ion batteries. The values for this can be gotten from our `/battery_types` endpoint. Defaults to `false`. Required for international waybills.'
                  example: pi_965
                document_express:
                  type: boolean
                  description: 'optional Whether to set the waybill to use Document Express. This is an over-night service for documents only. Service sent will be ignored and parcels if exist must validate to be below 2Kg. Defaults to `false`.'
                  example: null
                parcel_type:
                  type: integer
                  description: 'Required if waybill is international export, or if   Can be obtained from `/parcel_types/` endpoint .'
                  example: 2
  '/v3/waybill/{collivery_id}':
    get:
      summary: Show
      description: 'This will return a waybill''s information, optionally along with addresses, contacts, proofs of delivery as needed'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: query
          name: include
          description: 'A comma separated list of relationships to return.  Available entries: client, collection_address, delivery_address, collection_contact, delivery_contact, proofs_of_delivery.'
          example: 'client,collection_address'
          required: false
          schema:
            type: string
            description: 'A comma separated list of relationships to return.  Available entries: client, collection_address, delivery_address, collection_contact, delivery_contact, proofs_of_delivery.'
            example: 'client,collection_address'
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 2904397
                    custom_id: ''
                    service_type_id: 2
                    service_type_name: 'Next Day'
                    collection_time: 1559127600
                    customer_reference: ''
                    delivery_time: 1559224800
                    parcel_count: 1
                    special_instructions: ''
                    collection_address_id: 647187
                    collection_contact_id: 671846
                    delivery_address_id: 660058
                    delivery_contact_id: 684889
                    status_id: 6
                    status_name: Invoiced
                    parcel_description: ''
                    weight: 0.4
                    volumetric_weight: 0.6
                    total_price: 100
                    risk_cover: false
                    parcels:
                      -
                        add_method: client
                        created_at: '2020-09-18 14:33:41'
                        custom_id: ''
                        height: '6.0'
                        id: 7699472
                        waybill_id: 4001907
                        length: '22.0'
                        parcel_number: 1
                        quantity: 1
                        volumetric_weight: '0.3'
                        weight: '5.2'
                        width: '10.0'
                    client:
                      id: 116
                      name: 'Test Collivery (Pty) Ltd'
                      landline_number: '011 241 4911'
                      mobile_number: null
                      account_code: null
                      account_type: account
                    collection_address:
                      id: 647187
                      custom_id: null
                      town_id: 147
                      suburb_id: 1936
                      text: 'MDS Collivery, MDS House, 58c Webber St, Selby, Johannesburg'
                      short_text: 'MDS Collivery, Selby, Johannesburg'
                properties:
                  data:
                    type: object
                    example:
                      id: 2904397
                      custom_id: ''
                      service_type_id: 2
                      service_type_name: 'Next Day'
                      collection_time: 1559127600
                      customer_reference: ''
                      delivery_time: 1559224800
                      parcel_count: 1
                      special_instructions: ''
                      collection_address_id: 647187
                      collection_contact_id: 671846
                      delivery_address_id: 660058
                      delivery_contact_id: 684889
                      status_id: 6
                      status_name: Invoiced
                      parcel_description: ''
                      weight: 0.4
                      volumetric_weight: 0.6
                      total_price: 100
                      risk_cover: false
                      parcels:
                        -
                          add_method: client
                          created_at: '2020-09-18 14:33:41'
                          custom_id: ''
                          height: '6.0'
                          id: 7699472
                          waybill_id: 4001907
                          length: '22.0'
                          parcel_number: 1
                          quantity: 1
                          volumetric_weight: '0.3'
                          weight: '5.2'
                          width: '10.0'
                      client:
                        id: 116
                        name: 'Test Collivery (Pty) Ltd'
                        landline_number: '011 241 4911'
                        mobile_number: null
                        account_code: null
                        account_type: account
                      collection_address:
                        id: 647187
                        custom_id: null
                        town_id: 147
                        suburb_id: 1936
                        text: 'MDS Collivery, MDS House, 58c Webber St, Selby, Johannesburg'
                        short_text: 'MDS Collivery, Selby, Johannesburg'
        403:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    http_code_text: Forbidden
                    http_code: 403
                    message: 'That waybill is not linked to your account.'
                properties:
                  error:
                    type: object
                    example:
                      http_code_text: Forbidden
                      http_code: 403
                      message: 'That waybill is not linked to your account.'
      tags:
        - '5. Waybills'
    put:
      summary: Update
      description: "Allows you to update the waybill's service type.\n\n<aside class=\"notice\">\n  Please note you are only able to update the waybill before collection. A change of service type is likely\n  to increase or decrease the price.\n</aside>"
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: query
          name: include
          description: 'A comma separated list of relationships to return.  Available entries: client, collection_address, delivery_address, collection_contact, delivery_contact, proofs_of_delivery.'
          example: 'client,collection_address'
          required: false
          schema:
            type: string
            description: 'A comma separated list of relationships to return.  Available entries: client, collection_address, delivery_address, collection_contact, delivery_contact, proofs_of_delivery.'
            example: 'client,collection_address'
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 4001907
                    custom_id: ''
                    service_type_id: 3
                    service_type_name: 'Road Freight'
                    collection_time: 1559127600
                    customer_reference: ''
                    delivery_time: 1559224800
                    parcel_count: 1
                    special_instructions: ''
                    collection_address_id: 647187
                    collection_contact_id: 671846
                    delivery_address_id: 660058
                    delivery_contact_id: 684889
                    status_id: 6
                    status_name: Invoiced
                    parcel_description: ''
                    weight: 0.4
                    volumetric_weight: 0.6
                    total_price: 100
                    risk_cover: false
                    parcels:
                      -
                        add_method: client
                        created_at: '2020-09-18 14:33:41'
                        custom_id: ''
                        height: '6.0'
                        id: 7699472
                        waybill_id: 4001907
                        length: '22.0'
                        parcel_number: 1
                        quantity: 1
                        volumetric_weight: '0.3'
                        weight: '5.2'
                        width: '10.0'
                    client:
                      id: 116
                      name: 'Test Collivery (Pty) Ltd'
                      landline_number: '011 241 4911'
                      mobile_number: null
                      account_code: null
                      account_type: account
                    collection_address:
                      id: 647187
                      custom_id: null
                      town_id: 147
                      suburb_id: 1936
                      text: 'MDS Collivery, MDS House, 58c Webber St, Selby, Johannesburg'
                      short_text: 'MDS Collivery, Selby, Johannesburg'
                properties:
                  data:
                    type: object
                    example:
                      id: 4001907
                      custom_id: ''
                      service_type_id: 3
                      service_type_name: 'Road Freight'
                      collection_time: 1559127600
                      customer_reference: ''
                      delivery_time: 1559224800
                      parcel_count: 1
                      special_instructions: ''
                      collection_address_id: 647187
                      collection_contact_id: 671846
                      delivery_address_id: 660058
                      delivery_contact_id: 684889
                      status_id: 6
                      status_name: Invoiced
                      parcel_description: ''
                      weight: 0.4
                      volumetric_weight: 0.6
                      total_price: 100
                      risk_cover: false
                      parcels:
                        -
                          add_method: client
                          created_at: '2020-09-18 14:33:41'
                          custom_id: ''
                          height: '6.0'
                          id: 7699472
                          waybill_id: 4001907
                          length: '22.0'
                          parcel_number: 1
                          quantity: 1
                          volumetric_weight: '0.3'
                          weight: '5.2'
                          width: '10.0'
                      client:
                        id: 116
                        name: 'Test Collivery (Pty) Ltd'
                        landline_number: '011 241 4911'
                        mobile_number: null
                        account_code: null
                        account_type: account
                      collection_address:
                        id: 647187
                        custom_id: null
                        town_id: 147
                        suburb_id: 1936
                        text: 'MDS Collivery, MDS House, 58c Webber St, Selby, Johannesburg'
                        short_text: 'MDS Collivery, Selby, Johannesburg'
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    http_code_text: 'Bad Request'
                    http_code: 401
                    message: 'Waybill # 4001907 has already started collection/delivery process, cannot update.'
                properties:
                  error:
                    type: object
                    example:
                      http_code_text: 'Bad Request'
                      http_code: 401
                      message: 'Waybill # 4001907 has already started collection/delivery process, cannot update.'
      tags:
        - '5. Waybills'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                service:
                  type: integer
                  description: 'The new service you would like to deliver the waybill on.'
                  example: 3
    parameters:
      -
        in: path
        name: collivery_id
        description: 'The waybill''s ID.'
        example: '2904397'
        required: true
        schema:
          type: string
  '/v3/waybill/{waybill_collivery_id}/print_label/{printer}':
    get:
      summary: PrintLabel
      description: 'Print waybill labels (only for customers who have a WebPrinter installed)'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        403:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    http_code_text: Forbidden
                    http_code: 403
                    message: 'That waybill is not linked to your account.'
                properties:
                  error:
                    type: object
                    example:
                      http_code_text: Forbidden
                      http_code: 403
                      message: 'That waybill is not linked to your account.'
        400:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    http_code_text: 'Bad Request'
                    http_code: 400
                    message: 'Invalid device, WebPrinter with id 6 does not belong to Demo Collivery (PTY) Ltd.'
                properties:
                  error:
                    type: object
                    example:
                      http_code_text: 'Bad Request'
                      http_code: 400
                      message: 'Invalid device, WebPrinter with id 6 does not belong to Demo Collivery (PTY) Ltd.'
      tags:
        - '5. Waybills'
    parameters:
      -
        in: path
        name: waybill_collivery_id
        description: 'The ID of the waybill collivery.'
        example: 325
        required: true
        schema:
          type: integer
      -
        in: path
        name: printer
        description: 'Optional parameter. optional The printer id you want to print to. Can be obtained from `/web_printer/` endpoint.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '6'
      -
        in: path
        name: waybill
        description: 'The waybill id.'
        example: '4001907'
        required: true
        schema:
          type: string
  /v3/status_tracking:
    get:
      summary: Index
      description: 'Show a list of status tracking records'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      status_id: 1
                      status_name: 'Waiting Client Acceptance'
                      waybill_id: 4105972
                      created_at: '2019-08-12 06:02'
                    -
                      status_id: 3
                      status_name: 'Quote Accepted'
                      waybill_id: 4105972
                      created_at: '2019-08-12 06:02'
                    -
                      status_id: 1
                      status_name: 'Waiting Client Acceptance'
                      waybill_id: 4105999
                      created_at: '2019-08-12 06:03'
                  links:
                    first: 'http://api.collivery.co.za/v3/status_tracking?page=1'
                    last: 'http://api.collivery.co.za/v3/status_tracking?page=33'
                    prev: null
                    next: 'http://api.collivery.co.za/v3/status_tracking?page=2'
                  meta:
                    current_page: 1
                    from: 1
                    last_page: 33
                    path: 'http://api.collivery.co.za/v3/status_tracking'
                    per_page: '3'
                    to: 3
                    total: 98
                properties:
                  data:
                    type: array
                    example:
                      -
                        status_id: 1
                        status_name: 'Waiting Client Acceptance'
                        waybill_id: 4105972
                        created_at: '2019-08-12 06:02'
                      -
                        status_id: 3
                        status_name: 'Quote Accepted'
                        waybill_id: 4105972
                        created_at: '2019-08-12 06:02'
                      -
                        status_id: 1
                        status_name: 'Waiting Client Acceptance'
                        waybill_id: 4105999
                        created_at: '2019-08-12 06:03'
                    items:
                      type: object
                  links:
                    type: object
                    example:
                      first: 'http://api.collivery.co.za/v3/status_tracking?page=1'
                      last: 'http://api.collivery.co.za/v3/status_tracking?page=33'
                      prev: null
                      next: 'http://api.collivery.co.za/v3/status_tracking?page=2'
                  meta:
                    type: object
                    example:
                      current_page: 1
                      from: 1
                      last_page: 33
                      path: 'http://api.collivery.co.za/v3/status_tracking'
                      per_page: '3'
                      to: 3
                      total: 98
      tags:
        - '6. Status Tracking'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                statuses:
                  type: optional
                  description: 'A comma-separated list of statuses to limit the results to. Defaults to all statuses.'
                  example: '1,3'
                per_page:
                  type: integer
                  description: 'The limit per page. Max is `50`. If this option is provided, `links` and `meta` will exist in the response with further information about the full list.`0` is the same as not limiting. Default is  100.'
                  example: 100
                start_date:
                  type: optional
                  description: 'Any valid time representation that can be parsed by PHP `strtotime()`. Defaults to a week ago.'
                  example: '2023-10-10'
                end_date:
                  type: optional.
                  description: ''
                  example: '2023-11-10'
                page:
                  type: integer
                  description: 'page number to return. .'
                  example: 1
              required:
                - per_page
                - page
  '/v3/status_tracking/{waybill_collivery_id}':
    get:
      summary: Show
      description: 'Display all status tracking for a specific waybill'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      status_id: 1
                      status_name: 'Waiting Client Acceptance'
                      waybill_id: 4001907
                      created_at: '2019-05-29 12:13'
                      failure_reason: null
                    -
                      status_id: 3
                      status_name: 'Quote Accepted'
                      waybill_id: 4001907
                      created_at: '2019-05-29 12:13'
                      failure_reason: null
                    -
                      status_id: 10
                      status_name: 'Collection Driver Dispatched'
                      waybill_id: 4001907
                      created_at: '2019-05-29 12:14'
                      failure_reason: null
                    -
                      status_id: 5
                      status_name: 'Collivery Cancelled'
                      waybill_id: 4001907
                      created_at: '2019-05-29 20:41'
                      failure_reason: null
                    -
                      status_id: 3
                      status_name: 'Quote Accepted'
                      waybill_id: 4001907
                      created_at: '2021-11-30 15:37'
                      failure_reason: null
                    -
                      status_id: 5
                      status_name: 'Collivery Cancelled'
                      waybill_id: 4001907
                      created_at: '2021-11-30 15:38'
                      failure_reason: null
                properties:
                  data:
                    type: array
                    example:
                      -
                        status_id: 1
                        status_name: 'Waiting Client Acceptance'
                        waybill_id: 4001907
                        created_at: '2019-05-29 12:13'
                        failure_reason: null
                      -
                        status_id: 3
                        status_name: 'Quote Accepted'
                        waybill_id: 4001907
                        created_at: '2019-05-29 12:13'
                        failure_reason: null
                      -
                        status_id: 10
                        status_name: 'Collection Driver Dispatched'
                        waybill_id: 4001907
                        created_at: '2019-05-29 12:14'
                        failure_reason: null
                      -
                        status_id: 5
                        status_name: 'Collivery Cancelled'
                        waybill_id: 4001907
                        created_at: '2019-05-29 20:41'
                        failure_reason: null
                      -
                        status_id: 3
                        status_name: 'Quote Accepted'
                        waybill_id: 4001907
                        created_at: '2021-11-30 15:37'
                        failure_reason: null
                      -
                        status_id: 5
                        status_name: 'Collivery Cancelled'
                        waybill_id: 4001907
                        created_at: '2021-11-30 15:38'
                        failure_reason: null
                    items:
                      type: object
      tags:
        - '6. Status Tracking'
    put:
      summary: Update
      description: "Accept or Cancel a waybill\n<aside class=\"notice\">\n  Please note if you have a pre-paid account with us, your waybills will need to be paid for before the collection can start. Take note of the `payment_needed` parameter in the response meta, that will contain the payment URL (if any)\n</aside>"
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    message: 'Waybill 4001907 updated to Quote Accepted'
                properties:
                  data:
                    type: object
                    example:
                      message: 'Waybill 4001907 updated to Quote Accepted'
        400:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    http_code_text: 'Bad Request'
                    http_code: 400
                    message: 'Waybill # 4001907 has already started collection/delivery process, cannot cancel.'
                properties:
                  error:
                    type: object
                    example:
                      http_code_text: 'Bad Request'
                      http_code: 400
                      message: 'Waybill # 4001907 has already started collection/delivery process, cannot cancel.'
      tags:
        - '6. Status Tracking'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                status_id:
                  type: number
                  description: 'The id of the status you want to update to. **Must be** `3` (Quote Accepted) or `5` (Cancelled).'
                  example: 3.0
                cheapest:
                  type: boolean
                  description: 'Whether you would like the waybill to be accepted at the cheapest rate'
                  example: true
              required:
                - status_id
    parameters:
      -
        in: path
        name: waybill_collivery_id
        description: 'The ID of the waybill collivery.'
        example: 325
        required: true
        schema:
          type: integer
      -
        in: path
        name: waybill
        description: 'The waybill id.'
        example: 4001907.0
        required: true
        schema:
          type: number
  '/v3/waybill_documents/{waybill}':
    get:
      summary: Index
      description: 'List your waybill documents'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      type: waybill
                      file_name: 4001907-waybill.pdf
                      pages: 1
                      mime: application/pdf
                      size: 27478
                      created_at: '2024-07-26 15:20:28'
                      image_url: 'https://api.collivery.co.za/v3/waybill_documents/4001907/waybill'
                    -
                      type: quote
                      file_name: 4001907-quote.pdf
                      pages: 1
                      mime: application/pdf
                      size: 23808
                      created_at: '2024-07-26 15:20:28'
                      image_url: 'https://api.collivery.co.za/v3/waybill_documents/4001907/quote'
                properties:
                  data:
                    type: array
                    example:
                      -
                        type: waybill
                        file_name: 4001907-waybill.pdf
                        pages: 1
                        mime: application/pdf
                        size: 27478
                        created_at: '2024-07-26 15:20:28'
                        image_url: 'https://api.collivery.co.za/v3/waybill_documents/4001907/waybill'
                      -
                        type: quote
                        file_name: 4001907-quote.pdf
                        pages: 1
                        mime: application/pdf
                        size: 23808
                        created_at: '2024-07-26 15:20:28'
                        image_url: 'https://api.collivery.co.za/v3/waybill_documents/4001907/quote'
                    items:
                      type: object
      tags:
        - '7. Waybill Documents'
    parameters:
      -
        in: path
        name: waybill
        description: 'The waybill id you are requesting documents for.'
        example: 4001907.0
        required: true
        schema:
          type: number
  '/v3/waybill_documents/{waybill}/{type}':
    get:
      summary: Show
      description: 'Get the details and base64 encoded image of the waybill document'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 4001907
                    type: waybill
                    file_name: 4001907.pdf
                    pages: 1
                    mime: application/pdf
                    size: 2605
                    created_at: '2019-05-29 18:41:11'
                    image: JVBERi0xLjMgCjEgMCBvYmoKPDwKL1BhZ2VzIDIgMCBSCi9UeXBlIC9DYXRhbG9nCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbIDMgMCBSIF0KL0NvdW50IDEKPj4KZW5kb2JqCjMgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8Ci9YT2JqZWN0IDw8IC9JbTAgOCAwIFIgPj4KL1Byb2NTZXQgNiAwIFIgPj4KL01lZGlhQm94IFswIDAgMSAxXQovQ3JvcEJveCBbMCAwIDEgMV0KL0NvbnRlbnRzIDQgMCBSCi9UaHVtYiAxMSAwIFIKPj4KZW5kb2JqCjQgMCBvYmoKPDwKL0xlbmd0aCA1IDAgUgo+PgpzdHJlYW0KcQoxIDAgMCAxIDAgMCBjbQovSW0wIERvClEKCmVuZHN0cmVhbQplbmRvYmoKNSAwIG9iagoyNwplbmRvYmoKNiAwIG9iagpbIC9QREYgL1RleHQgL0ltYWdlQyBdCmVuZG9iago3IDAgb2JqCjw8Cj4+CmVuZG9iago4IDAgb2JqCjw8Ci9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9JbWFnZQovTmFtZSAvSW0wCi9GaWx0ZXIgWyAvRENURGVjb2RlIF0KL1dpZHRoIDEKL0hlaWdodCAxCi9Db2xvclNwYWNlIDEwIDAgUgovQml0c1BlckNvbXBvbmVudCA4Ci9MZW5ndGggOSAwIFIKPj4Kc3RyZWFtCv/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwAMCAkKCQcMCgoKDQ0MDhIeExIQEBIkGhsVHismLSwqJikpLzVEOi8yQDMpKTtRPEBGSUxNTC45VFpTSllES0xJ/8AACwgAAQABAQERAP/EABQAAQAAAAAAAAAAAAAAAAAAAAf/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/9oACAEBAAA/AFV//9kKZW5kc3RyZWFtCmVuZG9iago5IDAgb2JqCjE2MAplbmRvYmoKMTAgMCBvYmoKL0RldmljZUdyYXkKZW5kb2JqCjExIDAgb2JqCjw8Ci9GaWx0ZXIgWyAvRENURGVjb2RlIF0KL1dpZHRoIDEKL0hlaWdodCAxCi9Db2xvclNwYWNlIDEwIDAgUgovQml0c1BlckNvbXBvbmVudCA4Ci9MZW5ndGggMTIgMCBSCj4+CnN0cmVhbQr/2P/gABBKRklGAAEBAAABAAEAAP/bAEMADAgJCgkHDAoKCg0NDA4SHhMSEBASJBobFR4rJi0sKiYpKS81RDovMkAzKSk7UTxARklMTUwuOVRaU0pZREtMSf/AAAsIAAEAAQEBEQD/xAAUAAEAAAAAAAAAAAAAAAAAAAAH/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAAPwBVf//ZCmVuZHN0cmVhbQplbmRvYmoKMTIgMCBvYmoKMTYwCmVuZG9iagoxMyAwIG9iago8PAo+PgplbmRvYmoKMTQgMCBvYmoKMTYwCmVuZG9iagoxNSAwIG9iago8PAo+PgplbmRvYmoKMTYgMCBvYmoKMTYwCmVuZG9iagoxNyAwIG9iago8PAovVGl0bGUgPEZFRkYwMDYxMDAwMD4KL0NyZWF0aW9uRGF0ZSAoRDoyMDE5MDkxMTA2MjMxMykKL01vZERhdGUgKEQ6MjAxOTA5MTEwNjIzMTMpCi9Qcm9kdWNlciAoaHR0cHM6Ly9pbWFnZW1hZ2ljay5vcmcpCj4+CmVuZG9iagp4cmVmCjAgMTgKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDEwIDAwMDAwIG4gCjAwMDAwMDAwNTkgMDAwMDAgbiAKMDAwMDAwMDExOCAwMDAwMCBuIAowMDAwMDAwMjkyIDAwMDAwIG4gCjAwMDAwMDAzNzIgMDAwMDAgbiAKMDAwMDAwMDM5MCAwMDAwMCBuIAowMDAwMDAwNDI4IDAwMDAwIG4gCjAwMDAwMDA0NDkgMDAwMDAgbiAKMDAwMDAwMDc4NSAwMDAwMCBuIAowMDAwMDAwODA0IDAwMDAwIG4gCjAwMDAwMDA4MzIgMDAwMDAgbiAKMDAwMDAwMTEyOCAwMDAwMCBuIAowMDAwMDAxMTQ4IDAwMDAwIG4gCjAwMDAwMDExNzAgMDAwMDAgbiAKMDAwMDAwMTE5MCAwMDAwMCBuIAowMDAwMDAxMjEyIDAwMDAwIG4gCjAwMDAwMDEyMzIgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSAxOAovSW5mbyAxNyAwIFIKL1Jvb3QgMSAwIFIKL0lEIFs8ZTAwZTVlYjk0NDQxODJmMzUyMzIzMzc0ZWY0ZTA4ZWJjYjc4NDcyNWZkZDRmZDYxMmQ3NzMwNTQwYjNlMGM4Yz4gPGUwMGU1ZWI5NDQ0MTgyZjM1MjMyMzM3NGVmNGUwOGViY2I3ODQ3MjVmZGQ0ZmQ2MTJkNzczMDU0MGIzZTBjOGM+XQo+PgpzdGFydHhyZWYKMTM3MwolJUVPRgo
                properties:
                  data:
                    type: object
                    example:
                      id: 4001907
                      type: waybill
                      file_name: 4001907.pdf
                      pages: 1
                      mime: application/pdf
                      size: 2605
                      created_at: '2019-05-29 18:41:11'
                      image: JVBERi0xLjMgCjEgMCBvYmoKPDwKL1BhZ2VzIDIgMCBSCi9UeXBlIC9DYXRhbG9nCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbIDMgMCBSIF0KL0NvdW50IDEKPj4KZW5kb2JqCjMgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8Ci9YT2JqZWN0IDw8IC9JbTAgOCAwIFIgPj4KL1Byb2NTZXQgNiAwIFIgPj4KL01lZGlhQm94IFswIDAgMSAxXQovQ3JvcEJveCBbMCAwIDEgMV0KL0NvbnRlbnRzIDQgMCBSCi9UaHVtYiAxMSAwIFIKPj4KZW5kb2JqCjQgMCBvYmoKPDwKL0xlbmd0aCA1IDAgUgo+PgpzdHJlYW0KcQoxIDAgMCAxIDAgMCBjbQovSW0wIERvClEKCmVuZHN0cmVhbQplbmRvYmoKNSAwIG9iagoyNwplbmRvYmoKNiAwIG9iagpbIC9QREYgL1RleHQgL0ltYWdlQyBdCmVuZG9iago3IDAgb2JqCjw8Cj4+CmVuZG9iago4IDAgb2JqCjw8Ci9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9JbWFnZQovTmFtZSAvSW0wCi9GaWx0ZXIgWyAvRENURGVjb2RlIF0KL1dpZHRoIDEKL0hlaWdodCAxCi9Db2xvclNwYWNlIDEwIDAgUgovQml0c1BlckNvbXBvbmVudCA4Ci9MZW5ndGggOSAwIFIKPj4Kc3RyZWFtCv/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwAMCAkKCQcMCgoKDQ0MDhIeExIQEBIkGhsVHismLSwqJikpLzVEOi8yQDMpKTtRPEBGSUxNTC45VFpTSllES0xJ/8AACwgAAQABAQERAP/EABQAAQAAAAAAAAAAAAAAAAAAAAf/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/9oACAEBAAA/AFV//9kKZW5kc3RyZWFtCmVuZG9iago5IDAgb2JqCjE2MAplbmRvYmoKMTAgMCBvYmoKL0RldmljZUdyYXkKZW5kb2JqCjExIDAgb2JqCjw8Ci9GaWx0ZXIgWyAvRENURGVjb2RlIF0KL1dpZHRoIDEKL0hlaWdodCAxCi9Db2xvclNwYWNlIDEwIDAgUgovQml0c1BlckNvbXBvbmVudCA4Ci9MZW5ndGggMTIgMCBSCj4+CnN0cmVhbQr/2P/gABBKRklGAAEBAAABAAEAAP/bAEMADAgJCgkHDAoKCg0NDA4SHhMSEBASJBobFR4rJi0sKiYpKS81RDovMkAzKSk7UTxARklMTUwuOVRaU0pZREtMSf/AAAsIAAEAAQEBEQD/xAAUAAEAAAAAAAAAAAAAAAAAAAAH/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAAPwBVf//ZCmVuZHN0cmVhbQplbmRvYmoKMTIgMCBvYmoKMTYwCmVuZG9iagoxMyAwIG9iago8PAo+PgplbmRvYmoKMTQgMCBvYmoKMTYwCmVuZG9iagoxNSAwIG9iago8PAo+PgplbmRvYmoKMTYgMCBvYmoKMTYwCmVuZG9iagoxNyAwIG9iago8PAovVGl0bGUgPEZFRkYwMDYxMDAwMD4KL0NyZWF0aW9uRGF0ZSAoRDoyMDE5MDkxMTA2MjMxMykKL01vZERhdGUgKEQ6MjAxOTA5MTEwNjIzMTMpCi9Qcm9kdWNlciAoaHR0cHM6Ly9pbWFnZW1hZ2ljay5vcmcpCj4+CmVuZG9iagp4cmVmCjAgMTgKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDEwIDAwMDAwIG4gCjAwMDAwMDAwNTkgMDAwMDAgbiAKMDAwMDAwMDExOCAwMDAwMCBuIAowMDAwMDAwMjkyIDAwMDAwIG4gCjAwMDAwMDAzNzIgMDAwMDAgbiAKMDAwMDAwMDM5MCAwMDAwMCBuIAowMDAwMDAwNDI4IDAwMDAwIG4gCjAwMDAwMDA0NDkgMDAwMDAgbiAKMDAwMDAwMDc4NSAwMDAwMCBuIAowMDAwMDAwODA0IDAwMDAwIG4gCjAwMDAwMDA4MzIgMDAwMDAgbiAKMDAwMDAwMTEyOCAwMDAwMCBuIAowMDAwMDAxMTQ4IDAwMDAwIG4gCjAwMDAwMDExNzAgMDAwMDAgbiAKMDAwMDAwMTE5MCAwMDAwMCBuIAowMDAwMDAxMjEyIDAwMDAwIG4gCjAwMDAwMDEyMzIgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSAxOAovSW5mbyAxNyAwIFIKL1Jvb3QgMSAwIFIKL0lEIFs8ZTAwZTVlYjk0NDQxODJmMzUyMzIzMzc0ZWY0ZTA4ZWJjYjc4NDcyNWZkZDRmZDYxMmQ3NzMwNTQwYjNlMGM4Yz4gPGUwMGU1ZWI5NDQ0MTgyZjM1MjMyMzM3NGVmNGUwOGViY2I3ODQ3MjVmZGQ0ZmQ2MTJkNzczMDU0MGIzZTBjOGM+XQo+PgpzdGFydHhyZWYKMTM3MwolJUVPRgo
      tags:
        - '7. Waybill Documents'
    parameters:
      -
        in: path
        name: waybill
        description: 'The waybill id you are requesting documents for.'
        example: 4001907.0
        required: true
        schema:
          type: number
      -
        in: path
        name: type
        description: 'The type of document, `''waybill''` or `''quote''` or `''label''`.'
        example: waybill
        required: true
        schema:
          type: string
  /v3/proofs_of_delivery:
    get:
      summary: Index
      description: 'List your waybill proofs of delivery'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: query
          name: waybill_id
          description: 'Limit to results with this waybill.'
          example: null
          required: false
          schema:
            type: string
            description: 'Limit to results with this waybill.'
            example: null
        -
          in: query
          name: page
          description: 'Page number to return.'
          example: 1
          required: false
          schema:
            type: string
            description: 'Page number to return.'
            example: 1
        -
          in: query
          name: per_page
          description: 'The limit per page. If this option is provided, `links` and `meta` will exist in the response with further information about the full list.`0` is the same as not limiting. Default is  100.'
          example: 3
          required: false
          schema:
            type: string
            description: 'The limit per page. If this option is provided, `links` and `meta` will exist in the response with further information about the full list.`0` is the same as not limiting. Default is  100.'
            example: 3
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 170452
                      type: POD
                      file_name: 342118.pdf
                      pages: 1
                      mime: application/pdf
                      size: 48971
                      created_at: '2010-09-27 11:15:03'
                      image_url: 'https://api.collivery.co.za/v3/proofs_of_delivery/170452'
                    -
                      id: 182535
                      type: POD
                      file_name: 356551.pdf
                      pages: 1
                      mime: application/pdf
                      size: 112152
                      created_at: '2010-10-20 14:16:18'
                      image_url: 'https://api.collivery.co.za/v3/proofs_of_delivery/182535'
                    -
                      id: 211515
                      type: POD
                      file_name: 390109.pdf
                      pages: 1
                      mime: application/pdf
                      size: 57001
                      created_at: '2010-12-08 10:23:25'
                      image_url: 'https://api.collivery.co.za/v3/proofs_of_delivery/211515'
                  links:
                    first: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=1'
                    last: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=174'
                    prev: null
                    next: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=2'
                  meta:
                    current_page: 1
                    from: 1
                    last_page: 174
                    links:
                      -
                        url: null
                        label: '&laquo; Previous'
                        active: false
                      -
                        url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=1'
                        label: '1'
                        active: true
                      -
                        url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=2'
                        label: '2'
                        active: false
                      -
                        url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=3'
                        label: '3'
                        active: false
                      -
                        url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=4'
                        label: '4'
                        active: false
                      -
                        url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=5'
                        label: '5'
                        active: false
                      -
                        url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=6'
                        label: '6'
                        active: false
                      -
                        url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=7'
                        label: '7'
                        active: false
                      -
                        url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=8'
                        label: '8'
                        active: false
                      -
                        url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=9'
                        label: '9'
                        active: false
                      -
                        url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=10'
                        label: '10'
                        active: false
                      -
                        url: null
                        label: ...
                        active: false
                      -
                        url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=173'
                        label: '173'
                        active: false
                      -
                        url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=174'
                        label: '174'
                        active: false
                      -
                        url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=2'
                        label: 'Next &raquo;'
                        active: false
                    path: 'https://api.collivery.co.za/v3/proofs_of_delivery'
                    per_page: 3
                    to: 3
                    total: 522
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 170452
                        type: POD
                        file_name: 342118.pdf
                        pages: 1
                        mime: application/pdf
                        size: 48971
                        created_at: '2010-09-27 11:15:03'
                        image_url: 'https://api.collivery.co.za/v3/proofs_of_delivery/170452'
                      -
                        id: 182535
                        type: POD
                        file_name: 356551.pdf
                        pages: 1
                        mime: application/pdf
                        size: 112152
                        created_at: '2010-10-20 14:16:18'
                        image_url: 'https://api.collivery.co.za/v3/proofs_of_delivery/182535'
                      -
                        id: 211515
                        type: POD
                        file_name: 390109.pdf
                        pages: 1
                        mime: application/pdf
                        size: 57001
                        created_at: '2010-12-08 10:23:25'
                        image_url: 'https://api.collivery.co.za/v3/proofs_of_delivery/211515'
                    items:
                      type: object
                  links:
                    type: object
                    example:
                      first: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=1'
                      last: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=174'
                      prev: null
                      next: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=2'
                  meta:
                    type: object
                    example:
                      current_page: 1
                      from: 1
                      last_page: 174
                      links:
                        -
                          url: null
                          label: '&laquo; Previous'
                          active: false
                        -
                          url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=1'
                          label: '1'
                          active: true
                        -
                          url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=2'
                          label: '2'
                          active: false
                        -
                          url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=3'
                          label: '3'
                          active: false
                        -
                          url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=4'
                          label: '4'
                          active: false
                        -
                          url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=5'
                          label: '5'
                          active: false
                        -
                          url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=6'
                          label: '6'
                          active: false
                        -
                          url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=7'
                          label: '7'
                          active: false
                        -
                          url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=8'
                          label: '8'
                          active: false
                        -
                          url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=9'
                          label: '9'
                          active: false
                        -
                          url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=10'
                          label: '10'
                          active: false
                        -
                          url: null
                          label: ...
                          active: false
                        -
                          url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=173'
                          label: '173'
                          active: false
                        -
                          url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=174'
                          label: '174'
                          active: false
                        -
                          url: 'https://api.collivery.co.za/v3/proofs_of_delivery?page=2'
                          label: 'Next &raquo;'
                          active: false
                      path: 'https://api.collivery.co.za/v3/proofs_of_delivery'
                      per_page: 3
                      to: 3
                      total: 522
      tags:
        - '8. Proofs of Delivery'
  '/v3/proofs_of_delivery/{id}':
    get:
      summary: Show
      description: 'Get the details and base64 encoded image of the waybill proof of delivery'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 211515
                    type: ''
                    file_name: 4001907_POD.pdf
                    pages: 1
                    mime: application/pdf
                    size: 2605
                    created_at: '2019-05-29 18:41:11'
                    image_url: 'https://api.collivery.co.za/v3/proofs_of_delivery/211515'
                    image: JVBERi0xLjMgCjEgMCBvYmoKPDwKL1BhZ2VzIDIgMCBSCi9UeXBlIC9DYXRhbG9nCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbIDMgMCBSIF0KL0NvdW50IDEKPj4KZW5kb2JqCjMgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8Ci9YT2JqZWN0IDw8IC9JbTAgOCAwIFIgPj4KL1Byb2NTZXQgNiAwIFIgPj4KL01lZGlhQm94IFswIDAgMSAxXQovQ3JvcEJveCBbMCAwIDEgMV0KL0NvbnRlbnRzIDQgMCBSCi9UaHVtYiAxMSAwIFIKPj4KZW5kb2JqCjQgMCBvYmoKPDwKL0xlbmd0aCA1IDAgUgo+PgpzdHJlYW0KcQoxIDAgMCAxIDAgMCBjbQovSW0wIERvClEKCmVuZHN0cmVhbQplbmRvYmoKNSAwIG9iagoyNwplbmRvYmoKNiAwIG9iagpbIC9QREYgL1RleHQgL0ltYWdlQyBdCmVuZG9iago3IDAgb2JqCjw8Cj4+CmVuZG9iago4IDAgb2JqCjw8Ci9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9JbWFnZQovTmFtZSAvSW0wCi9GaWx0ZXIgWyAvRENURGVjb2RlIF0KL1dpZHRoIDEKL0hlaWdodCAxCi9Db2xvclNwYWNlIDEwIDAgUgovQml0c1BlckNvbXBvbmVudCA4Ci9MZW5ndGggOSAwIFIKPj4Kc3RyZWFtCv/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwAMCAkKCQcMCgoKDQ0MDhIeExIQEBIkGhsVHismLSwqJikpLzVEOi8yQDMpKTtRPEBGSUxNTC45VFpTSllES0xJ/8AACwgAAQABAQERAP/EABQAAQAAAAAAAAAAAAAAAAAAAAf/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/9oACAEBAAA/AFV//9kKZW5kc3RyZWFtCmVuZG9iago5IDAgb2JqCjE2MAplbmRvYmoKMTAgMCBvYmoKL0RldmljZUdyYXkKZW5kb2JqCjExIDAgb2JqCjw8Ci9GaWx0ZXIgWyAvRENURGVjb2RlIF0KL1dpZHRoIDEKL0hlaWdodCAxCi9Db2xvclNwYWNlIDEwIDAgUgovQml0c1BlckNvbXBvbmVudCA4Ci9MZW5ndGggMTIgMCBSCj4+CnN0cmVhbQr/2P/gABBKRklGAAEBAAABAAEAAP/bAEMADAgJCgkHDAoKCg0NDA4SHhMSEBASJBobFR4rJi0sKiYpKS81RDovMkAzKSk7UTxARklMTUwuOVRaU0pZREtMSf/AAAsIAAEAAQEBEQD/xAAUAAEAAAAAAAAAAAAAAAAAAAAH/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAAPwBVf//ZCmVuZHN0cmVhbQplbmRvYmoKMTIgMCBvYmoKMTYwCmVuZG9iagoxMyAwIG9iago8PAo+PgplbmRvYmoKMTQgMCBvYmoKMTYwCmVuZG9iagoxNSAwIG9iago8PAo+PgplbmRvYmoKMTYgMCBvYmoKMTYwCmVuZG9iagoxNyAwIG9iago8PAovVGl0bGUgPEZFRkYwMDYxMDAwMD4KL0NyZWF0aW9uRGF0ZSAoRDoyMDE5MDkxMTA2MjMxMykKL01vZERhdGUgKEQ6MjAxOTA5MTEwNjIzMTMpCi9Qcm9kdWNlciAoaHR0cHM6Ly9pbWFnZW1hZ2ljay5vcmcpCj4+CmVuZG9iagp4cmVmCjAgMTgKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDEwIDAwMDAwIG4gCjAwMDAwMDAwNTkgMDAwMDAgbiAKMDAwMDAwMDExOCAwMDAwMCBuIAowMDAwMDAwMjkyIDAwMDAwIG4gCjAwMDAwMDAzNzIgMDAwMDAgbiAKMDAwMDAwMDM5MCAwMDAwMCBuIAowMDAwMDAwNDI4IDAwMDAwIG4gCjAwMDAwMDA0NDkgMDAwMDAgbiAKMDAwMDAwMDc4NSAwMDAwMCBuIAowMDAwMDAwODA0IDAwMDAwIG4gCjAwMDAwMDA4MzIgMDAwMDAgbiAKMDAwMDAwMTEyOCAwMDAwMCBuIAowMDAwMDAxMTQ4IDAwMDAwIG4gCjAwMDAwMDExNzAgMDAwMDAgbiAKMDAwMDAwMTE5MCAwMDAwMCBuIAowMDAwMDAxMjEyIDAwMDAwIG4gCjAwMDAwMDEyMzIgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSAxOAovSW5mbyAxNyAwIFIKL1Jvb3QgMSAwIFIKL0lEIFs8ZTAwZTVlYjk0NDQxODJmMzUyMzIzMzc0ZWY0ZTA4ZWJjYjc4NDcyNWZkZDRmZDYxMmQ3NzMwNTQwYjNlMGM4Yz4gPGUwMGU1ZWI5NDQ0MTgyZjM1MjMyMzM3NGVmNGUwOGViY2I3ODQ3MjVmZGQ0ZmQ2MTJkNzczMDU0MGIzZTBjOGM+XQo+PgpzdGFydHhyZWYKMTM3MwolJUVPRgo
                properties:
                  data:
                    type: object
                    example:
                      id: 211515
                      type: ''
                      file_name: 4001907_POD.pdf
                      pages: 1
                      mime: application/pdf
                      size: 2605
                      created_at: '2019-05-29 18:41:11'
                      image_url: 'https://api.collivery.co.za/v3/proofs_of_delivery/211515'
                      image: JVBERi0xLjMgCjEgMCBvYmoKPDwKL1BhZ2VzIDIgMCBSCi9UeXBlIC9DYXRhbG9nCj4+CmVuZG9iagoyIDAgb2JqCjw8Ci9UeXBlIC9QYWdlcwovS2lkcyBbIDMgMCBSIF0KL0NvdW50IDEKPj4KZW5kb2JqCjMgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCAyIDAgUgovUmVzb3VyY2VzIDw8Ci9YT2JqZWN0IDw8IC9JbTAgOCAwIFIgPj4KL1Byb2NTZXQgNiAwIFIgPj4KL01lZGlhQm94IFswIDAgMSAxXQovQ3JvcEJveCBbMCAwIDEgMV0KL0NvbnRlbnRzIDQgMCBSCi9UaHVtYiAxMSAwIFIKPj4KZW5kb2JqCjQgMCBvYmoKPDwKL0xlbmd0aCA1IDAgUgo+PgpzdHJlYW0KcQoxIDAgMCAxIDAgMCBjbQovSW0wIERvClEKCmVuZHN0cmVhbQplbmRvYmoKNSAwIG9iagoyNwplbmRvYmoKNiAwIG9iagpbIC9QREYgL1RleHQgL0ltYWdlQyBdCmVuZG9iago3IDAgb2JqCjw8Cj4+CmVuZG9iago4IDAgb2JqCjw8Ci9UeXBlIC9YT2JqZWN0Ci9TdWJ0eXBlIC9JbWFnZQovTmFtZSAvSW0wCi9GaWx0ZXIgWyAvRENURGVjb2RlIF0KL1dpZHRoIDEKL0hlaWdodCAxCi9Db2xvclNwYWNlIDEwIDAgUgovQml0c1BlckNvbXBvbmVudCA4Ci9MZW5ndGggOSAwIFIKPj4Kc3RyZWFtCv/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwAMCAkKCQcMCgoKDQ0MDhIeExIQEBIkGhsVHismLSwqJikpLzVEOi8yQDMpKTtRPEBGSUxNTC45VFpTSllES0xJ/8AACwgAAQABAQERAP/EABQAAQAAAAAAAAAAAAAAAAAAAAf/xAAUEAEAAAAAAAAAAAAAAAAAAAAA/9oACAEBAAA/AFV//9kKZW5kc3RyZWFtCmVuZG9iago5IDAgb2JqCjE2MAplbmRvYmoKMTAgMCBvYmoKL0RldmljZUdyYXkKZW5kb2JqCjExIDAgb2JqCjw8Ci9GaWx0ZXIgWyAvRENURGVjb2RlIF0KL1dpZHRoIDEKL0hlaWdodCAxCi9Db2xvclNwYWNlIDEwIDAgUgovQml0c1BlckNvbXBvbmVudCA4Ci9MZW5ndGggMTIgMCBSCj4+CnN0cmVhbQr/2P/gABBKRklGAAEBAAABAAEAAP/bAEMADAgJCgkHDAoKCg0NDA4SHhMSEBASJBobFR4rJi0sKiYpKS81RDovMkAzKSk7UTxARklMTUwuOVRaU0pZREtMSf/AAAsIAAEAAQEBEQD/xAAUAAEAAAAAAAAAAAAAAAAAAAAH/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAAPwBVf//ZCmVuZHN0cmVhbQplbmRvYmoKMTIgMCBvYmoKMTYwCmVuZG9iagoxMyAwIG9iago8PAo+PgplbmRvYmoKMTQgMCBvYmoKMTYwCmVuZG9iagoxNSAwIG9iago8PAo+PgplbmRvYmoKMTYgMCBvYmoKMTYwCmVuZG9iagoxNyAwIG9iago8PAovVGl0bGUgPEZFRkYwMDYxMDAwMD4KL0NyZWF0aW9uRGF0ZSAoRDoyMDE5MDkxMTA2MjMxMykKL01vZERhdGUgKEQ6MjAxOTA5MTEwNjIzMTMpCi9Qcm9kdWNlciAoaHR0cHM6Ly9pbWFnZW1hZ2ljay5vcmcpCj4+CmVuZG9iagp4cmVmCjAgMTgKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDEwIDAwMDAwIG4gCjAwMDAwMDAwNTkgMDAwMDAgbiAKMDAwMDAwMDExOCAwMDAwMCBuIAowMDAwMDAwMjkyIDAwMDAwIG4gCjAwMDAwMDAzNzIgMDAwMDAgbiAKMDAwMDAwMDM5MCAwMDAwMCBuIAowMDAwMDAwNDI4IDAwMDAwIG4gCjAwMDAwMDA0NDkgMDAwMDAgbiAKMDAwMDAwMDc4NSAwMDAwMCBuIAowMDAwMDAwODA0IDAwMDAwIG4gCjAwMDAwMDA4MzIgMDAwMDAgbiAKMDAwMDAwMTEyOCAwMDAwMCBuIAowMDAwMDAxMTQ4IDAwMDAwIG4gCjAwMDAwMDExNzAgMDAwMDAgbiAKMDAwMDAwMTE5MCAwMDAwMCBuIAowMDAwMDAxMjEyIDAwMDAwIG4gCjAwMDAwMDEyMzIgMDAwMDAgbiAKdHJhaWxlcgo8PAovU2l6ZSAxOAovSW5mbyAxNyAwIFIKL1Jvb3QgMSAwIFIKL0lEIFs8ZTAwZTVlYjk0NDQxODJmMzUyMzIzMzc0ZWY0ZTA4ZWJjYjc4NDcyNWZkZDRmZDYxMmQ3NzMwNTQwYjNlMGM4Yz4gPGUwMGU1ZWI5NDQ0MTgyZjM1MjMyMzM3NGVmNGUwOGViY2I3ODQ3MjVmZGQ0ZmQ2MTJkNzczMDU0MGIzZTBjOGM+XQo+PgpzdGFydHhyZWYKMTM3MwolJUVPRgo
      tags:
        - '8. Proofs of Delivery'
    parameters:
      -
        in: path
        name: id
        description: 'The proof of delivery id.'
        example: 211515.0
        required: true
        schema:
          type: number
  /v3/parcel_images:
    get:
      summary: Index
      description: ''
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: query
          name: waybill_id
          description: 'A waybill id that you would like to limit the parcel images to.'
          example: null
          required: false
          schema:
            type: string
            description: 'A waybill id that you would like to limit the parcel images to.'
            example: null
        -
          in: query
          name: page
          description: 'Page number to return.'
          example: 1
          required: false
          schema:
            type: string
            description: 'Page number to return.'
            example: 1
        -
          in: query
          name: per_page
          description: 'The limit per page. If this option is provided, `links` and `meta` will exist in the response with further information about the full list.`0` is the same as not limiting. Default is  100.'
          example: 3
          required: false
          schema:
            type: string
            description: 'The limit per page. If this option is provided, `links` and `meta` will exist in the response with further information about the full list.`0` is the same as not limiting. Default is  100.'
            example: 3
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 2681479
                      waybill_id: 3012330
                      parcel_number: 1
                      file_name: 3012330-1.jpeg
                      mime_type: image/jpeg
                      size: 26287
                      created_at: '2017-07-17 13:06:57'
                      image_url: 'https://api.collivery.co.za/v3/parcel_images/2681479'
                    -
                      id: 2694043
                      waybill_id: 3041631
                      parcel_number: 1
                      file_name: 3041631-1.jpeg
                      mime_type: image/jpeg
                      size: 32399
                      created_at: '2017-07-25 14:37:50'
                      image_url: 'https://api.collivery.co.za/v3/parcel_images/2694043'
                    -
                      id: 2694087
                      waybill_id: 3041631
                      parcel_number: 2
                      file_name: 3041631-2.jpeg
                      mime_type: image/jpeg
                      size: 34726
                      created_at: '2017-07-25 14:52:37'
                      image_url: 'https://api.collivery.co.za/v3/parcel_images/2694087'
                  links:
                    first: 'https://api.collivery.co.za/v3/parcel_images?page=1'
                    last: 'https://api.collivery.co.za/v3/parcel_images?page=2'
                    next: 'https://api.collivery.co.za/v3/parcel_images?page=2'
                    prev: null
                  meta:
                    current_page: 1
                    from: 1
                    last_page: 2
                    path: 'https://api.collivery.co.za/v3/parcel_images'
                    per_page: '3'
                    to: 3
                    total: 6
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 2681479
                        waybill_id: 3012330
                        parcel_number: 1
                        file_name: 3012330-1.jpeg
                        mime_type: image/jpeg
                        size: 26287
                        created_at: '2017-07-17 13:06:57'
                        image_url: 'https://api.collivery.co.za/v3/parcel_images/2681479'
                      -
                        id: 2694043
                        waybill_id: 3041631
                        parcel_number: 1
                        file_name: 3041631-1.jpeg
                        mime_type: image/jpeg
                        size: 32399
                        created_at: '2017-07-25 14:37:50'
                        image_url: 'https://api.collivery.co.za/v3/parcel_images/2694043'
                      -
                        id: 2694087
                        waybill_id: 3041631
                        parcel_number: 2
                        file_name: 3041631-2.jpeg
                        mime_type: image/jpeg
                        size: 34726
                        created_at: '2017-07-25 14:52:37'
                        image_url: 'https://api.collivery.co.za/v3/parcel_images/2694087'
                    items:
                      type: object
                  links:
                    type: object
                    example:
                      first: 'https://api.collivery.co.za/v3/parcel_images?page=1'
                      last: 'https://api.collivery.co.za/v3/parcel_images?page=2'
                      next: 'https://api.collivery.co.za/v3/parcel_images?page=2'
                      prev: null
                  meta:
                    type: object
                    example:
                      current_page: 1
                      from: 1
                      last_page: 2
                      path: 'https://api.collivery.co.za/v3/parcel_images'
                      per_page: '3'
                      to: 3
                      total: 6
      tags:
        - '9. Parcel Images'
  '/v3/parcel_images/{id}':
    get:
      summary: Show
      description: 'Get the base64 encoded image'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    file_name: 3041631-1.jpeg
                    mime_type: image/jpeg
                    image: /9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUFBQUFBQUGBgUICAcICAsKCQkKCxEMDQwNDBEaEBMQEBMQGhcbFhUWGxcpIBwcICkvJyUnLzkzMzlHREddXX0BBQUFBQUFBQYGBQgIBwgICwoJCQoLEQwNDA0MERoQExAQExAaFxsWFRYbFykgHBwgKS8nJScvOTMzOUdER11dff/CABEIAAEAAQMBIgACEQEDEQH/xAAUAAEAAAAAAAAAAAAAAAAAAAAI/9oACAEBAAAAAGX/AP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIQAAAAf//EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMQAAAAf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8Af//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Af//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Af//Z
                properties:
                  data:
                    type: object
                    example:
                      file_name: 3041631-1.jpeg
                      mime_type: image/jpeg
                      image: /9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUFBQUFBQUGBgUICAcICAsKCQkKCxEMDQwNDBEaEBMQEBMQGhcbFhUWGxcpIBwcICkvJyUnLzkzMzlHREddXX0BBQUFBQUFBQYGBQgIBwgICwoJCQoLEQwNDA0MERoQExAQExAaFxsWFRYbFykgHBwgKS8nJScvOTMzOUdER11dff/CABEIAAEAAQMBIgACEQEDEQH/xAAUAAEAAAAAAAAAAAAAAAAAAAAI/9oACAEBAAAAAGX/AP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIQAAAAf//EABQBAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMQAAAAf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8Af//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Af//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQMBAT8Af//Z
      tags:
        - '9. Parcel Images'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the parcel image.'
        example: 1
        required: true
        schema:
          type: integer
      -
        in: path
        name: parcel_image
        description: 'The parcel image id.'
        example: 3041631.0
        required: true
        schema:
          type: number
  /v3/country:
    get:
      summary: Index
      description: 'Show all countries'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: query
          name: page
          description: 'Page number to return.'
          example: 1
          required: false
          schema:
            type: string
            description: 'Page number to return.'
            example: 1
        -
          in: query
          name: per_page
          description: 'The limit per page. If this option is provided, `links` and `meta` will exist in the response with further information about the full list.`0` is the same as not limiting. Default is  300.'
          example: 3
          required: false
          schema:
            type: string
            description: 'The limit per page. If this option is provided, `links` and `meta` will exist in the response with further information about the full list.`0` is the same as not limiting. Default is  300.'
            example: 3
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 195
                      name: 'South Africa'
                      country_code: ZAF
                    -
                      id: 243
                      name: 'South Sudan'
                      country_code: SSD
                  links:
                    first: 'https://api.collivery.co.za/v3/country?page=1'
                    last: 'https://api.collivery.co.za/v3/country?page=1'
                    prev: null
                    next: null
                  meta:
                    current_page: 1
                    from: 1
                    last_page: 1
                    links:
                      -
                        url: null
                        label: '&laquo; Previous'
                        active: false
                      -
                        url: 'https://api.collivery.co.za/v3/country?page=1'
                        label: '1'
                        active: true
                      -
                        url: null
                        label: 'Next &raquo;'
                        active: false
                    path: 'https://api.collivery.co.za/v3/country'
                    per_page: 3
                    to: 2
                    total: 2
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 195
                        name: 'South Africa'
                        country_code: ZAF
                      -
                        id: 243
                        name: 'South Sudan'
                        country_code: SSD
                    items:
                      type: object
                  links:
                    type: object
                    example:
                      first: 'https://api.collivery.co.za/v3/country?page=1'
                      last: 'https://api.collivery.co.za/v3/country?page=1'
                      prev: null
                      next: null
                  meta:
                    type: object
                    example:
                      current_page: 1
                      from: 1
                      last_page: 1
                      links:
                        -
                          url: null
                          label: '&laquo; Previous'
                          active: false
                        -
                          url: 'https://api.collivery.co.za/v3/country?page=1'
                          label: '1'
                          active: true
                        -
                          url: null
                          label: 'Next &raquo;'
                          active: false
                      path: 'https://api.collivery.co.za/v3/country'
                      per_page: 3
                      to: 2
                      total: 2
      tags:
        - '10. Country'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                search:
                  type: required
                  description: 'Must be at least 3 characters.'
                  example: south
  /v3/towns:
    get:
      summary: Index
      description: 'Show all towns for a country or search towns.'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: query
          name: page
          description: 'Page number to return.'
          example: 1
          required: false
          schema:
            type: string
            description: 'Page number to return.'
            example: 1
        -
          in: query
          name: per_page
          description: 'The limit per page. If this option is provided, `links` and `meta` will exist in the response with further information about the full list.`0` is the same as not limiting. Default is  300.'
          example: 3
          required: false
          schema:
            type: string
            description: 'The limit per page. If this option is provided, `links` and `meta` will exist in the response with further information about the full list.`0` is the same as not limiting. Default is  300.'
            example: 3
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 147
                      name: Johannesburg
                      other_name: ''
                      province: GP
                      latitude: -26.204103
                      longitude: 28.047305
                      category: Major
                      town_surcharge: 0
                    -
                      id: 13523
                      name: 'Johannesburg South'
                      other_name: ''
                      province: GP
                      latitude: -26.273866
                      longitude: 27.995186
                      category: Major
                      town_surcharge: 0
                    -
                      id: 14142
                      name: 'Whiteridge, Johannesburg'
                      other_name: ''
                      province: GP
                      latitude: -26.162219
                      longitude: 27.950016
                      category: Major
                      town_surcharge: 0
                  links:
                    first: 'https://api.collivery.co.za/v3/towns?page=1'
                    last: 'https://api.collivery.co.za/v3/towns?page=1'
                    prev: null
                    next: null
                  meta:
                    current_page: 1
                    from: 1
                    last_page: 1
                    links:
                      -
                        url: null
                        label: '&laquo; Previous'
                        active: false
                      -
                        url: 'https://api.collivery.co.za/v3/towns?page=1'
                        label: '1'
                        active: true
                      -
                        url: null
                        label: 'Next &raquo;'
                        active: false
                    path: 'https://api.collivery.co.za/v3/towns'
                    per_page: 3
                    to: 3
                    total: 3
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 147
                        name: Johannesburg
                        other_name: ''
                        province: GP
                        latitude: -26.204103
                        longitude: 28.047305
                        category: Major
                        town_surcharge: 0
                      -
                        id: 13523
                        name: 'Johannesburg South'
                        other_name: ''
                        province: GP
                        latitude: -26.273866
                        longitude: 27.995186
                        category: Major
                        town_surcharge: 0
                      -
                        id: 14142
                        name: 'Whiteridge, Johannesburg'
                        other_name: ''
                        province: GP
                        latitude: -26.162219
                        longitude: 27.950016
                        category: Major
                        town_surcharge: 0
                    items:
                      type: object
                  links:
                    type: object
                    example:
                      first: 'https://api.collivery.co.za/v3/towns?page=1'
                      last: 'https://api.collivery.co.za/v3/towns?page=1'
                      prev: null
                      next: null
                  meta:
                    type: object
                    example:
                      current_page: 1
                      from: 1
                      last_page: 1
                      links:
                        -
                          url: null
                          label: '&laquo; Previous'
                          active: false
                        -
                          url: 'https://api.collivery.co.za/v3/towns?page=1'
                          label: '1'
                          active: true
                        -
                          url: null
                          label: 'Next &raquo;'
                          active: false
                      path: 'https://api.collivery.co.za/v3/towns'
                      per_page: 3
                      to: 3
                      total: 3
      tags:
        - '11. Towns'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                country:
                  type: The
                  description: 'three letter abbreviation (_ISO 3166_) for the country. Defaults to ZAF.'
                  example: ZAF
                province:
                  type: Filter
                  description: 'by province name. Valid values are: Eastern Cape, Free State, Gauteng, KwaZulu Natal, Limpopo, Mpumalanga,Northern Cape, North West, Western Cape.'
                  example: Gauteng
                search:
                  type: Search
                  description: 'by town name.'
                  example: Joh
  /v3/suburbs:
    get:
      summary: Index
      description: 'Show all suburbs for a town or country or search suburbs.'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: query
          name: page
          description: 'Page number to return.'
          example: 1
          required: false
          schema:
            type: string
            description: 'Page number to return.'
            example: 1
        -
          in: query
          name: per_page
          description: 'The limit per page. If this option is provided, `links` and `meta` will exist in the response with further information about the full list.`0` is the same as not limiting. Default is  2000.'
          example: 3
          required: false
          schema:
            type: string
            description: 'The limit per page. If this option is provided, `links` and `meta` will exist in the response with further information about the full list.`0` is the same as not limiting. Default is  2000.'
            example: 3
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 1936
                      name: Selby
                      latitude: -26.2125
                      longitude: 28.0375
                      town:
                        id: 147
                        name: Johannesburg
                        other_name: ''
                        province: GP
                        latitude: -26.204103
                        longitude: 28.047305
                        category: Major
                        town_surcharge: 0
                      postal_code: '2001'
                      box_postal_code: null
                    -
                      id: 2214
                      name: Ussher
                      latitude: -26.2125
                      longitude: 28.0375
                      town:
                        id: 147
                        name: Johannesburg
                        other_name: ''
                        province: GP
                        latitude: -26.204103
                        longitude: 28.047305
                        category: Major
                        town_surcharge: 0
                      postal_code: '2001'
                      box_postal_code: null
                    -
                      id: 9160
                      name: South
                      latitude: -26.215896
                      longitude: 28.041925
                      town:
                        id: 147
                        name: Johannesburg
                        other_name: ''
                        province: GP
                        latitude: -26.204103
                        longitude: 28.047305
                        category: Major
                        town_surcharge: 0
                      postal_code: '2001'
                      box_postal_code: ''
                    -
                      id: 2260
                      name: 'Village Main'
                      latitude: -26.2125
                      longitude: 28.045799
                      town:
                        id: 147
                        name: Johannesburg
                        other_name: ''
                        province: GP
                        latitude: -26.204103
                        longitude: 28.047305
                        category: Major
                        town_surcharge: 0
                      postal_code: '2001'
                      box_postal_code: null
                    -
                      id: 1901
                      name: 'Salisbury Claims'
                      latitude: -26.2125
                      longitude: 28.045799
                      town:
                        id: 147
                        name: Johannesburg
                        other_name: ''
                        province: GP
                        latitude: -26.204103
                        longitude: 28.047305
                        category: Major
                        town_surcharge: 0
                      postal_code: '2001'
                      box_postal_code: null
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 1936
                        name: Selby
                        latitude: -26.2125
                        longitude: 28.0375
                        town:
                          id: 147
                          name: Johannesburg
                          other_name: ''
                          province: GP
                          latitude: -26.204103
                          longitude: 28.047305
                          category: Major
                          town_surcharge: 0
                        postal_code: '2001'
                        box_postal_code: null
                      -
                        id: 2214
                        name: Ussher
                        latitude: -26.2125
                        longitude: 28.0375
                        town:
                          id: 147
                          name: Johannesburg
                          other_name: ''
                          province: GP
                          latitude: -26.204103
                          longitude: 28.047305
                          category: Major
                          town_surcharge: 0
                        postal_code: '2001'
                        box_postal_code: null
                      -
                        id: 9160
                        name: South
                        latitude: -26.215896
                        longitude: 28.041925
                        town:
                          id: 147
                          name: Johannesburg
                          other_name: ''
                          province: GP
                          latitude: -26.204103
                          longitude: 28.047305
                          category: Major
                          town_surcharge: 0
                        postal_code: '2001'
                        box_postal_code: ''
                      -
                        id: 2260
                        name: 'Village Main'
                        latitude: -26.2125
                        longitude: 28.045799
                        town:
                          id: 147
                          name: Johannesburg
                          other_name: ''
                          province: GP
                          latitude: -26.204103
                          longitude: 28.047305
                          category: Major
                          town_surcharge: 0
                        postal_code: '2001'
                        box_postal_code: null
                      -
                        id: 1901
                        name: 'Salisbury Claims'
                        latitude: -26.2125
                        longitude: 28.045799
                        town:
                          id: 147
                          name: Johannesburg
                          other_name: ''
                          province: GP
                          latitude: -26.204103
                          longitude: 28.047305
                          category: Major
                          town_surcharge: 0
                        postal_code: '2001'
                        box_postal_code: null
                    items:
                      type: object
      tags:
        - '12. Suburbs'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                town_id:
                  type: Required
                  description: 'without `country`. Can be obtained from `/towns/` endpoint.'
                  example: '147'
                country:
                  type: Required
                  description: 'without `town_id`. The three letter abbreviation (_ISO 3166_) for the country. Defaults to ZAF.'
                  example: ZAF
                latitude:
                  type: A
                  description: 'latitude to search for the closest 5 suburbs. Required if `longitude` is provided.'
                  example: '-26.212500'
                longitude:
                  type: A
                  description: 'longitude to search for the closest 5 suburbs. Required if `latitude` is provided.'
                  example: '28.037500'
                postal_code:
                  type: A
                  description: 'postal code to limit the result set to.'
                  example: '2000'
                postal_code_range:
                  type: The
                  description: 'range within which to match the postal codes. For example the 2000 with a range of 100 matches postal codes 1900 to 2100. Defaults to 0 (ie. exact postal code match)'
                  example: '100'
                postal_code_type:
                  type: The
                  description: 'type of postal code to limit matches to. `street` or `box` are allowed. Defaults to a match on either.'
                  example: null
                search:
                  type: Search
                  description: 'by suburb name.'
                  example: null
  '/v3/suburbs/{id}':
    get:
      summary: Show
      description: 'Show details of one particular suburb. Loaded with Town details included'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 1936
                    name: Selby
                    latitude: -26.2125
                    longitude: 28.0375
                    town:
                      id: 147
                      name: Johannesburg
                      other_name: ''
                      province: GP
                      latitude: -26.204103
                      longitude: 28.047305
                      category: Major
                      town_surcharge: 0
                    postal_code: '2001'
                    box_postal_code: null
                properties:
                  data:
                    type: object
                    example:
                      id: 1936
                      name: Selby
                      latitude: -26.2125
                      longitude: 28.0375
                      town:
                        id: 147
                        name: Johannesburg
                        other_name: ''
                        province: GP
                        latitude: -26.204103
                        longitude: 28.047305
                        category: Major
                        town_surcharge: 0
                      postal_code: '2001'
                      box_postal_code: null
      tags:
        - '12. Suburbs'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                suburb:
                  type: string
                  description: ''
                  example: null
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the suburb.'
        example: -1
        required: true
        schema:
          type: integer
      -
        in: path
        name: suburb
        description: 'The suburb id.'
        example: 1936.0
        required: true
        schema:
          type: number
  /v3/town_suburb_search:
    get:
      summary: Search
      description: 'Search by name for suburbs and/or town. Results are returned in order of most populated areas by default'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      formatted_result: 'Westcliff, Johannesburg, GP'
                      suburb:
                        id: 2336
                        name: Westcliff
                        latitude: -26.170799
                        longitude: 28.0292
                        town:
                          id: 147
                          name: Johannesburg
                          other_name: ''
                          province: GP
                          latitude: -26.204103
                          longitude: 28.047305
                          category: Major
                          town_surcharge: 0
                        postal_code: '2193'
                        box_postal_code: '2193'
                    -
                      formatted_result: 'Westcliff, Chatsworth, KZN'
                      suburb:
                        id: 3721
                        name: Westcliff
                        latitude: -29.9125
                        longitude: 30.887501
                        town:
                          id: 13519
                          name: Chatsworth
                          other_name: ''
                          province: KZN
                          latitude: -29.927024
                          longitude: 30.884343
                          category: Major
                          town_surcharge: 0
                        postal_code: '7200'
                        box_postal_code: '7200'
                properties:
                  data:
                    type: array
                    example:
                      -
                        formatted_result: 'Westcliff, Johannesburg, GP'
                        suburb:
                          id: 2336
                          name: Westcliff
                          latitude: -26.170799
                          longitude: 28.0292
                          town:
                            id: 147
                            name: Johannesburg
                            other_name: ''
                            province: GP
                            latitude: -26.204103
                            longitude: 28.047305
                            category: Major
                            town_surcharge: 0
                          postal_code: '2193'
                          box_postal_code: '2193'
                      -
                        formatted_result: 'Westcliff, Chatsworth, KZN'
                        suburb:
                          id: 3721
                          name: Westcliff
                          latitude: -29.9125
                          longitude: 30.887501
                          town:
                            id: 13519
                            name: Chatsworth
                            other_name: ''
                            province: KZN
                            latitude: -29.927024
                            longitude: 30.884343
                            category: Major
                            town_surcharge: 0
                          postal_code: '7200'
                          box_postal_code: '7200'
                    items:
                      type: object
      tags:
        - '12. Suburbs'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                search_text:
                  type: required
                  description: 'The search text to use. Min 3 characters.'
                  example: westcli
  /v3/service_types:
    get:
      summary: Index
      description: 'Get available service types with delivery days'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 1
                      code: SDX
                      text: 'Same Day'
                      description: 'Will be delivered same day at times specified'
                      delivery_days: 0
                    -
                      id: 2
                      code: ONX
                      text: 'Next Day'
                      description: 'Will be delivered next day at times specified'
                      delivery_days: 1
                    -
                      id: 5
                      code: ECO
                      text: 'Road Freight Express'
                      description: 'Will be delivered within 2 working days'
                      delivery_days: 2
                    -
                      id: 3
                      code: FRT
                      text: 'Road Freight'
                      description: 'For heavy cargo. Delivery within 3 working days'
                      delivery_days: 3
                    -
                      id: 4
                      code: BLK
                      text: 'Bulk services'
                      description: 'For large consignments. Delivery within 3 working days'
                      delivery_days: 3
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        code: SDX
                        text: 'Same Day'
                        description: 'Will be delivered same day at times specified'
                        delivery_days: 0
                      -
                        id: 2
                        code: ONX
                        text: 'Next Day'
                        description: 'Will be delivered next day at times specified'
                        delivery_days: 1
                      -
                        id: 5
                        code: ECO
                        text: 'Road Freight Express'
                        description: 'Will be delivered within 2 working days'
                        delivery_days: 2
                      -
                        id: 3
                        code: FRT
                        text: 'Road Freight'
                        description: 'For heavy cargo. Delivery within 3 working days'
                        delivery_days: 3
                      -
                        id: 4
                        code: BLK
                        text: 'Bulk services'
                        description: 'For large consignments. Delivery within 3 working days'
                        delivery_days: 3
                    items:
                      type: object
      tags:
        - '13. Service Types'
  '/v3/service_type/{id}':
    get:
      summary: Show
      description: 'Get specific service type by id'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 2
                    code: ONX
                    text: 'Next Day'
                    description: 'Will be delivered next day at times specified'
                    delivery_days: 1
                properties:
                  data:
                    type: object
                    example:
                      id: 2
                      code: ONX
                      text: 'Next Day'
                      description: 'Will be delivered next day at times specified'
                      delivery_days: 1
      tags:
        - '13. Service Types'
    parameters:
      -
        in: path
        name: id
        description: ''
        example: 2
        required: true
        schema:
          type: integer
  /v3/location_types:
    get:
      summary: Index
      description: ''
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: query
          name: search
          description: 'An optional search string matched against the location types names.'
          example: business
          required: false
          schema:
            type: string
            description: 'An optional search string matched against the location types names.'
            example: business
        -
          in: query
          name: surcharge_only
          description: '{include, exclude} `include` will return only surchargeable location types, `exclude` will return only non-surchargeable location types.'
          example: null
          required: false
          schema:
            type: string
            description: '{include, exclude} `include` will return only surchargeable location types, `exclude` will return only non-surchargeable location types.'
            example: null
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 1
                      name: 'Business Premises'
                      surcharge: false
                      surcharge_amount: 0
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        name: 'Business Premises'
                        surcharge: false
                        surcharge_amount: 0
                    items:
                      type: object
      tags:
        - '14. Location Types'
  /v3/battery_types:
    get:
      summary: "Index\nGet all battery types."
      description: "Get all battery types, to be used when booking a waybill.\nShould be aggressively cached, or even statically defined."
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: pi_965
                      name: 'PI 965'
                      description: 'Lithium Ion batteries packaged / sent on their own.'
                    -
                      id: pi_966
                      name: 'PI 966'
                      description: 'Lithium Ion batteries WITH equipment. (Same box, but NOT inside the item)'
                    -
                      id: pi_967
                      name: 'PI 967'
                      description: 'Lithium Ion batteries contained IN equipment. (Not removed from the item)'
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: pi_965
                        name: 'PI 965'
                        description: 'Lithium Ion batteries packaged / sent on their own.'
                      -
                        id: pi_966
                        name: 'PI 966'
                        description: 'Lithium Ion batteries WITH equipment. (Same box, but NOT inside the item)'
                      -
                        id: pi_967
                        name: 'PI 967'
                        description: 'Lithium Ion batteries contained IN equipment. (Not removed from the item)'
                    items:
                      type: object
      tags:
        - '15. Battery Types'
  /v3/parcel_types:
    get:
      summary: Index
      description: "Get all parcel types, to be used when booking a waybill.\nShould be aggressively cached, or even statically defined."
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                example:
                  -
                    id: 1
                    type_text: Envelope
                    type_description: 'Documents less than 2Kg and A4 size'
                  -
                    id: 2
                    type_text: Package
                    type_description: 'Parcel Exceeding 2Kg and any dimension above 20cm'
                  -
                    id: 3
                    type_text: 'Tender Document'
                    type_description: 'Documents for lodging Tenders'
      tags:
        - '16. Parcel Types'
  /v3/terms_and_conditions:
    get:
      summary: Index
      description: ''
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    Definitions:
                      -
                        key: 1
                        value: '“MDS” shall mean MDS Collivery (Pty) Ltd, its staff, agents or sub-contractors.'
                      -
                        key: 2
                        value: '“Goods” shall mean any documents, parcels or freight accepted for carriage by MDS.'
                      -
                        key: 3
                        value: '“Carriage” shall mean the transport of goods from one point to another by MDS (the “Carrier”) using means it deems suitable.'
                      -
                        key: 4
                        value: '“Client” shall mean the party responsible for the payment for the carriage of the goods.'
                      -
                        key: 5
                        value: '“Owner” shall mean the party who has a financial interest in the goods.'
                      -
                        key: 6
                        value: '“Parties” shall mean the Client, the Owner, the sender, the receiver or the Carrier, as the context may require.'
                      -
                        key: 7
                        value: '“Waybill” is the accompanying document which identifies the Client, the number and weight of packages involved and instructions regarding the time and place of both the collection and delivery, copies of which are signed by the parties and serve as proof of handover of the goods from one party to the other.'
                    'Terms and Conditions':
                      -
                        key: 1
                        value: 'MDS is not a public/common carrier and may refuse to accept any goods for carriage without providing reason for such refusal.'
                      -
                        key: 2
                        value: 'By using our collection and delivery service you agree to be bound by our terms and conditions, as set out in this document, and you acknowledge that our terms and conditions will constitute a valid, binding and enforceable agreement.'
                      -
                        key: 3
                        value: 'These terms & conditions shall apply to all transactions concluded by or on the Client''s behalf on our website. (www.collivery.co.za or collivery.net).'
                      -
                        key: 4
                        value: 'A certificate issued by an administrator of our website shall constitute prima facie proof of any fact related to our website, including (but not limited to) which version of the terms and conditions that govern a particular dispute and the content that was published or functionality was available on our website at a specific point in time.'
                      -
                        key: 5
                        value: 'For purposes of Section 22(2) of the Electronic Communications and Transactions Act, 25 of 2002 you accept that the agreement will be regarded as concluded at Randburg, Gauteng Province.'
                      -
                        key: 6
                        value: 'All matters arising from this agreement, its validity, existence or termination shall be determined in accordance with the laws of the time of the Republic of South Africa, and you hereby submit to the jurisdiction of the Magistrates'' Court of Johannesburg/Randburg.'
                      -
                        key: 7
                        value: 'MDS'' prices are set out in its price list or are as negotiated or quoted to the Client and are subject to review from time to time.'
                      -
                        key: 8
                        value: 'Prices quoted are based on the information provided by the Client. Should this information be found to be incorrect, MDS has the right to adjust the prices based on the correct information while continuing with the carriage.'
                      -
                        key: 9
                        value: 'Any credit limit, invoice frequency, or payment terms set by MDS shall be at its sole and absolute discretion and may be changed by MDS depending on circumstances that MDS believes justifies such changes.'
                      -
                        key: 'The Customer Acknowledges That'
                        value:
                          -
                            key: 1
                            value: 'In terms of the Disaster Management Act 57 of 2002 ("the Act") and the current Alert Level Regulations thereof ("the Regulations"), MDS Collivery can only deliver the goods to the Customer in relation to goods and services as defined in the Regulations ("the allowed purpose")'
                          -
                            key: 2
                            value: 'MDS Collivery is delivering the goods to the Customer on the strict understanding the goods are purchased and will be used and/or on-sold by the Customer for the allowed purpose.  The Customer indemnifies and holds(MDS Collivery, its affiliates and their respective personnel harmless from and against any liability and losses arising from or in connection with the Customer''s failure to purchase the goods in accordance with the provisions of the Act and the Regulations.'
                    Liability:
                      -
                        key: 'MDS'' liability to the Client in respect of goods in its care:'
                        value:
                          -
                            key: 1
                            value: 'Will terminate once proof of delivery has been obtained from the receiving party at the address stated on the waybill.'
                          -
                            key: 2
                            value: 'Shall be limited to an amount of R1 000.00 (One Thousand Rand).'
                          -
                            key: 3
                            value: 'Shall exclude indirect and consequential damages.'
                          -
                            key: 4
                            value: 'Where MDS has agreed to accept the additional risk of carriage, such risk shall not exceed an amount of R10 000.00 (Ten thousand Rand) relating to any one waybill. This risk relates to the loss of goods, and does not cover damage resulting from inadequate packaging of the items by you or your agents. This acceptance of risk relates exclusively to the direct cost of replacement of goods, and shall in no way cover any indirect or consequential losses.'
                      -
                        key: 2
                        value: 'Any claim for loss or damage should be lodged within 7 days of loss by completing the on-line claim form on the customer interface. Any claim lodged after such date will not be considered.'
                      -
                        key: 3
                        value: 'Failure to supply necessary documents requested to support the claim will result in the claim not being considered.'
                      -
                        key: 4
                        value: 'Valid Claims will only be paid by MDS in respect of any consignment after the Client has paid all outstanding Freight Charges in respect of that consignment and where the Client’s account with MDS has been paid in accordance with the credit terms extended.'
                      -
                        key: 5
                        value: 'Freight charges relating to the consignment covered by the Risk Cover shall not be included in the calculation of any amount payable under the risk cover offered by MDS.'
                      -
                        key: 6
                        value: 'Where a claim has been paid in full for goods damaged, MDS reserves the right to take possession of the goods as salvage and to dispose of such goods as it sees fit.'
                      -
                        key: 7
                        value: 'MDS shall not be liable for failure to fulfil its obligations if such failure is due to war, civil disobedience, industrial dispute, acts of God, or any event beyond MDS'' reasonable control.'
                      -
                        key: 8
                        value: 'If MDS is unable for any reason to effect delivery of the goods, all reasonable steps will be taken to return the goods to the Client. The Client will, however, be responsible for the costs of carriage, attempted delivery and return of the goods. Any failure to deliver or any late deliveries may not be used as motivation for non-payment for that delivery.'
                      -
                        key: 9
                        value: 'MDS will not be responsible for any fulfilment of Customs formalities or payments. However, MDS will assist the Client as far as possible, on condition that such assistance will be rendered at the sole risk and responsibility of the Client and the Client undertakes to indemnify MDS against any claims in this respect.'
                      -
                        key: 'The Client warrants that:'
                        value:
                          -
                            key: 1
                            value: 'The goods are accurately described on the waybill.'
                          -
                            key: 2
                            value: 'The waybill is printed and affixed to the parcel.'
                          -
                            key: 3
                            value: 'The goods are adequately packed and accurately addressed on the system generated waybill to enable delivery to take place with ordinary care and handling.'
                          -
                            key: 4
                            value: 'The Client has to the best of its knowledge and belief, complied with all laws, rules and regulations regarding, the carriage and that the goods are not prohibited by Government regulation.'
                      -
                        key: 10
                        value: 'The Client agrees to MDS'' terms of payment and agrees that MDS shall be entitled to suspend, delay and/or cancel collection and/or delivery of any consignment(s) in the event of non payment, or to hold the consignments until such time as the account has been settled in full or to MDS'' satisfaction.'
                      -
                        key: 11
                        value: 'Failure to pay your account within 30 (thirty) days from the date of delivery of a tax invoice will attract interest in terms of the National Credit Act.'
                      -
                        key: 12
                        value: 'Disputes and account queries must be made in writing to the accounts department within 7 (seven) days after receipt of invoice with specific details of the dispute or query.'
                      -
                        key: 13
                        value: 'You will be liable for all legal costs incurred by MDS on a scale as between attorney and Client, (including, but not limited to Sheriffs fees, collection commission and tracing agent''s fees) in the event of MDS having to institute legal action in order to secure payment of any outstanding account.'
                    'Risk Cover Exclusions':
                      -
                        key: 'MDS will not be liable for any claims made by Client in any of the following circumstances:'
                        value:
                          -
                            key: 1
                            value: 'Where the Client fails to submit the Claim to MDS within the relevant time limits.'
                          -
                            key: 2
                            value: 'Where MDS is in possession of an unendorsed proof of delivery form for the consignment.'
                          -
                            key: 3
                            value: "Where the Goods consigned are Excluded Goods, where “Excluded Goods” means each of the following items:- \n            Money, bullion, credit cards, pre-paid cards, jewelry, watches, precious stones, furs, treasury notes, securities; stamps, patterns or manuscripts, plans, designs, explosives and all livestock or plants, guns, ammunition, hazardous goods and dangerous goods / materials, negotiable instruments, gemstones, works of art, securities, drugs, all framed pictures; artwork, solar panels or parts, mirrors and negotiable instruments, including collectible coins, cellphones, furniture and antiques, including fossils or fossil pieces, motor vehicle panels and body parts including windscreens are carried entirely at your risk. Second - hand goods that have not been declared as such to MDS, who reserves the right to inspect second hand goods before acceptance and to delay the transit time by one day to effect such inspection."
                          -
                            key: 4
                            value: 'Where MDS in its reasonable opinion considers the Packaging of the Goods to be inadequate for rail, air or road transportation. In the event of a claim for damage, the receiver must retain all inner and outer packaging materials as well as the damaged goods. Failure by the receiver to retain the original goods and packaging at the original delivery location or the failure to make the delivered goods available for inspection will invalidate the claim.'
                          -
                            key: 5
                            value: 'Where the Goods are determined by MDS to have been defective prior to the Carriage.'
                          -
                            key: 6
                            value: 'Where damage, mechanical failure or other operational defect in the Goods could not, in the reasonable opinion of MDS, have been caused by the Carriage.'
                          -
                            key: 7
                            value: 'Where MDS fails, delays or is unable to carry out its obligations under this contract due to strikes and / or lockouts (whether of MDS'' own employees or those of others and whether or not MDS could have avoided the same by acceding to the demands of the employees responsible for such action), acts of God, war, terrorism, fire, flood, embargo, litigation, acts of government or any agency instrumentality or any political subdivision thereof or any other cause beyond the control MDS.'
                          -
                            key: 8
                            value: 'Where the goods have been lost or damaged as a result of derailments, collisions, overturning or any similar incident.'
                          -
                            key: 9
                            value: 'Where the Goods have not been packed in the original manufacturer''s packaging or the equivalent.'
                          -
                            key: 10
                            value: 'Where the Delivery Address is a post office box, a roadside drop or postal mail box.'
                    'Amendments to Terms and Conditions of Contract ':
                      -
                        key: 1
                        value: 'MDS reserves the right to amend these terms and conditions of contract from time to time, without prior notice to the Customer.'
                  last_updated: 1605175290
                properties:
                  data:
                    type: object
                    example:
                      Definitions:
                        -
                          key: 1
                          value: '“MDS” shall mean MDS Collivery (Pty) Ltd, its staff, agents or sub-contractors.'
                        -
                          key: 2
                          value: '“Goods” shall mean any documents, parcels or freight accepted for carriage by MDS.'
                        -
                          key: 3
                          value: '“Carriage” shall mean the transport of goods from one point to another by MDS (the “Carrier”) using means it deems suitable.'
                        -
                          key: 4
                          value: '“Client” shall mean the party responsible for the payment for the carriage of the goods.'
                        -
                          key: 5
                          value: '“Owner” shall mean the party who has a financial interest in the goods.'
                        -
                          key: 6
                          value: '“Parties” shall mean the Client, the Owner, the sender, the receiver or the Carrier, as the context may require.'
                        -
                          key: 7
                          value: '“Waybill” is the accompanying document which identifies the Client, the number and weight of packages involved and instructions regarding the time and place of both the collection and delivery, copies of which are signed by the parties and serve as proof of handover of the goods from one party to the other.'
                      'Terms and Conditions':
                        -
                          key: 1
                          value: 'MDS is not a public/common carrier and may refuse to accept any goods for carriage without providing reason for such refusal.'
                        -
                          key: 2
                          value: 'By using our collection and delivery service you agree to be bound by our terms and conditions, as set out in this document, and you acknowledge that our terms and conditions will constitute a valid, binding and enforceable agreement.'
                        -
                          key: 3
                          value: 'These terms & conditions shall apply to all transactions concluded by or on the Client''s behalf on our website. (www.collivery.co.za or collivery.net).'
                        -
                          key: 4
                          value: 'A certificate issued by an administrator of our website shall constitute prima facie proof of any fact related to our website, including (but not limited to) which version of the terms and conditions that govern a particular dispute and the content that was published or functionality was available on our website at a specific point in time.'
                        -
                          key: 5
                          value: 'For purposes of Section 22(2) of the Electronic Communications and Transactions Act, 25 of 2002 you accept that the agreement will be regarded as concluded at Randburg, Gauteng Province.'
                        -
                          key: 6
                          value: 'All matters arising from this agreement, its validity, existence or termination shall be determined in accordance with the laws of the time of the Republic of South Africa, and you hereby submit to the jurisdiction of the Magistrates'' Court of Johannesburg/Randburg.'
                        -
                          key: 7
                          value: 'MDS'' prices are set out in its price list or are as negotiated or quoted to the Client and are subject to review from time to time.'
                        -
                          key: 8
                          value: 'Prices quoted are based on the information provided by the Client. Should this information be found to be incorrect, MDS has the right to adjust the prices based on the correct information while continuing with the carriage.'
                        -
                          key: 9
                          value: 'Any credit limit, invoice frequency, or payment terms set by MDS shall be at its sole and absolute discretion and may be changed by MDS depending on circumstances that MDS believes justifies such changes.'
                        -
                          key: 'The Customer Acknowledges That'
                          value:
                            -
                              key: 1
                              value: 'In terms of the Disaster Management Act 57 of 2002 ("the Act") and the current Alert Level Regulations thereof ("the Regulations"), MDS Collivery can only deliver the goods to the Customer in relation to goods and services as defined in the Regulations ("the allowed purpose")'
                            -
                              key: 2
                              value: 'MDS Collivery is delivering the goods to the Customer on the strict understanding the goods are purchased and will be used and/or on-sold by the Customer for the allowed purpose.  The Customer indemnifies and holds(MDS Collivery, its affiliates and their respective personnel harmless from and against any liability and losses arising from or in connection with the Customer''s failure to purchase the goods in accordance with the provisions of the Act and the Regulations.'
                      Liability:
                        -
                          key: 'MDS'' liability to the Client in respect of goods in its care:'
                          value:
                            -
                              key: 1
                              value: 'Will terminate once proof of delivery has been obtained from the receiving party at the address stated on the waybill.'
                            -
                              key: 2
                              value: 'Shall be limited to an amount of R1 000.00 (One Thousand Rand).'
                            -
                              key: 3
                              value: 'Shall exclude indirect and consequential damages.'
                            -
                              key: 4
                              value: 'Where MDS has agreed to accept the additional risk of carriage, such risk shall not exceed an amount of R10 000.00 (Ten thousand Rand) relating to any one waybill. This risk relates to the loss of goods, and does not cover damage resulting from inadequate packaging of the items by you or your agents. This acceptance of risk relates exclusively to the direct cost of replacement of goods, and shall in no way cover any indirect or consequential losses.'
                        -
                          key: 2
                          value: 'Any claim for loss or damage should be lodged within 7 days of loss by completing the on-line claim form on the customer interface. Any claim lodged after such date will not be considered.'
                        -
                          key: 3
                          value: 'Failure to supply necessary documents requested to support the claim will result in the claim not being considered.'
                        -
                          key: 4
                          value: 'Valid Claims will only be paid by MDS in respect of any consignment after the Client has paid all outstanding Freight Charges in respect of that consignment and where the Client’s account with MDS has been paid in accordance with the credit terms extended.'
                        -
                          key: 5
                          value: 'Freight charges relating to the consignment covered by the Risk Cover shall not be included in the calculation of any amount payable under the risk cover offered by MDS.'
                        -
                          key: 6
                          value: 'Where a claim has been paid in full for goods damaged, MDS reserves the right to take possession of the goods as salvage and to dispose of such goods as it sees fit.'
                        -
                          key: 7
                          value: 'MDS shall not be liable for failure to fulfil its obligations if such failure is due to war, civil disobedience, industrial dispute, acts of God, or any event beyond MDS'' reasonable control.'
                        -
                          key: 8
                          value: 'If MDS is unable for any reason to effect delivery of the goods, all reasonable steps will be taken to return the goods to the Client. The Client will, however, be responsible for the costs of carriage, attempted delivery and return of the goods. Any failure to deliver or any late deliveries may not be used as motivation for non-payment for that delivery.'
                        -
                          key: 9
                          value: 'MDS will not be responsible for any fulfilment of Customs formalities or payments. However, MDS will assist the Client as far as possible, on condition that such assistance will be rendered at the sole risk and responsibility of the Client and the Client undertakes to indemnify MDS against any claims in this respect.'
                        -
                          key: 'The Client warrants that:'
                          value:
                            -
                              key: 1
                              value: 'The goods are accurately described on the waybill.'
                            -
                              key: 2
                              value: 'The waybill is printed and affixed to the parcel.'
                            -
                              key: 3
                              value: 'The goods are adequately packed and accurately addressed on the system generated waybill to enable delivery to take place with ordinary care and handling.'
                            -
                              key: 4
                              value: 'The Client has to the best of its knowledge and belief, complied with all laws, rules and regulations regarding, the carriage and that the goods are not prohibited by Government regulation.'
                        -
                          key: 10
                          value: 'The Client agrees to MDS'' terms of payment and agrees that MDS shall be entitled to suspend, delay and/or cancel collection and/or delivery of any consignment(s) in the event of non payment, or to hold the consignments until such time as the account has been settled in full or to MDS'' satisfaction.'
                        -
                          key: 11
                          value: 'Failure to pay your account within 30 (thirty) days from the date of delivery of a tax invoice will attract interest in terms of the National Credit Act.'
                        -
                          key: 12
                          value: 'Disputes and account queries must be made in writing to the accounts department within 7 (seven) days after receipt of invoice with specific details of the dispute or query.'
                        -
                          key: 13
                          value: 'You will be liable for all legal costs incurred by MDS on a scale as between attorney and Client, (including, but not limited to Sheriffs fees, collection commission and tracing agent''s fees) in the event of MDS having to institute legal action in order to secure payment of any outstanding account.'
                      'Risk Cover Exclusions':
                        -
                          key: 'MDS will not be liable for any claims made by Client in any of the following circumstances:'
                          value:
                            -
                              key: 1
                              value: 'Where the Client fails to submit the Claim to MDS within the relevant time limits.'
                            -
                              key: 2
                              value: 'Where MDS is in possession of an unendorsed proof of delivery form for the consignment.'
                            -
                              key: 3
                              value: "Where the Goods consigned are Excluded Goods, where “Excluded Goods” means each of the following items:- \n            Money, bullion, credit cards, pre-paid cards, jewelry, watches, precious stones, furs, treasury notes, securities; stamps, patterns or manuscripts, plans, designs, explosives and all livestock or plants, guns, ammunition, hazardous goods and dangerous goods / materials, negotiable instruments, gemstones, works of art, securities, drugs, all framed pictures; artwork, solar panels or parts, mirrors and negotiable instruments, including collectible coins, cellphones, furniture and antiques, including fossils or fossil pieces, motor vehicle panels and body parts including windscreens are carried entirely at your risk. Second - hand goods that have not been declared as such to MDS, who reserves the right to inspect second hand goods before acceptance and to delay the transit time by one day to effect such inspection."
                            -
                              key: 4
                              value: 'Where MDS in its reasonable opinion considers the Packaging of the Goods to be inadequate for rail, air or road transportation. In the event of a claim for damage, the receiver must retain all inner and outer packaging materials as well as the damaged goods. Failure by the receiver to retain the original goods and packaging at the original delivery location or the failure to make the delivered goods available for inspection will invalidate the claim.'
                            -
                              key: 5
                              value: 'Where the Goods are determined by MDS to have been defective prior to the Carriage.'
                            -
                              key: 6
                              value: 'Where damage, mechanical failure or other operational defect in the Goods could not, in the reasonable opinion of MDS, have been caused by the Carriage.'
                            -
                              key: 7
                              value: 'Where MDS fails, delays or is unable to carry out its obligations under this contract due to strikes and / or lockouts (whether of MDS'' own employees or those of others and whether or not MDS could have avoided the same by acceding to the demands of the employees responsible for such action), acts of God, war, terrorism, fire, flood, embargo, litigation, acts of government or any agency instrumentality or any political subdivision thereof or any other cause beyond the control MDS.'
                            -
                              key: 8
                              value: 'Where the goods have been lost or damaged as a result of derailments, collisions, overturning or any similar incident.'
                            -
                              key: 9
                              value: 'Where the Goods have not been packed in the original manufacturer''s packaging or the equivalent.'
                            -
                              key: 10
                              value: 'Where the Delivery Address is a post office box, a roadside drop or postal mail box.'
                      'Amendments to Terms and Conditions of Contract ':
                        -
                          key: 1
                          value: 'MDS reserves the right to amend these terms and conditions of contract from time to time, without prior notice to the Customer.'
                  last_updated:
                    type: integer
                    example: 1605175290
      tags:
        - '17. Terms and Conditions'
  /v3/vendors:
    get:
      summary: Index
      description: 'Show all vendors, or all vendors of a certain type'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 1770
                      vendor_type: TAK_SUP
                      vendor_id: 32143451
                      verified: false
                      deleted: false
                    -
                      id: 1774
                      vendor_type: TAK_SUP
                      vendor_id: 32143451
                      verified: false
                      deleted: false
                    -
                      id: 1775
                      vendor_type: TAK_SUP
                      vendor_id: 32143451
                      verified: false
                      deleted: false
                    -
                      id: 1776
                      vendor_type: TAK_SUP
                      vendor_id: 32143451
                      verified: false
                      deleted: false
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 1770
                        vendor_type: TAK_SUP
                        vendor_id: 32143451
                        verified: false
                        deleted: false
                      -
                        id: 1774
                        vendor_type: TAK_SUP
                        vendor_id: 32143451
                        verified: false
                        deleted: false
                      -
                        id: 1775
                        vendor_type: TAK_SUP
                        vendor_id: 32143451
                        verified: false
                        deleted: false
                      -
                        id: 1776
                        vendor_type: TAK_SUP
                        vendor_id: 32143451
                        verified: false
                        deleted: false
                    items:
                      type: object
      tags:
        - '18. Vendors'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                vendor_type:
                  type: string
                  description: 'Must be one of <code>TAK_SUP</code>, <code>TAK_SEL</code>, or <code>SUP_SUP</code>.'
                  example: TAK_SUP
                waybill_id:
                  type: string
                  description: ''
                  example: null
                vendor_id:
                  type: string
                  description: 'optional The vendor id. **Required if vendor_type TAK_SEL**.'
                  example: '123152'
                id:
                  type: optional
                  description: 'The waybill id.'
                  example: null
    post:
      summary: Store
      description: ''
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 1770
                      vendor_type: TAK_SUP
                      vendor_id: 123152
                      verified: false
                      deleted: false
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 1770
                        vendor_type: TAK_SUP
                        vendor_id: 123152
                        verified: false
                        deleted: false
                    items:
                      type: object
      tags:
        - '18. Vendors'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                vendor_type:
                  type: string
                  description: 'The vendor type SUP_SUP, TAK_SUP or TAK_SEL.'
                  example: TAK_SUP
                vendor_id:
                  type: string
                  description: 'optional The vendor id. **Required if vendor_type TAK_SEL**.'
                  example: '123152'
              required:
                - vendor_type
  '/v3/vendors/{id}':
    put:
      summary: Update
      description: ''
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 1770
                      vendor_type: TAK_SUP
                      vendor_id: 123152
                      verified: false
                      deleted: false
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 1770
                        vendor_type: TAK_SUP
                        vendor_id: 123152
                        verified: false
                        deleted: false
                    items:
                      type: object
      tags:
        - '18. Vendors'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                vendor_type:
                  type: string
                  description: 'The vendor type SUP_SUP, TAK_SUP or TAK_SEL.'
                  example: TAK_SUP
                vendor_id:
                  type: string
                  description: 'optional The vendor id. **Required if vendor_type TAK_SEL**.'
                  example: '123152'
              required:
                - vendor_type
    delete:
      summary: Destroy
      description: ''
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 1770
                      vendor_type: TAK_SUP
                      vendor_id: 123152
                      verified: false
                      deleted: true
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 1770
                        vendor_type: TAK_SUP
                        vendor_id: 123152
                        verified: false
                        deleted: true
                    items:
                      type: object
      tags:
        - '18. Vendors'
    parameters:
      -
        in: path
        name: id
        description: 'The vendor''s ID.'
        example: '123152'
        required: true
        schema:
          type: string
  /v3/vendor/reports:
    get:
      summary: Index
      description: "List of Takealot waybills\n\n<aside class=\"warning\">\n Internal resource only available to Takealot and MDS Collivery\n</aside>"
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      waybill: 5518724
                      purchase_orders:
                        -
                          po: '12345678'
                          asn: null
                          due_date: '2021-10-25'
                          quantity: 1
                        -
                          po: '12345679'
                          asn: null
                          due_date: '2021-10-25'
                          quantity: 2
                        -
                          po: '12345673'
                          asn: null
                          due_date: '2021-10-25'
                          quantity: 1
                        -
                          po: '12345674'
                          asn: null
                          due_date: '2021-10-25'
                          quantity: 2
                        -
                          po: '12345672'
                          asn: null
                          due_date: '2021-10-25'
                          quantity: 1
                      client: Nuoli
                      waybill_quantity: 7
                      service: 'Road Freight'
                      status: 'Quote Accepted'
                      sla_status: 'not delivered'
                  meta:
                    next_url: null
                    previous_url: null
                    pages: 0
                properties:
                  data:
                    type: array
                    example:
                      -
                        waybill: 5518724
                        purchase_orders:
                          -
                            po: '12345678'
                            asn: null
                            due_date: '2021-10-25'
                            quantity: 1
                          -
                            po: '12345679'
                            asn: null
                            due_date: '2021-10-25'
                            quantity: 2
                          -
                            po: '12345673'
                            asn: null
                            due_date: '2021-10-25'
                            quantity: 1
                          -
                            po: '12345674'
                            asn: null
                            due_date: '2021-10-25'
                            quantity: 2
                          -
                            po: '12345672'
                            asn: null
                            due_date: '2021-10-25'
                            quantity: 1
                        client: Nuoli
                        waybill_quantity: 7
                        service: 'Road Freight'
                        status: 'Quote Accepted'
                        sla_status: 'not delivered'
                    items:
                      type: object
                  meta:
                    type: object
                    example:
                      next_url: null
                      previous_url: null
                      pages: 0
      tags:
        - '19. Vendor Reports'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                dc:
                  type: string
                  description: ''
                  example: null
                per_page:
                  type: number
                  description: 'Must not be greater than 50.'
                  example: 18
    parameters:
      -
        in: path
        name: dc
        description: 'Optional parameter. The id of the DC. Takealot JNB (`40`) or Takealot JNB Bulk (`39`) or Takealot CPT (`41`) depot.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '40'
      -
        in: path
        name: per_page
        description: 'Optional parameter. Number of waybills per page. Max is `50`.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 20
      -
        in: path
        name: vendor
        description: 'Optional parameter. MDS Vendor id. Can be obtained from `/vendors/` endpoint.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '1285'
      -
        in: path
        name: status
        description: 'Optional parameter. Status id. Can be obtained from `/statuses/` endpoint.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '3'
      -
        in: path
        name: po_number
        description: 'Optional parameter. Purchase order number.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 52044591
      -
        in: path
        name: asn
        description: 'Optional parameter. ASN.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
  /v3/vendor/reports/on_time:
    get:
      summary: OnTime
      description: "On time report for Takealot Waybills\n\n<aside class=\"warning\">\n Internal resource only available to Takealot and MDS Collivery\n</aside>"
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      waybill: 5674754
                      status: Invoiced
                      po: '12345678'
                      asn: '1'
                      client: 'Acme Trading (Pty) Ltd'
                      quantity: 1
                      service: 'Road Freight'
                      due_date: '2022-01-06'
                      collection_time: '2022-01-05 09:00:00'
                      collected_at: '2022-01-05 13:44:58'
                      deliver_before: '2022-01-6 14:00:00'
                      days_late: 2
                  meta:
                    summary:
                      total_failures: 0
                      total: 1
                      percentage: 0
                properties:
                  data:
                    type: array
                    example:
                      -
                        waybill: 5674754
                        status: Invoiced
                        po: '12345678'
                        asn: '1'
                        client: 'Acme Trading (Pty) Ltd'
                        quantity: 1
                        service: 'Road Freight'
                        due_date: '2022-01-06'
                        collection_time: '2022-01-05 09:00:00'
                        collected_at: '2022-01-05 13:44:58'
                        deliver_before: '2022-01-6 14:00:00'
                        days_late: 2
                    items:
                      type: object
                  meta:
                    type: object
                    example:
                      summary:
                        total_failures: 0
                        total: 1
                        percentage: 0
      tags:
        - '19. Vendor Reports'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                start_date:
                  type: string
                  description: ''
                  example: null
                end_date:
                  type: string
                  description: ''
                  example: null
                direction:
                  type: string
                  description: 'Must be one of <code>collection</code>, <code>delivery</code>, or <code>both</code>.'
                  example: collection
                distribution_center:
                  type: string
                  description: 'Must be one of <code>JHB Bulk DC3</code>, <code>CPT Main DC</code>, <code>JHB Main DC</code>, or <code>CPT Bulk DC2</code>.'
                  example: 'CPT Main DC'
                po_number_search:
                  type: string
                  description: ''
                  example: ex
    parameters:
      -
        in: path
        name: start_date
        description: 'Optional parameter. The date of the start of the report.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2022-01-10'
      -
        in: path
        name: end_date
        description: 'Optional parameter. The date of the end of the report.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2022-01-11'
      -
        in: path
        name: direction
        description: 'Optional parameter. Direction. Collect from client (`collection`), Deliver to client (`delivery`), or Collection and Delivery (`both`) .'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: collection
      -
        in: path
        name: distribution_center
        description: 'Optional parameter. The id of the DC. Takealot JNB (`JNB`) or Takealot JNB Bulk (`JNB_BULK`) or Takealot CPT (`CPT`) depot.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: JNB_BULK
      -
        in: path
        name: po_number_search
        description: 'Optional parameter. Comma seperated Purchase order numbers to search.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1231242
  /v3/vendor/reports/in_full:
    get:
      summary: InFull
      description: "In full report for Takealot Waybills\n\n<aside class=\"warning\">\n Internal resource only available to Takealot and MDS Collivery\n</aside>"
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      waybill: 5504810
                      status: Invoiced
                      po: '34456899'
                      asn: null
                      client: 'Acme Trading  Pty Ltd'
                      quantity: 2
                      service: 'Road Freight'
                      quantity_at_dest: 0
                    -
                      waybill: 5504810
                      status: Invoiced
                      po: '123789'
                      asn: null
                      client: 'Acme Trading Pty Ltd'
                      quantity: 2
                      service: 'Road Freight'
                      quantity_at_dest: 0
                    -
                      waybill: 5504810
                      status: Invoiced
                      po: '23456789'
                      asn: null
                      client: 'Acme Trading Pty Ltd'
                      quantity: 2
                      service: 'Road Freight'
                      quantity_at_dest: 0
                  meta:
                    summary:
                      failures: 3
                      total: 137961
                      percentage: 0
                properties:
                  data:
                    type: array
                    example:
                      -
                        waybill: 5504810
                        status: Invoiced
                        po: '34456899'
                        asn: null
                        client: 'Acme Trading  Pty Ltd'
                        quantity: 2
                        service: 'Road Freight'
                        quantity_at_dest: 0
                      -
                        waybill: 5504810
                        status: Invoiced
                        po: '123789'
                        asn: null
                        client: 'Acme Trading Pty Ltd'
                        quantity: 2
                        service: 'Road Freight'
                        quantity_at_dest: 0
                      -
                        waybill: 5504810
                        status: Invoiced
                        po: '23456789'
                        asn: null
                        client: 'Acme Trading Pty Ltd'
                        quantity: 2
                        service: 'Road Freight'
                        quantity_at_dest: 0
                    items:
                      type: object
                  meta:
                    type: object
                    example:
                      summary:
                        failures: 3
                        total: 137961
                        percentage: 0
      tags:
        - '19. Vendor Reports'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                start_date:
                  type: string
                  description: ''
                  example: null
                end_date:
                  type: string
                  description: ''
                  example: null
                direction:
                  type: string
                  description: 'Must be one of <code>collection</code>, <code>delivery</code>, or <code>both</code>.'
                  example: collection
                distribution_center:
                  type: string
                  description: 'Must be one of <code>JHB Bulk DC3</code>, <code>CPT Main DC</code>, <code>JHB Main DC</code>, or <code>CPT Bulk DC2</code>.'
                  example: 'CPT Main DC'
                po_number_search:
                  type: string
                  description: ''
                  example: ex
    parameters:
      -
        in: path
        name: start_date
        description: 'Optional parameter. The date of the start of the report.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2022-01-10'
      -
        in: path
        name: end_date
        description: 'Optional parameter. The date of the end of the report.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2022-01-11'
      -
        in: path
        name: direction
        description: 'Optional parameter. Direction. Collect from client (`collection`), Deliver to client (`delivery`), or Collection and Delivery (`both`) .'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: collection
      -
        in: path
        name: distribution_center
        description: 'Optional parameter. The id of the DC. Takealot JNB (`JNB`) or Takealot JNB Bulk (`JNB_BULK`) or Takealot CPT (`CPT`) depot.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: JNB_BULK
      -
        in: path
        name: po_number_search
        description: 'Optional parameter. Comma seperated Purchase order numbers to search.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1231242
  /v3/vendor/reports/lost_or_damaged:
    get:
      summary: LostOrDamaged
      description: "Lost or damaged report for Takealot Waybills including claim status\n\n<aside class=\"warning\">\n Internal resource only available to Takealot and MDS Collivery\n</aside>"
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      waybill: 4899591
                      status: Invoiced
                      po: '12312351'
                      asn: ASNCQWERT036712920
                      client: 'Acme Trading Pty Ltd'
                      quantity: 2
                      service: 'Road Freight'
                      claim_approved: false
                      claim_value_rands: 400
                      claim_status: Denied
                      claim_reason: 'Dear Acme, it appears the item was not packaged in line with TakeAlot packaging standards. Unfortunately we are unable to assist with the claim'
                    -
                      waybill: 4909021
                      status: Invoiced
                      po: '3622220'
                      asn: null
                      client: 'Acme Trading Pty Ltd'
                      quantity: 2
                      service: 'Road Freight'
                      claim_approved: true
                      claim_value_rands: 3995
                      claim_status: Completed
                      claim_reason: 'Dear Acme, thank you for submitted your claim. After review of the photographic evidence your claim has been approved. Please supply invoice for cost'
                  meta:
                    summary:
                      claims_total: 2
                      accepted_total: 1
                      rejected_total: 1
                      total: 2590
                      percentage: 0.04
                properties:
                  data:
                    type: array
                    example:
                      -
                        waybill: 4899591
                        status: Invoiced
                        po: '12312351'
                        asn: ASNCQWERT036712920
                        client: 'Acme Trading Pty Ltd'
                        quantity: 2
                        service: 'Road Freight'
                        claim_approved: false
                        claim_value_rands: 400
                        claim_status: Denied
                        claim_reason: 'Dear Acme, it appears the item was not packaged in line with TakeAlot packaging standards. Unfortunately we are unable to assist with the claim'
                      -
                        waybill: 4909021
                        status: Invoiced
                        po: '3622220'
                        asn: null
                        client: 'Acme Trading Pty Ltd'
                        quantity: 2
                        service: 'Road Freight'
                        claim_approved: true
                        claim_value_rands: 3995
                        claim_status: Completed
                        claim_reason: 'Dear Acme, thank you for submitted your claim. After review of the photographic evidence your claim has been approved. Please supply invoice for cost'
                    items:
                      type: object
                  meta:
                    type: object
                    example:
                      summary:
                        claims_total: 2
                        accepted_total: 1
                        rejected_total: 1
                        total: 2590
                        percentage: 0.04
      tags:
        - '19. Vendor Reports'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                start_date:
                  type: string
                  description: ''
                  example: null
                end_date:
                  type: string
                  description: ''
                  example: null
                direction:
                  type: string
                  description: 'Must be one of <code>collection</code>, <code>delivery</code>, or <code>both</code>.'
                  example: collection
                distribution_center:
                  type: string
                  description: 'Must be one of <code>JHB Bulk DC3</code>, <code>CPT Main DC</code>, <code>JHB Main DC</code>, or <code>CPT Bulk DC2</code>.'
                  example: 'CPT Main DC'
                po_number_search:
                  type: string
                  description: ''
                  example: ex
    parameters:
      -
        in: path
        name: start_date
        description: 'Optional parameter. The date of the start of the report.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2022-01-10'
      -
        in: path
        name: end_date
        description: 'Optional parameter. The date of the end of the report.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: '2022-01-11'
      -
        in: path
        name: direction
        description: 'Optional parameter. Direction. Collect from client (`collection`), Deliver to client (`delivery`), or Collection and Delivery (`both`) .'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: collection
      -
        in: path
        name: distribution_center
        description: 'Optional parameter. The id of the DC. Takealot JNB (`JNB`) or Takealot JNB Bulk (`JNB_BULK`) or Takealot CPT (`CPT`) depot.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: JNB_BULK
      -
        in: path
        name: po_number_search
        description: 'Optional parameter. Comma seperated Purchase order numbers to search.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1231242
  /v3/vendor_bookings:
    post:
      summary: Store
      description: "Create a new vendor waybill\n\n<aside class=\"notice\">\n  Please note if you have a pre-paid account with us, your waybills will need to be paid for before the collection can start. Take note of the `payment_needed` parameter in the response meta, that will contain the payment URL (if any)\n</aside>\n<aside class=\"warning\">\n  Any time errors are returned in a \"meta\" array\n</aside>"
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 7539258
                    custom_id: ''
                    service_type_id: 3
                    service_type_name: 'Road Freight'
                    collection_time: 1737698400
                    customer_reference: ''
                    delivery_time: 1738159200
                    parcel_count: 2
                    special_instructions: 'Takealot : ex'
                    collection_address_id: 39
                    collection_contact_id: 3732661
                    delivery_address_id: 952
                    delivery_contact_id: 593
                    status_id: 1
                    status_name: 'Waiting Client Acceptance'
                    parcel_description: ''
                    weight: 11
                    volumetric_weight: 0.6
                    total_price: 327
                    risk_cover: true
                    client:
                      id: 116
                      name: 'Demo Collivery (PTY) Ltd.'
                      landline_number: '011 241 4911'
                      mobile_number: null
                      account_code: TESTCOLLIVER
                      account_type: account
                    collection_address:
                      id: 39
                      address_id: 39
                      custom_id: ''
                      town_id: 154
                      town_name: 'Kempton Park'
                      town_other_name: ''
                      suburb_id: 769
                      suburb_name: 'Glen Marais'
                      company_name: 'takealot.com Johannesburg'
                      building_complex_name: 'JT Ross Park'
                      street_number: ''
                      street_name: '5 Merlot Close'
                      postal_code: '1619'
                      country_name: 'SOUTH AFRICA'
                      text: 'takealot.com Johannesburg, JT Ross Park, 5 Merlot Close, Glen Marais, Kempton Park'
                      short_text: 'takealot.com Johannesburg, Glen Marais, Kempton Park'
                      location_type:
                        id: 1
                        name: 'Business Premises'
                        surcharge: false
                        surcharge_amount: 0
                      town:
                        id: 154
                        name: 'Kempton Park'
                        other_name: ''
                        province: GP
                        latitude: -26.0937
                        longitude: 28.231001
                        category: Major
                        town_surcharge: 0
                      geocode_data:
                        accuracy: 6
                        accuracy_type: Street
                        last_geocoded_at: '2022-11-04'
                        latitude: -26.069174
                        longitude: 28.278063
                    parcels: []
                  meta:
                    - 'The earliest collect after time is 8:00. Collection time has been adjusted.'
                properties:
                  data:
                    type: object
                    example:
                      id: 7539258
                      custom_id: ''
                      service_type_id: 3
                      service_type_name: 'Road Freight'
                      collection_time: 1737698400
                      customer_reference: ''
                      delivery_time: 1738159200
                      parcel_count: 2
                      special_instructions: 'Takealot : ex'
                      collection_address_id: 39
                      collection_contact_id: 3732661
                      delivery_address_id: 952
                      delivery_contact_id: 593
                      status_id: 1
                      status_name: 'Waiting Client Acceptance'
                      parcel_description: ''
                      weight: 11
                      volumetric_weight: 0.6
                      total_price: 327
                      risk_cover: true
                      client:
                        id: 116
                        name: 'Demo Collivery (PTY) Ltd.'
                        landline_number: '011 241 4911'
                        mobile_number: null
                        account_code: TESTCOLLIVER
                        account_type: account
                      collection_address:
                        id: 39
                        address_id: 39
                        custom_id: ''
                        town_id: 154
                        town_name: 'Kempton Park'
                        town_other_name: ''
                        suburb_id: 769
                        suburb_name: 'Glen Marais'
                        company_name: 'takealot.com Johannesburg'
                        building_complex_name: 'JT Ross Park'
                        street_number: ''
                        street_name: '5 Merlot Close'
                        postal_code: '1619'
                        country_name: 'SOUTH AFRICA'
                        text: 'takealot.com Johannesburg, JT Ross Park, 5 Merlot Close, Glen Marais, Kempton Park'
                        short_text: 'takealot.com Johannesburg, Glen Marais, Kempton Park'
                        location_type:
                          id: 1
                          name: 'Business Premises'
                          surcharge: false
                          surcharge_amount: 0
                        town:
                          id: 154
                          name: 'Kempton Park'
                          other_name: ''
                          province: GP
                          latitude: -26.0937
                          longitude: 28.231001
                          category: Major
                          town_surcharge: 0
                        geocode_data:
                          accuracy: 6
                          accuracy_type: Street
                          last_geocoded_at: '2022-11-04'
                          latitude: -26.069174
                          longitude: 28.278063
                      parcels: []
                  meta:
                    type: array
                    example:
                      - 'The earliest collect after time is 8:00. Collection time has been adjusted.'
                    items:
                      type: string
      tags:
        - '20. Vendor Waybills'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                vendor_depot:
                  type: string
                  description: 'JNB Main (`JHB Main DC`), CPT Main (`CPT Main DC`), JNB Bulk (`JHB Bulk DC3`), CPT Bulk (`CPT Bulk DC2`) .'
                  example: 'JHB Bulk DC3'
                vehicle_type:
                  type: integer
                  description: 'The vehicle that we should collect it with. Defaults to 1 *(Motorbike)*.'
                  example: 2
                risk_cover:
                  type: boolean
                  description: 'optional Whether to enable risk cover over and above the default cover. See terms and conditions. Surcharges will be applied. Defaults to `false`.'
                  example: true
                collection_time:
                  type: string
                  description: 'Any future date/time representation that can be parsed by PHP `strtotime()`. Interpreted as GMT+2. If left empty no time surcharges will be encountered. Must be after current time.'
                  example: '2025-01-24'
                orders:
                  type: array
                  description: 'Purchase orders.'
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      purchase_order_number:
                        type: string
                        description: 'The Purchase order number. Example 165488742'
                        example: ex
                      parcel_count:
                        type: integer
                        description: 'The amount of parcels of this type.'
                        example: 2
                      vendor_id:
                        type: integer
                        description: 'The id of the vendor stored with Collivery.'
                        example: 1772
                      due_date:
                        type: date
                        description: 'The date the order is due at Vendor depot.'
                        example: '2012-02-25'
                      asn:
                        type: string
                        description: 'optional The ASN of order. Example TAL_12341'
                        example: ex
                      length:
                        type: number
                        description: 'optional The length of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                        example: 21.5
                      width:
                        type: number
                        description: 'optional The width of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                        example: 10.0
                      height:
                        type: number
                        description: 'optional The height of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                        example: 5.5
                      weight:
                        type: number
                        description: 'optional The weight of the parcel. Values in *kilograms*. Can be supplied as floats or integers.'
                        example: 5.5
                    required:
                      - purchase_order_number
                      - parcel_count
                      - vendor_id
                      - due_date
                collection_address:
                  type: integer/object
                  description: 'optional Required if `delivery_address` not supplied, can be the id of the address or a json object if the address is not yet stored. *See below for object structure*.'
                  example: null
                delivery_address:
                  type: integer/object
                  description: 'optional Required if `collection_address` not supplied, can be the id of the address or a json object if the address is not yet stored. *See below for object structure*.'
                  example: '952'
                service_type:
                  type: integer
                  description: 'A service you would like to deliver the waybill on. Defaults to 2 *(Overnight Express)*.'
                  example: 3
              required:
                - vendor_depot
                - vehicle_type
                - collection_time
                - service_type
  /v3/vendor_bookings/quote:
    post:
      summary: Quote
      description: "Quote on a vendor waybill\n\n<aside class=\"warning\">\n  Any time errors are returned in a \"meta\" array\n</aside>"
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      service_type: 2
                      total: 295.6
                      total_inclusive: 339.94
                      delivery_type: local
                    -
                      service_type: 5
                      total: 305.4
                      total_inclusive: 351.21
                      delivery_type: local
                  meta:
                    times:
                      '2':
                        collection_time: '2025-01-24T06:00:00.000000Z'
                        delivery_time: '2025-01-27T14:00:00.000000Z'
                      '5':
                        collection_time: '2025-01-24T06:00:00.000000Z'
                        delivery_time: '2025-01-28T14:00:00.000000Z'
                    warnings:
                      '2': 'The earliest collect after time is 8:00. Collection time has been adjusted.'
                      '5': 'The earliest collect after time is 8:00. Collection time has been adjusted.'
                    surcharges:
                      '2':
                        riskCover: 95.67
                      '5':
                        riskCover: 95.67
                    extras:
                      '2':
                        inc_weight: 15
                        vol_weight: 0.6
                        vm_divisor: 5000
                        weight: 11
                        rate_per_kg: 1.92
                      '5':
                        inc_weight: 20
                        vol_weight: 0.6
                        vm_divisor: 4500
                        weight: 11
                        rate_per_kg: 0.88
                properties:
                  data:
                    type: array
                    example:
                      -
                        service_type: 2
                        total: 295.6
                        total_inclusive: 339.94
                        delivery_type: local
                      -
                        service_type: 5
                        total: 305.4
                        total_inclusive: 351.21
                        delivery_type: local
                    items:
                      type: object
                  meta:
                    type: object
                    example:
                      times:
                        '2':
                          collection_time: '2025-01-24T06:00:00.000000Z'
                          delivery_time: '2025-01-27T14:00:00.000000Z'
                        '5':
                          collection_time: '2025-01-24T06:00:00.000000Z'
                          delivery_time: '2025-01-28T14:00:00.000000Z'
                      warnings:
                        '2': 'The earliest collect after time is 8:00. Collection time has been adjusted.'
                        '5': 'The earliest collect after time is 8:00. Collection time has been adjusted.'
                      surcharges:
                        '2':
                          riskCover: 95.67
                        '5':
                          riskCover: 95.67
                      extras:
                        '2':
                          inc_weight: 15
                          vol_weight: 0.6
                          vm_divisor: 5000
                          weight: 11
                          rate_per_kg: 1.92
                        '5':
                          inc_weight: 20
                          vol_weight: 0.6
                          vm_divisor: 4500
                          weight: 11
                          rate_per_kg: 0.88
      tags:
        - '20. Vendor Waybills'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                vendor_depot:
                  type: string
                  description: 'JNB Main (`JHB Main DC`), CPT Main (`CPT Main DC`), JNB Bulk (`JHB Bulk DC3`), CPT Bulk (`CPT Bulk DC2`) .'
                  example: 'JHB Bulk DC3'
                vehicle_type:
                  type: integer
                  description: 'The vehicle that we should collect it with. Defaults to 1 *(Motorbike)*.'
                  example: 2
                risk_cover:
                  type: boolean
                  description: 'optional Whether to enable risk cover over and above the default cover. See terms and conditions. Surcharges will be applied. Defaults to `false`.'
                  example: true
                collection_time:
                  type: string
                  description: 'Any future date/time representation that can be parsed by PHP `strtotime()`. Interpreted as GMT+2. If left empty no time surcharges will be encountered. Must be after current time.'
                  example: '2025-01-24'
                orders:
                  type: array
                  description: 'Purchase orders.'
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      purchase_order_number:
                        type: string
                        description: 'The Purchase order number. Example 165488742'
                        example: ex
                      parcel_count:
                        type: integer
                        description: 'The amount of parcels of this type.'
                        example: 2
                      vendor_id:
                        type: integer
                        description: 'The id of the vendor stored with Collivery.'
                        example: 1772
                      due_date:
                        type: date
                        description: 'The date the order is due at Vendor depot.'
                        example: '2012-02-25'
                      asn:
                        type: string
                        description: 'optional The ASN of order. Example TAL_12341'
                        example: ex
                      length:
                        type: number
                        description: 'optional The length of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                        example: 21.5
                      width:
                        type: number
                        description: 'optional The width of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                        example: 10.0
                      height:
                        type: number
                        description: 'optional The height of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                        example: 5.5
                      weight:
                        type: number
                        description: 'optional The weight of the parcel. Values in *kilograms*. Can be supplied as floats or integers.'
                        example: 5.5
                    required:
                      - purchase_order_number
                      - parcel_count
                      - vendor_id
                      - due_date
                collection_address:
                  type: integer/object
                  description: 'optional Required if `delivery_address` not supplied, can be the id of the address or a json object if the address is not yet stored. *See below for object structure*.'
                  example: null
                delivery_address:
                  type: integer/object
                  description: 'optional Required if `collection_address` not supplied, can be the id of the address or a json object if the address is not yet stored. *See below for object structure*.'
                  example: '952'
                service_types:
                  type: array
                  description: 'number A list of the services you would like a quote on. Any or none of `2`,`3`,`5`. Defaults to all services.'
                  example:
                    - 2
                    - 5
                  items:
                    type: object
              required:
                - vendor_depot
                - vehicle_type
                - collection_time
  /v3/statuses:
    get:
      summary: Index
      description: 'List all in use statuses'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                example:
                  -
                    id: 1
                    name: 'Waiting Client Acceptance'
                  -
                    id: 2
                    name: 'Waiting Payment'
                  -
                    id: 3
                    name: 'Quote Accepted'
                  -
                    id: 5
                    name: 'Collivery Cancelled'
                  -
                    id: 6
                    name: Invoiced
                  -
                    id: 7
                    name: Collected
                  -
                    id: 8
                    name: Delivered
                  -
                    id: 9
                    name: 'In Transit'
                  -
                    id: 10
                    name: 'Collection Driver Dispatched'
                  -
                    id: 11
                    name: 'Collection Failed'
                  -
                    id: 12
                    name: 'Delivery Failed'
                  -
                    id: 13
                    name: 'Processing Order'
                  -
                    id: 14
                    name: 'Received By Branch'
                  -
                    id: 15
                    name: 'Delivery Driver Dispatched'
                  -
                    id: 16
                    name: 'Collection Courier Allocated'
                  -
                    id: 17
                    name: 'Delivery Courier Allocated'
                  -
                    id: 18
                    name: 'Collection Driver Allocated'
                  -
                    id: 19
                    name: 'Delivery Driver Allocated'
                  -
                    id: 20
                    name: 'POD Received'
                  -
                    id: 21
                    name: 'Received By Courier'
                  -
                    id: 22
                    name: 'Collivery Modified'
                  -
                    id: 27
                    name: 'On Hold'
                  -
                    id: 29
                    name: 'Pending Investigation'
                  -
                    id: 30
                    name: 'Collection Courier Dispatched'
                  -
                    id: 31
                    name: 'Delivery Courier Dispatched'
                  -
                    id: 32
                    name: Completed
                  -
                    id: 33
                    name: 'Accounting transferred'
                  -
                    id: 34
                    name: Unhold
      tags:
        - '21. Statuses'
  /v3/web_printer:
    get:
      summary: Index
      description: ''
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        400:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error:
                    http_code_text: 'Bad Request'
                    http_code: 400
                    message: 'You have no WebPrinters linked to your account please contact support@collivery.co.za'
                properties:
                  error:
                    type: object
                    example:
                      http_code_text: 'Bad Request'
                      http_code: 400
                      message: 'You have no WebPrinters linked to your account please contact support@collivery.co.za'
      tags:
        - '22. WebPrinter'
  /v3/predefined_parcels:
    get:
      summary: Index
      description: ''
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: query
          name: search
          description: 'An optional search string matched against the location types names.'
          example: pizza
          required: false
          schema:
            type: string
            description: 'An optional search string matched against the location types names.'
            example: pizza
        -
          in: query
          name: page
          description: 'Page number to return.'
          example: 1
          required: false
          schema:
            type: string
            description: 'Page number to return.'
            example: 1
        -
          in: query
          name: per_page
          description: 'The limit per page. If this option is provided, `links` and `meta` will exist in the response with further information about the full list.`0` is the same as not limiting. Default is  100.'
          example: 3
          required: false
          schema:
            type: string
            description: 'The limit per page. If this option is provided, `links` and `meta` will exist in the response with further information about the full list.`0` is the same as not limiting. Default is  100.'
            example: 3
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n   \"data\": [\n     {\n       'product_id': 1,\n       'client_id': 1,\n       'description': 'Small Pizza Box',\n       'length': 20,\n       'width': 20,\n       'height': 20,\n       'weight': 1,\n       'deleted': false\n     },\n     {\n       'product_id': 2,\n       'client_id': 1,\n       'description': 'Medium Pizza Box',\n       'length': 30,\n       'width': 30,\n       'height': 30,\n       'weight': 2,\n       'deleted': false\n     }\n   ],\n   \"links\": {\n     'first': 'http://collivery.net/api/external/predefined-parcels?page=1',\n     'last': 'http://collivery.net/api/external/predefined-parcels?page=1',\n     'prev': null,\n     'next': null\n   },\n   \"meta\": {\n     'current_page': 1,\n     'from': 1,\n     'last_page': 1,\n     'path': 'http://collivery.net/api/external/predefined-parcels',\n     'per_page': 100,\n     'to': 2,\n     'total': 2\n   }\n }"
      tags:
        - '23. Predefined Parcels'
    post:
      summary: Store
      description: 'Save a new Predefined Parcel.'
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  id: 18349
                  length: 21.5
                  width: 10
                  height: 5.5
                  weight: 5.2
                  description: 'Pizza box'
                properties:
                  id:
                    type: integer
                    example: 18349
                  length:
                    type: number
                    example: 21.5
                  width:
                    type: integer
                    example: 10
                  height:
                    type: number
                    example: 5.5
                  weight:
                    type: number
                    example: 5.2
                  description:
                    type: string
                    example: 'Pizza box'
      tags:
        - '23. Predefined Parcels'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                length:
                  type: number
                  description: 'The length of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                  example: 21.5
                width:
                  type: number
                  description: 'The width of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                  example: 10.0
                height:
                  type: number
                  description: 'The height of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                  example: 5.5
                weight:
                  type: number
                  description: 'The weight of the parcel. Values in *kilograms*. Can be supplied as floats or integers.'
                  example: 5.2
                description:
                  type: string
                  description: 'The description of the box/parcel. Max 50 characters.'
                  example: 'Pizza box'
              required:
                - length
                - width
                - height
                - weight
                - description
  '/v3/predefined_parcels/{id}':
    get:
      summary: Show
      description: ''
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Predefined Parcel for id 1 not found'
                properties:
                  message:
                    type: string
                    example: 'Predefined Parcel for id 1 not found'
      tags:
        - '23. Predefined Parcels'
    put:
      summary: Update
      description: ''
      parameters:
        -
          in: query
          name: api_token
          description: 'Authentication key.'
          example: OpSjx5TlXGCGkzGAvUOm
          required: true
          schema:
            type: string
            description: 'Authentication key.'
            example: OpSjx5TlXGCGkzGAvUOm
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: X-App-Name
          description: ''
          example: 'My Custom App'
          schema:
            type: string
        -
          in: header
          name: X-App-Version
          description: ''
          example: 0.2.1
          schema:
            type: string
        -
          in: header
          name: X-App-Host
          description: ''
          example: '.NET Framework 4.8'
          schema:
            type: string
        -
          in: header
          name: X-App-Lang
          description: ''
          example: 'C#'
          schema:
            type: string
        -
          in: header
          name: X-App-Url
          description: ''
          example: 'https://example.com'
          schema:
            type: string
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Predefined Parcel for id 1 not found'
                properties:
                  message:
                    type: string
                    example: 'Predefined Parcel for id 1 not found'
      tags:
        - '23. Predefined Parcels'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                length:
                  type: number
                  description: 'The length of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                  example: 21.5
                width:
                  type: number
                  description: 'The width of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                  example: 10.0
                height:
                  type: number
                  description: 'The height of the parcel. Values in *centimetres*. Can be supplied as floats or integers.'
                  example: 5.5
                weight:
                  type: number
                  description: 'The weight of the parcel. Values in *kilograms*. Can be supplied as floats or integers.'
                  example: 5.2
                description:
                  type: string
                  description: 'The description of the box/parcel. Max 50 characters.'
                  example: 'Pizza box'
              required:
                - length
                - width
                - height
                - weight
                - description
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. required.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 13900
tags:
  -
    name: '1. Authentication'
    description: "<aside class=\"notice\">\n  These are the same login details that you would use on https://collivery.net\n</aside>\n### Please note:\n* <span class=\"button authentication-button\">Requires authentication</span> indicates that this endpoint can only be accessed with your credentials\n* With these routes, you must provide an `api_token` parameter with the request\n* You can get your api_token calling the `/login` endpoint or by selecting `Edit` on <a href=\"https://collivery.net/users\" target=\"_blank\">Users index</a>"
  -
    name: '2. Addresses'
    description: 'Manage Addresses'
  -
    name: '3. Contacts'
    description: "Manage Address Contacts\n<aside class=\"info\">\nFor legacy reasons, on all endpoints all of `cell_no`/`cellphone` and `work_no`/`work_phone` are returned\n</aside>"
  -
    name: '4. Get Quote'
    description: "\n<aside class=\"notice\">\n  The quote is valid for 24 hours.\n</aside>"
  -
    name: '5. Waybills'
    description: ''
  -
    name: '6. Status Tracking'
    description: 'Fetch and query status updates for your waybills'
  -
    name: '7. Waybill Documents'
    description: 'Get your Quote or Waybill documents'
  -
    name: '8. Proofs of Delivery'
    description: ''
  -
    name: '9. Parcel Images'
    description: ''
  -
    name: '10. Country'
    description: 'Show and search for countries'
  -
    name: '11. Towns'
    description: 'Show and search for Towns'
  -
    name: '12. Suburbs'
    description: "\nShow and filter suburbs\n<aside class=\"warning\">\nWe offer the ability to query suburbs by GPS co-ordinates. This is useful for matching suburbs that are not in our database, but are in yours. <br>\n<strong>If you pass in `latitude`/`longitude` all other filters like `search`, `country`, etc are ignored</strong> <br>\nWill return the closest 5 suburbs within 50km of the GPS co-ordinates, but the first result is the closest match.\n</aside>"
  -
    name: '13. Service Types'
    description: "\nShow all service types or searched"
  -
    name: '14. Location Types'
    description: "\n<aside class=\"notice\">\n  These should be aggressively cached. They are unlikely to change within a 24-hour period\n</aside>"
  -
    name: '15. Battery Types'
    description: ''
  -
    name: '16. Parcel Types'
    description: ''
  -
    name: '17. Terms and Conditions'
    description: ''
  -
    name: '18. Vendors'
    description: 'Manage Vendors'
  -
    name: '19. Vendor Reports'
    description: View
  -
    name: '20. Vendor Waybills'
    description: 'Add Vendor Waybill bookings'
  -
    name: '21. Statuses'
    description: 'View Statuses'
  -
    name: '22. WebPrinter'
    description: 'Get your Printers Available and execute jobs'
  -
    name: '23. Predefined Parcels'
    description: 'Manage Predefined Parcels'
components:
  securitySchemes:
    default:
      type: apiKey
      name: api_token
      in: query
      description: ''
security:
  -
    default: []
