Cabify delivery API

Operations for managing the delivery lifecycle. Use these endpoints to trigger a shipment, cancel an active delivery, or check whether a pickup location falls within an operating area.

OpenAPI Specification

cabify-delivery-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: 'Welcome to the Cabify Logistics API. This API allows you to create and manage parcel deliveries, track their status in real time, configure proof of delivery options, and receive live updates via webhooks. All requests must be authenticated using a Bearer token.

    '
  version: 1.0.0
  title: Cabify Logistics delivery API
  contact:
    email: p.delivery@cabify.com
servers:
- url: https://logistics.api.cabify.com
  description: Production
- url: https://logistics.api.cabify-sandbox.com
  description: Sandbox
tags:
- name: delivery
  description: 'Operations for managing the delivery lifecycle. Use these endpoints to trigger a shipment, cancel an active delivery, or check whether a pickup location falls within an operating area.

    '
paths:
  /v1/parcels/deliver/cancel:
    post:
      tags:
      - delivery
      summary: Cancel the delivery of the specified parcels.
      description: 'Cancels an in-progress delivery for the given parcels, when cancellation is still permitted. Delivery cannot be cancelled once the parcel has been picked up. Cancellation is allowed in the following states: `qualifiedforpickup`, `onroutetopickup`, and `pickingup`. Please note that cancellation may incur costs.

        '
      operationId: cancelParcels
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelParcels'
      responses:
        '202':
          description: Cancellation request accepted and is being processed.
        '401':
          description: Unauthorized. Missing or invalid authentication token.
        '404':
          description: One or more parcels were not found.
        '409':
          description: 'One or more parcels cannot be cancelled due to their current state. Cancellation is only allowed in the `qualifiedforpickup`, `onroutetopickup`, or `pickingup` states.

            '
      security:
      - bearer_token: []
  /v1/parcels/deliver/pickup:
    get:
      tags:
      - delivery
      summary: Check whether a pickup location is within an operating area.
      description: 'Verifies that the given pickup location is covered by the delivery service. You can provide either a text address (`address`) or geographic coordinates (`pickup_point`).

        '
      parameters:
      - in: query
        name: address
        description: 'Full address to check (e.g. `Calle Pradillo 42, Madrid`). You must provide either `address` or `pickup_point` (or both).

          '
        required: false
        example: Calle%20Pradillo%2042%2C%20Madrid (Calle Pradillo 42, Madrid)
        schema:
          type: string
      - in: query
        name: pickup_point
        description: 'Geographic coordinates of the pickup location, formatted as `latitude,longitude`. You must provide either `address` or `pickup_point` (or both).

          '
        required: false
        example: 40.456367,-3.690587
        schema:
          type: string
      operationId: deliverPickup
      responses:
        '200':
          description: The pickup location is within an operating area.
        '404':
          description: The pickup location is not within any operating area.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestError'
      security:
      - bearer_token: []
components:
  schemas:
    CancelParcels:
      type: object
      required:
      - parcel_ids
      properties:
        parcel_ids:
          type: array
          description: List of parcels to be cancelled
          items:
            type: string
            format: uuid
    RequestError:
      type: object
      description: Standard error response body returned when a request fails.
      required:
      - errors
      properties:
        errors:
          type: array
          description: List of human-readable error messages describing what went wrong.
          items:
            type: string
  securitySchemes:
    bearer_token:
      type: http
      scheme: bearer