Shippo Transactions API

Purchase shipping labels

OpenAPI Specification

shippo-transactions-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Shippo Addresses Transactions API
  description: Shippo is a multi-carrier shipping API that enables developers to add complete shipping functionality to their applications. The API supports address validation, carrier rate comparison across USPS, UPS, FedEx, DHL, and 80+ other carriers, label generation, package tracking, returns management, and webhook notifications.
  version: '2018-02-08'
  contact:
    name: Shippo
    url: https://docs.goshippo.com/
    email: support@goshippo.com
  license:
    name: Shippo API Terms
    url: https://goshippo.com/terms-of-use/
  x-date: '2026-05-02'
servers:
- url: https://api.goshippo.com
  description: Shippo API
security:
- ShippoToken: []
tags:
- name: Transactions
  description: Purchase shipping labels
paths:
  /transactions:
    get:
      operationId: listTransactions
      summary: List Transactions
      description: Returns a list of all transaction objects (purchased labels).
      tags:
      - Transactions
      parameters:
      - name: page
        in: query
        schema:
          type: integer
      - name: results
        in: query
        schema:
          type: integer
      - name: tracking_status
        in: query
        description: Filter by tracking status
        schema:
          type: string
          enum:
          - UNKNOWN
          - PRE_TRANSIT
          - TRANSIT
          - DELIVERED
          - RETURNED
          - FAILURE
      - name: object_created_gt
        in: query
        schema:
          type: string
          format: date-time
      - name: object_created_lt
        in: query
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: A list of transactions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionPaginatedList'
    post:
      operationId: createTransaction
      summary: Create Transaction (Purchase Label)
      description: Creates a transaction object and purchases the shipping label using a Rate object that was previously retrieved. This is how you buy a shipping label from Shippo.
      tags:
      - Transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionCreateRequest'
      responses:
        '201':
          description: Transaction created and label purchased
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
  /transactions/{TransactionId}:
    get:
      operationId: getTransaction
      summary: Get Transaction
      description: Returns an existing transaction object using an object ID.
      tags:
      - Transactions
      parameters:
      - name: TransactionId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Transaction object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transaction'
components:
  schemas:
    Transaction:
      type: object
      properties:
        object_id:
          type: string
        status:
          type: string
          enum:
          - WAITING
          - QUEUED
          - SUCCESS
          - ERROR
          - REFUNDED
          - REFUNDPENDING
          - REFUNDREJECTED
        tracking_number:
          type: string
          description: Carrier-issued tracking number
        tracking_url_provider:
          type: string
          description: URL to track the shipment on the carrier's website
        tracking_status:
          type: string
          enum:
          - UNKNOWN
          - PRE_TRANSIT
          - TRANSIT
          - DELIVERED
          - RETURNED
          - FAILURE
        label_url:
          type: string
          description: URL to the shipping label PDF or PNG
        commercial_invoice_url:
          type: string
          description: URL to the commercial invoice (for international shipments)
        rate:
          type: string
          description: Rate object ID used for this transaction
        metadata:
          type: string
        object_created:
          type: string
          format: date-time
        object_updated:
          type: string
          format: date-time
    TransactionCreateRequest:
      type: object
      required:
      - rate
      - label_file_type
      properties:
        rate:
          type: string
          description: Object ID of the rate to purchase
        label_file_type:
          type: string
          enum:
          - PNG
          - PNG_2.3x7.5
          - PDF
          - PDF_2.3x7.5
          - PDF_4x6
          - PDF_4x8
          - PDF_Letter
          - ZPLII
        metadata:
          type: string
        async:
          type: boolean
    TransactionPaginatedList:
      type: object
      properties:
        count:
          type: integer
        next:
          type: string
        previous:
          type: string
        results:
          type: array
          items:
            $ref: '#/components/schemas/Transaction'
  securitySchemes:
    ShippoToken:
      type: http
      scheme: bearer
      description: Shippo API token (prefix with "ShippoToken ")