Skip to main content
POST
Bulk upload via Excel
Upload an Excel file (.xlsx or .xls, max 5 MB and 999 data rows) to generate eBRCs in bulk. Column headers are matched to the required fields by name and the rows are submitted to DGFT in a single request. Validation errors come back per row, so you know exactly which line to fix. Limited to 5 calls per minute. Download the starting file from Download Bulk Upload Template, or pre-filled with real IRM data. Extracting rows from shipping bill PDFs first? See Shipping Bill extraction. A row is one IRM mapped to one document, and the same IRM may appear on as many rows as it has invoices: the mapped amounts per IRM are summed across the file and checked against the remittance and against the amount still available on it. Several IRMs may likewise share one invoice, one row each; DGFT issues one eBRC per row. See the template page for the worked example.

Request example

Query parameters:

Response

Alongside the DGFT acknowledgement, the response echoes back every IRM that was parsed and submitted:
  • parsedRowCount: how many rows were read from the file
  • irmNumbers: flat list of the submitted IRM numbers, in file order
  • irms: the same rows with serialNo, irmDt, irmAdCode, irmIfscCode, and sbCumInvoiceNumber
Use irms rather than irmNumbers when reconciling, since an IRM number is not unique on its own: the same number can recur under a different AD code or date.

Validation rules

Validation runs entirely before anything is filed, so a file either passes in full or is rejected in full — a partially-filed batch is not possible. Mandatory columns. 19 of the 37 columns must have a value in every non-blank row: Serial No, Upload Type, Branch Sl No, IRM IFSC Code, IRM AD Code, IRM Number, IRM Date, IRM FCC, IRM Purpose Code, IRM Remit Amt FCC, SB Cum Invoice Number, SB Cum Invoice Date, Port Code, Bill No, SB Cum Invoice FCC, SB Cum Invoice Value In FCC, Mapped IRM Amount FCC, Is Vostro, Is GST Avail. Everything else is optional, except the two conditional GST columns below. The full column-by-column table is on the template page. Value rules. Codes are not validated against the DGFT masters at upload time, so a syntactically valid but wrong IRM Purpose Code, Port Code or currency code passes here and fails at DGFT. Check them against the annexures linked below.

Row-level validation errors

If the file fails validation, the API returns 400 with one entry per failing cell. row is the Excel row number (row 1 is the header, so data starts at row 2) and field is the JSON field name from the annexure, not the column header:
Each failing cell is reported exactly once: a cell whose value cannot be read is reported as invalid, never additionally as missing.

Valid codes

Next steps

Authorizations

x-api-key
string
header
required

Query Parameters

platformCustomerId
string
required

Platform customer UUID

uploadType
enum<string>
required

eBRC type code: 101 Direct Export, 102 Softex, 103 Service Non IT, 104 Deemed.

Available options:
101,
102,
103,
104
decalarationFlag
enum<string>
required

Declaration flag

Available options:
Y,
N

Body

multipart/form-data
file
file
required

Excel file (.xlsx or .xls), max 5 MB

Response

DGFT acknowledgement with parsed row count

dgftAckId
string
requestId
string
ackStatus
enum<string>
Available options:
Validated,
Failed
recordResCount
number
errorDetails
object[]
parsedRowCount
number

Number of rows successfully parsed from the Excel file

irmNumbers
string[]

Flat list of the IRM numbers submitted, in file order

irms
object[]

The parsed rows echoed back, one entry per submitted IRM. Use these to reconcile the submission; an IRM number alone is not unique across AD codes and dates.