CSVJetty

Docs

Home
Dashboard

Reference

Import payload

Receive data

Reference

Import payload

Reference for CSVJetty callback and webhook import payload fields, row numbers, matched columns, unmatched data, and callback error responses.

View as Markdown

On this page

Payload shapePayload fieldsRow numbersUnmatched dataCallback result

Callback and webhook delivery share the same core import payload. The payload preserves enough source context to save records safely and report row-level errors against the original CSV.

Payload shape

JS

{  importId: "IMPORT_ID",  fileName: "contacts.csv",  rows: [    {      name: "Ada",      email: "ada@example.com",    },  ],  rowNumbers: [1],  skippedRows: 0,  uploadedFileHeaders: ["Full Name", "Email"],  matchedColumnsMap: {    name: "Full Name",    email: "Email",  },}

Payload fields

FieldTypePurpose
importIdstringUnique ID for the import. Use it as part of your idempotency strategy.
fileNamestringSanitized name of the uploaded CSV file.
rowsarrayMapped and cleaned records for this delivery batch.
rowNumbersnumber[]Original data-row numbers corresponding to rows in this batch.
skippedRowsnumberNumber of invalid rows excluded when invalid-row filtering is enabled.
uploadedFileHeadersstring[]Headers found in the uploaded CSV.
matchedColumnsMapobjectDestination field name to selected source-header mapping.
batchnumberWebhook only: zero-based batch number.
totalBatchesnumberWebhook only: total number of batches.

Row numbers

Row numbers start at 1 for the first data row after the CSV header. They keep their original source-row identity when invalid rows are filtered out, so you can return errors for the correct original record.

Pair importId with row or batch identity when your receiving API needs idempotent writes.

Unmatched data

When Include unmatched columns is enabled, each delivered row can contain an _unmatched object with source fields that were not mapped to configured destination columns.

JS

{  email: "ada@example.com",  _unmatched: {    "Legacy ID": "1234"  }}

Learn when to use this in Column mapping.

Callback result

Return nothing or an empty errors array when a callback batch succeeds.

JS

return { errors: [] };

Reject individual original CSV rows with:

JS

return {  errors: [    { row: 2, message: "Email already exists" },  ],};

Error messages must be nonempty and are associated with the original row number supplied in rowNumbers.