Inventory

Create a CSV upload slot

Creates an upload slot for a CSV ingestion by generating a short-lived, PUT-only presigned URL. Returns 202 Accepted with a job in the awaiting_upload state carrying an upload_url and a start link.

Upload the file directly to upload_url (it never transits the API), then call the start operation to begin processing.

Requires the agentic:inventory scope.

post/inventory/ingestions/uploads

Request

Request body

mode'upsert'

The update semantics for the upload. Only upsert is available in this version.

format'csv'

The uploaded file format. Only csv is available in this version.

Example request

{
  "mode": "upsert",
  "format": "csv"
}

Response

The upload slot was created. Upload the file to upload_url, then call start.

idstring

The ingestion identifier, in the ing_{base32-encoded GUID} format.

state'awaiting_upload' | 'accepted' | 'processing' | 'completed' | 'completed_with_errors' | 'failed'

The current state of the job. awaiting_upload is only used by the CSV flow, between requesting an upload slot and starting processing. completed, completed_with_errors and failed are terminal.

mode'upsert'

The update semantics for the batch. Only upsert is available in this version.

upload_urlstring

A short-lived, PUT-only presigned URL to upload the CSV file to. Present only on the response to a CSV upload-slot request.

created_onstring date-time

The date and time the job was created.

modified_onstring date-time

The date and time the job was last updated.

Example response

{
  "id": "ing_01hzy8q2m4n6p8r0s2t4v6w8x0",
  "state": "accepted",
  "mode": "upsert",
  "counts": {
    "received": 500,
    "accepted": 498,
    "rejected": 2
  },
  "failure_reason": {
    "code": "file_unreadable",
    "message": "The uploaded file could not be read as CSV."
  },
  "upload_url": "https://inventory-ingestions.s3.eu-west-1.amazonaws.com/ingestions/mer_1/ing_.../payload.csv?X-Amz-Signature=...",
  "created_on": "2026-09-24T15:04:05.0000000+00:00",
  "modified_on": "2026-09-24T15:04:11.0000000+00:00",
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "results": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "start": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.