{
"statusCode": 400,
"message": "Excel validation failed",
"errors": [
{
"row": 2,
"field": "irmNumber",
"message": "Required field \"irmNumber\" is missing"
},
{
"row": 4,
"field": "isGstAvail",
"message": "Must be Y or N"
}
]
}
Bulk and Excel
Bulk Upload via Excel
Upload a filled Excel file to generate eBRCs in bulk. Each row is validated before anything is filed, and errors come back per row with field and message.
{
"statusCode": 400,
"message": "Excel validation failed",
"errors": [
{
"row": 2,
"field": "irmNumber",
"message": "Required field \"irmNumber\" is missing"
},
{
"row": 4,
"field": "isGstAvail",
"message": "Must be Y or N"
}
]
}
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, every row stating the invoice’s full value in the same currency; a file whose rows for one shipping bill disagree on the value or currency is refused before filing, because DGFT refuses those rows hours later, and so is a file whose mapped amounts for one shipping bill add up to more than that value. DGFT issues one eBRC per row. See the template page for the worked example.
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 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 Code, 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.
Rule
Detail
Headers
Matched by name, case- and punctuation-insensitive. Order does not matter; unknown columns are ignored.
Dates
DD/MM/YYYY, DD-MM-YYYY, DDMMYYYY, YYYY-MM-DD, or a real Excel date cell. Read day-first, normalised to DDMMYYYY. Impossible dates (31/02/2024) are rejected. A date cell is read as the calendar day in India: a cell that carries a time of 18:30 (what an ERP export writes for midnight IST) is the next day, which is the day Excel would show in an Indian locale and the day the shipping bill carries.
Y/N columns
Y or N, either case. Yes, True, 1 are rejected.
Numbers
Digits, as a number or as text. Serial No, Upload Type and Branch Sl No are whole numbers.
Amounts
Every amount column (IRM Remit Amt FCC, SB Cum Invoice Value In FCC, Mapped IRM Amount FCC, Mapped ORM Amount FCC, and the deduction and info values) takes at most 2 decimal places. The value stored in the cell is what is read, not what Excel displays: a formula such as =B2/3 shows 33.33 but holds 33.333333333333336, which has too many decimals. Wrap computed amounts in =ROUND(…, 2), or paste them back as values after rounding. Keep the rounded amounts for one IRM within its remittance.
GST
If Is GST Avail = Y, both GSTIN Invoice Number and GSTIN Invoice Date are required. If N, both must be empty — a populated GSTIN column with N is an error.
One shipping bill, several rows
Rows sharing SB Cum Invoice Number, SB Cum Invoice Date and Port Code must state the same SB Cum Invoice FCC and SB Cum Invoice Value In FCC, and their Mapped IRM Amount FCC must add up to no more than that value. A row on its own may not map more than its invoice value either. Both are refused with the arithmetic in the message.
Blank rows
A row with no values in any column is skipped, not reported.
File
.xlsx or .xls, max 5 MB, first worksheet only.
Rows
At most 999 data rows (excluding the header). DGFT types recordResCount as int(4) and refuses a larger message, so a file over the cap is rejected with 400 before any row is validated. Split a bigger sheet into batches and upload them one at a time.
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.
If the file fails validation, the API returns 400 with one entry per failing cell. Validation
runs in two passes, and row means something different in each:
Reading the sheet (missing values, unreadable dates, Y/N flags, cross-row checks): 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.
Checking the mapped records (decimal places, value ranges, field widths): row is the
record’s Serial No, not its Excel row, because blank rows are skipped and a record’s
position no longer matches the sheet. field is the full path, such as
ebrcBulkGenDtos.20.mappedIRMAmountFCC, where 20 is the zero-based position of the record
in the file. Search the Serial No column for the row value to find the line.
The second pass runs only when the first finds nothing.
{ "statusCode": 400, "message": "Excel validation failed", "errors": [ { "row": 2, "field": "irmNumber", "message": "Required field \"irmNumber\" is missing" }, { "row": 4, "field": "isGstAvail", "message": "Invalid yesno value \"Yes\" in column \"Is GST Avail\". Expected Y or N." }, { "row": 7, "field": "irmDt", "message": "Invalid date value \"31/02/2024\" in column \"IRM Date\". Expected a date as DD/MM/YYYY, DD-MM-YYYY, DDMMYYYY, YYYY-MM-DD, or a real Excel date cell." } ]}
A record-level failure, reported against Serial No 21:
{ "statusCode": 400, "message": "Excel validation failed", "errors": [ { "row": 21, "field": "ebrcBulkGenDtos.20.mappedIRMAmountFCC", "message": "mappedIRMAmountFCC must be a number conforming to the specified constraints" } ]}
That message means the amount has more than 2 decimal places; see Amounts above.Each failing cell is reported exactly once: a cell whose value cannot be read is reported as
invalid, never additionally as missing.
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.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"eBRC API","description":"REST API to generate and manage eBRCs (electronic Bank Realisation Certificates) for Indian exporters. Onboard exporters, connect their DGFT account, pull inward remittances, and generate certificates via JSON or Excel, one API key.","colors":{"primary":"#3c49ad","light":"#8d9bff","dark":"#2e3a8f"},"logo":{"light":"https://mintcdn.com/eximfiles/ywpNCEde_SJKXcDR/public/logo-light.svg?fit=max\u0026auto=format\u0026n=ywpNCEde_SJKXcDR\u0026q=85\u0026s=8b5c16c9f764205374f74175f3600e97","dark":"https://mintcdn.com/eximfiles/ywpNCEde_SJKXcDR/public/logo-dark.svg?fit=max\u0026auto=format\u0026n=ywpNCEde_SJKXcDR\u0026q=85\u0026s=d6163f1b492211c3311705bb6b161563"},"favicon":"https://mintcdn.com/eximfiles/ywpNCEde_SJKXcDR/public/favicon.png?fit=max\u0026auto=format\u0026n=ywpNCEde_SJKXcDR\u0026q=85\u0026s=9b49d683d7ce827106701275646e51fa","api":{"openapi":"api-reference/openapi.json","examples":{"defaults":"required","prefill":true}},"appearance":{"default":"light"},"background":{"color":{"light":"#ffffff","dark":"#101540"}},"navbar":{"links":[{"href":"mailto:amin@eximfiles.io","label":"Support"},{"href":"https://console.ebrc.in/sign-in","label":"Sign in"}],"primary":{"type":"button","label":"Get an API key","href":"https://console.ebrc.in/sign-up"}},"footer":{"links":[{"header":"Legal","items":[{"label":"API Terms","href":"https://ebrc.in/api-terms"},{"label":"Terms of Service","href":"https://ebrc.in/terms-of-service"},{"label":"Privacy Policy","href":"https://ebrc.in/privacy-policy"},{"label":"Compliance \u0026 Security","href":"https://ebrc.in/compliance"}]}]},"search":{"prompt":"Search the eBRC API docs"},"seo":{"metatags":{"og:type":"website","og:site_name":"eBRC API","twitter:card":"summary_large_image","keywords":"eBRC API, DGFT eBRC, eBRC full form, generate eBRC via API, eBRC status check, bulk eBRC Excel, GenEBRC, eBRC integration India, purpose codes list India, AD code, FIRC vs eBRC, EDPMS, Bank Realization Certificate"},"organization":{"name":"eBRC","url":"https://ebrc.in","logo":"https://ebrc.in/brand/ebrc-mark-round-512.png","sameAs":["https://ebrc.in","https://eximfiles.io"]},"indexing":"all"},"fonts":{"family":"Familjen Grotesk"},"styling":{"eyebrows":"section","codeblocks":"dark","latex":false},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"eximfiles","hasAudioNarration":false,"actualSubdomain":"eximfiles","customDomains":["docs.ebrc.in"],"gitSource":{"type":"github","owner":"eximfilesdev","repo":"ebrc-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ac5f5884c7e27d998e9c82b","collectionId":"285a13e7-41b0-45bd-99de-40ec63e96c13","liveDeploymentHistoryId":"6ac5f5884c7e27d998e9c82b","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ac5f5884c7e27d998e9c82b","clientVersion":"0.0.3965","searchFilterCounts":[{"language":"default","tag":"API Reference","count":40},{"language":"default","tag":"Guides","count":8},{"language":"default","tag":"Platform customers","count":6},{"language":"default","tag":"Annexures","count":5},{"language":"default","tag":"Reference data","count":5},{"language":"default","tag":"eBRC generation","count":5},{"language":"default","tag":"Pricing and terms","count":4},{"language":"default","tag":"Data extraction","count":3},{"language":"default","tag":"IRM","count":3},{"language":"default","tag":"Essentials","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"@font-face{font-family:'Familjen Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/familjengrotesk/v11/Qw3LZR9ZHiDnImG6-NEMQ41wby8WRnYsfkunR_eGfMGJaSzt.ttf) format('truetype')}@font-face{font-family:'Familjen Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/familjengrotesk/v11/Qw3LZR9ZHiDnImG6-NEMQ41wby8WRnYsfkunR_eGfMG7aSzt.ttf) format('truetype')}@font-face{font-family:'Familjen Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/familjengrotesk/v11/Qw3LZR9ZHiDnImG6-NEMQ41wby8WRnYsfkunR_eGfMFXbizt.ttf) format('truetype')}@font-face{font-family:'Familjen Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/familjengrotesk/v11/Qw3LZR9ZHiDnImG6-NEMQ41wby8WRnYsfkunR_eGfMFubizt.ttf) format('truetype')}@font-face{font-family:'Familjen Grotesk';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/familjengrotesk/v11/Qw31ZR9ZHiDnImG6-NEMQ41wby8WbH8egZPOLG0oe9RBKsSueVw.ttf) format('truetype')}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKxjPQ.ttf) format('truetype')}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/jetbrainsmono/v24/tDbY2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8FqtjPQ.ttf) format('truetype')}a,blockquote,body,button,dd,dt,figcaption,h1,h2,h3,h4,h5,h6,input,label,li,p,select,span,td,textarea,th{font-family:'Familjen Grotesk',system-ui,-apple-system,sans-serif}.font-mono,[class*=font-mono],[class*=font-mono] *,code,code *,kbd,pre,pre *,samp{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace!important}h1{letter-spacing:-.025em}h2{letter-spacing:-.02em}::selection{background:rgba(60,73,173,.22)}"}],"page":{"pagePath":"api-reference/genebrc/bulk-upload","slug":"/api-reference/genebrc/bulk-upload","pageMetadata":{"title":"Bulk Upload via Excel","description":"Upload a filled Excel file to generate eBRCs in bulk. Each row is validated before anything is filed, and errors come back per row with field and message.","openapi":"POST /genebrc/bulk-upload","href":"/api-reference/genebrc/bulk-upload"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Upload a filled Excel file to generate eBRCs in bulk. Each row is validated before anything is filed, and errors come back per row with field and message.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Upload an Excel file (`,_jsx(_components.code,{children:`.xlsx`}),` or `,_jsx(_components.code,{children:`.xls`}),`, max `,_jsx(_components.strong,{children:`5 MB`}),` and `,_jsx(_components.strong,{children:`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 `,_jsx(_components.strong,{children:`5 calls per minute`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Download the starting file from `,_jsx(_components.a,{href:`/api-reference/genebrc/bulk-upload-template`,children:`Download Bulk Upload Template`}),`, or `,_jsx(_components.a,{href:`/api-reference/irm/bulk-template`,children:`pre-filled with real IRM data`}),`. Extracting rows from shipping bill PDFs first? See `,_jsx(_components.a,{href:`/api-reference/extraction/shipping-bills`,children:`Shipping Bill extraction`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`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, every row stating the invoice’s full value in the same currency; a file whose rows for one shipping bill disagree on the value or currency is refused before filing, because DGFT refuses those rows hours later, and so is a file whose mapped amounts for one shipping bill add up to more than that value. DGFT issues one eBRC per row. See `,_jsx(_components.a,{href:`/api-reference/genebrc/bulk-upload-template#one-row-per-irm-to-invoice-mapping`,children:`the template page`}),` for the worked example.`]}),`\n`,_jsx(Heading,{level:`3`,id:`request-example`,children:`Request example`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"https://api.ebrc.in/api/v1/genebrc/bulk-upload?uploadType=101\u0026decalarationFlag=Y\u0026platformCustomerId=ee849a90-7a28-49b4-8cb2-8e31041650a2\"`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"x-api-key: \u003cYOUR_API_KEY>\"`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` -F`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` \"file=@/path/to/ebrc-data.xlsx\"`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Query parameters:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Values`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`platformCustomerId`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:`Platform customer UUID`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`uploadType`})}),_jsx(_components.td,{children:`Yes`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`101`}),` Direct Export, `,_jsx(_components.code,{children:`102`}),` Softex, `,_jsx(_components.code,{children:`103`}),` Service Non IT, `,_jsx(_components.code,{children:`104`}),` Deemed`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`decalarationFlag`})}),_jsx(_components.td,{children:`Yes`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Y`}),` or `,_jsx(_components.code,{children:`N`}),` (spelling as per DGFT specification)`]})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`response`,children:`Response`}),`\n`,_jsx(_components.p,{children:`Alongside the DGFT acknowledgement, the response echoes back every IRM that was parsed and submitted:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`parsedRowCount`}),`: how many rows were read from the file`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`irmNumbers`}),`: flat list of the submitted IRM numbers, in file order`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`irms`}),`: the same rows with `,_jsx(_components.code,{children:`serialNo`}),`, `,_jsx(_components.code,{children:`irmDt`}),`, `,_jsx(_components.code,{children:`irmAdCode`}),`, `,_jsx(_components.code,{children:`irmIfscCode`}),`, and `,_jsx(_components.code,{children:`sbCumInvoiceNumber`})]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.code,{children:`irms`}),` rather than `,_jsx(_components.code,{children:`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.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`32`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`32`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"success\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"dgftAckId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"ACK202404010001\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"requestId\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"IEC1234560120240001ABCDE12345\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"ackStatus\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Validated\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"recordResCount\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"errorDetails\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"parsedRowCount\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"irmNumbers\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"IRM0000012345\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"IRM0000012346\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"irms\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"serialNo\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"irmNumber\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"IRM0000012345\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"irmDt\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"2024-01-10\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"irmAdCode\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"6390005\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"irmIfscCode\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"HDFC0000123\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"sbCumInvoiceNumber\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"INV-2024-001\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"serialNo\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"irmNumber\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"IRM0000012346\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"irmDt\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"2024-01-11\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"irmAdCode\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"6390005\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"irmIfscCode\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"HDFC0000123\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"sbCumInvoiceNumber\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"INV-2024-002\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"statusCode\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`200`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"timestamp\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"2026-07-22T13:00:00.000Z\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`validation-rules`,children:`Validation rules`}),`\n`,_jsx(_components.p,{children:`Validation runs entirely before anything is filed, so a file either passes in full or is\nrejected in full — a partially-filed batch is not possible.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Mandatory columns.`}),` 19 of the 37 columns must have a value in every non-blank row:`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`Serial No`}),`, `,_jsx(_components.code,{children:`Upload Type`}),`, `,_jsx(_components.code,{children:`Branch Code`}),`, `,_jsx(_components.code,{children:`IRM IFSC Code`}),`, `,_jsx(_components.code,{children:`IRM AD Code`}),`, `,_jsx(_components.code,{children:`IRM Number`}),`,\n`,_jsx(_components.code,{children:`IRM Date`}),`, `,_jsx(_components.code,{children:`IRM FCC`}),`, `,_jsx(_components.code,{children:`IRM Purpose Code`}),`, `,_jsx(_components.code,{children:`IRM Remit Amt FCC`}),`, `,_jsx(_components.code,{children:`SB Cum Invoice Number`}),`,\n`,_jsx(_components.code,{children:`SB Cum Invoice Date`}),`, `,_jsx(_components.code,{children:`Port Code`}),`, `,_jsx(_components.code,{children:`Bill No`}),`, `,_jsx(_components.code,{children:`SB Cum Invoice FCC`}),`,\n`,_jsx(_components.code,{children:`SB Cum Invoice Value In FCC`}),`, `,_jsx(_components.code,{children:`Mapped IRM Amount FCC`}),`, `,_jsx(_components.code,{children:`Is Vostro`}),`, `,_jsx(_components.code,{children:`Is GST Avail`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Everything else is optional, except the two conditional GST columns below. The full\ncolumn-by-column table is on the `,_jsx(_components.a,{href:`/api-reference/genebrc/bulk-upload-template`,children:`template page`}),`.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Value rules.`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Rule`}),_jsx(_components.th,{children:`Detail`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Headers`}),_jsx(_components.td,{children:`Matched by name, case- and punctuation-insensitive. Order does not matter; unknown columns are ignored.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Dates`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`DD/MM/YYYY`}),`, `,_jsx(_components.code,{children:`DD-MM-YYYY`}),`, `,_jsx(_components.code,{children:`DDMMYYYY`}),`, `,_jsx(_components.code,{children:`YYYY-MM-DD`}),`, or a real Excel date cell. Read `,_jsx(_components.strong,{children:`day-first`}),`, normalised to `,_jsx(_components.code,{children:`DDMMYYYY`}),`. Impossible dates (`,_jsx(_components.code,{children:`31/02/2024`}),`) are rejected. A date cell is read as the calendar day in India: a cell that carries a time of 18:30 (what an ERP export writes for midnight IST) is the next day, which is the day Excel would show in an Indian locale and the day the shipping bill carries.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Y/N columns`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`Y`}),` or `,_jsx(_components.code,{children:`N`}),`, either case. `,_jsx(_components.code,{children:`Yes`}),`, `,_jsx(_components.code,{children:`True`}),`, `,_jsx(_components.code,{children:`1`}),` are rejected.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Numbers`}),_jsxs(_components.td,{children:[`Digits, as a number or as text. `,_jsx(_components.code,{children:`Serial No`}),`, `,_jsx(_components.code,{children:`Upload Type`}),` and `,_jsx(_components.code,{children:`Branch Sl No`}),` are whole numbers.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Amounts`}),_jsxs(_components.td,{children:[`Every amount column (`,_jsx(_components.code,{children:`IRM Remit Amt FCC`}),`, `,_jsx(_components.code,{children:`SB Cum Invoice Value In FCC`}),`, `,_jsx(_components.code,{children:`Mapped IRM Amount FCC`}),`, `,_jsx(_components.code,{children:`Mapped ORM Amount FCC`}),`, and the deduction and info values) takes `,_jsx(_components.strong,{children:`at most 2 decimal places`}),`. The value stored in the cell is what is read, not what Excel displays: a formula such as `,_jsx(_components.code,{children:`=B2/3`}),` shows `,_jsx(_components.code,{children:`33.33`}),` but holds `,_jsx(_components.code,{children:`33.333333333333336`}),`, which has too many decimals. Wrap computed amounts in `,_jsx(_components.code,{children:`=ROUND(…, 2)`}),`, or paste them back as values after rounding. Keep the rounded amounts for one IRM within its remittance.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`GST`}),_jsxs(_components.td,{children:[`If `,_jsx(_components.code,{children:`Is GST Avail`}),` = `,_jsx(_components.code,{children:`Y`}),`, both `,_jsx(_components.code,{children:`GSTIN Invoice Number`}),` and `,_jsx(_components.code,{children:`GSTIN Invoice Date`}),` are required. If `,_jsx(_components.code,{children:`N`}),`, both must be `,_jsx(_components.strong,{children:`empty`}),` — a populated GSTIN column with `,_jsx(_components.code,{children:`N`}),` is an error.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`One shipping bill, several rows`}),_jsxs(_components.td,{children:[`Rows sharing `,_jsx(_components.code,{children:`SB Cum Invoice Number`}),`, `,_jsx(_components.code,{children:`SB Cum Invoice Date`}),` and `,_jsx(_components.code,{children:`Port Code`}),` must state the same `,_jsx(_components.code,{children:`SB Cum Invoice FCC`}),` and `,_jsx(_components.code,{children:`SB Cum Invoice Value In FCC`}),`, and their `,_jsx(_components.code,{children:`Mapped IRM Amount FCC`}),` must add up to no more than that value. A row on its own may not map more than its invoice value either. Both are refused with the arithmetic in the message.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Blank rows`}),_jsx(_components.td,{children:`A row with no values in any column is skipped, not reported.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`File`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`.xlsx`}),` or `,_jsx(_components.code,{children:`.xls`}),`, max 5 MB, first worksheet only.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Rows`}),_jsxs(_components.td,{children:[`At most `,_jsx(_components.strong,{children:`999`}),` data rows (excluding the header). DGFT types `,_jsx(_components.code,{children:`recordResCount`}),` as `,_jsx(_components.code,{children:`int(4)`}),` and refuses a larger message, so a file over the cap is rejected with `,_jsx(_components.code,{children:`400`}),` before any row is validated. Split a bigger sheet into batches and upload them one at a time.`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Codes are not validated against the DGFT masters at upload time, so a syntactically valid but\nwrong `,_jsx(_components.code,{children:`IRM Purpose Code`}),`, `,_jsx(_components.code,{children:`Port Code`}),` or currency code passes here and fails at DGFT. Check\nthem against the annexures linked below.`]}),`\n`,_jsx(Heading,{level:`3`,id:`row-level-validation-errors`,children:`Row-level validation errors`}),`\n`,_jsxs(_components.p,{children:[`If the file fails validation, the API returns `,_jsx(_components.code,{children:`400`}),` with one entry per failing cell. Validation\nruns in two passes, and `,_jsx(_components.code,{children:`row`}),` means something different in each:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Reading the sheet`}),` (missing values, unreadable dates, Y/N flags, cross-row checks): `,_jsx(_components.code,{children:`row`}),` is\nthe `,_jsx(_components.strong,{children:`Excel row number`}),` (row 1 is the header, so data starts at row 2) and `,_jsx(_components.code,{children:`field`}),` is the\nJSON field name from the `,_jsx(_components.a,{href:`/annexure/push-irm`,children:`annexure`}),`, not the column header.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Checking the mapped records`}),` (decimal places, value ranges, field widths): `,_jsx(_components.code,{children:`row`}),` is the\nrecord’s `,_jsx(_components.strong,{children:_jsx(_components.code,{children:`Serial No`})}),`, not its Excel row, because blank rows are skipped and a record’s\nposition no longer matches the sheet. `,_jsx(_components.code,{children:`field`}),` is the full path, such as\n`,_jsx(_components.code,{children:`ebrcBulkGenDtos.20.mappedIRMAmountFCC`}),`, where `,_jsx(_components.code,{children:`20`}),` is the zero-based position of the record\nin the file. Search the `,_jsx(_components.code,{children:`Serial No`}),` column for the `,_jsx(_components.code,{children:`row`}),` value to find the line.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`The second pass runs only when the first finds nothing.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"statusCode\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`400`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Excel validation failed\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"errors\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"row\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"field\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"irmNumber\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"message\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Required field `}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`irmNumber`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` is missing\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"row\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`4`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"field\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"isGstAvail\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"message\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Invalid yesno value `}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`Yes`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` in column `}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`Is GST Avail`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`. Expected Y or N.\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"row\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`7`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"field\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"irmDt\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"message\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Invalid date value `}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`31/02/2024`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` in column `}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`IRM Date`}),_jsx(_components.span,{style:{color:`#D7BA7D`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\\"`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`. Expected a date as DD/MM/YYYY, DD-MM-YYYY, DDMMYYYY, YYYY-MM-DD, or a real Excel date cell.\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`A record-level failure, reported against `,_jsx(_components.code,{children:`Serial No`}),` 21:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"statusCode\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`400`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Excel validation failed\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"errors\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"row\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#B5CEA8`,\"--shiki-dark\":`#B5CEA8`},children:`21`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"field\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"ebrcBulkGenDtos.20.mappedIRMAmountFCC\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`\"message\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"mappedIRMAmountFCC must be a number conforming to the specified constraints\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`That message means the amount has more than 2 decimal places; see `,_jsx(_components.strong,{children:`Amounts`}),` above.`]}),`\n`,_jsx(_components.p,{children:`Each failing cell is reported exactly once: a cell whose value cannot be read is reported as\ninvalid, never additionally as missing.`}),`\n`,_jsx(Heading,{level:`3`,id:`valid-codes`,children:`Valid codes`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/annexure/purpose-codes`,children:`Purpose Codes`}),`, `,_jsx(_components.a,{href:`/annexure/currency-codes`,children:`Currency Codes`}),`, and `,_jsx(_components.a,{href:`/annexure/port-codes`,children:`Port Codes`}),` for the code columns.`]}),`\n`,_jsxs(_components.li,{children:[`Field formats: `,_jsx(_components.a,{href:`/annexure/push-irm`,children:`Push IRM Request Fields annexure`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`next-steps`,children:`Next steps`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/api-reference/genebrc/status`,children:`Get Request Status`}),` with the returned `,_jsx(_components.code,{children:`requestId`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/api-reference/genebrc/list`,children:`List generation requests`}),` across your history.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/api-reference/genebrc/download`,children:`Download certificates`}),` once processed.`]}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Bulk Upload via Excel","description":"Upload a filled Excel file to generate eBRCs in bulk. Each row is validated before anything is filed, and errors come back per row with field and message.","openapi":"POST /genebrc/bulk-upload","href":"/api-reference/genebrc/bulk-upload"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Request example","slug":"request-example","depth":3,"children":[]},{"title":"Response","slug":"response","depth":3,"children":[]},{"title":"Validation rules","slug":"validation-rules","depth":3,"children":[]},{"title":"Row-level validation errors","slug":"row-level-validation-errors","depth":3,"children":[]},{"title":"Valid codes","slug":"valid-codes","depth":3,"children":[]},{"title":"Next steps","slug":"next-steps","depth":3,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/eximfiles/e66145a56b4c42d9/usage.js"],"openApiReferenceData":{"operation":{"description":"Upload a filled Excel file to generate eBRCs in bulk. Each row is validated before anything is filed, and errors come back per row with field and message.","parameters":["25041f84-f2db-4bee-8697-3aecee959ed5","6daad187-9346-421b-9fbb-8babe1729d6b","a4ecd5eb-cc4e-435f-9994-e6978e944d9c"],"requestBody":"3daeb1ce-c718-4d71-8d78-9d911191a96f","responses":{"200":"c0d9ef55-8309-493c-930a-77e7b155305a","400":"03e02799-e49d-4cb4-97d8-cca8157df91c"},"operationId":"bulkUploadEbrc","summary":"Bulk upload via Excel","method":"post","type":"path","servers":["f3db0958-ca96-4bdf-a120-1155e2635e37"],"security":["17dd6563-7385-47b2-a452-1101609b3e74"],"path":"/genebrc/bulk-upload","baseUrlOptions":["https://api.ebrc.in/api/v1"],"title":"Bulk upload via Excel","codeSamples":[],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.file":"\u003cstring>"}]},"dependencies":{"parameters":{"25041f84-f2db-4bee-8697-3aecee959ed5":{"name":"platformCustomerId","in":"query","required":true,"schema":{"type":"string","isRequired":true,"description":"Platform customer UUID","uniqueKey":"","typeLabel":"string"},"description":"Platform customer UUID"},"6daad187-9346-421b-9fbb-8babe1729d6b":{"name":"uploadType","in":"query","required":true,"schema":{"type":"string","enum":["101","102","103","104"],"isRequired":true,"description":"eBRC type code: 101 Direct Export, 102 Softex, 103 Service Non IT, 104 Deemed.","uniqueKey":"","typeLabel":"enum\u003cstring>"},"description":"eBRC type code: 101 Direct Export, 102 Softex, 103 Service Non IT, 104 Deemed."},"a4ecd5eb-cc4e-435f-9994-e6978e944d9c":{"name":"decalarationFlag","in":"query","required":true,"schema":{"type":"string","enum":["Y","N"],"isRequired":true,"description":"Declaration flag","uniqueKey":"","typeLabel":"enum\u003cstring>"},"description":"Declaration flag"}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"Excel file (.xlsx or .xls), max 5 MB","isRequired":true,"uniqueKey":"file","typeLabel":"file"}},"required":["file"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"file":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"c0d9ef55-8309-493c-930a-77e7b155305a":{"description":"DGFT acknowledgement with parsed row count","content":{"application/json":{"schema":{"type":"object","properties":{"dgftAckId":{"type":"string","uniqueKey":"dgftAckId","typeLabel":"string"},"requestId":{"type":"string","uniqueKey":"requestId","typeLabel":"string"},"ackStatus":{"type":"string","enum":["Validated","Failed"],"uniqueKey":"ackStatus","typeLabel":"enum\u003cstring>"},"recordResCount":{"type":"number","uniqueKey":"recordResCount","typeLabel":"number"},"errorDetails":{"type":"array","items":{"type":"object","uniqueKey":"errorDetails.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errorDetails","typeLabel":"object[]"},"parsedRowCount":{"type":"number","description":"Number of rows successfully parsed from the Excel file","uniqueKey":"parsedRowCount","typeLabel":"number"},"irmNumbers":{"type":"array","description":"Flat list of the IRM numbers submitted, in file order","items":{"type":"string","uniqueKey":"irmNumbers.items.[INDEX]","typeLabel":"string"},"uniqueKey":"irmNumbers","typeLabel":"string[]"},"irms":{"type":"array","description":"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.","items":{"type":"object","properties":{"serialNo":{"type":"number","uniqueKey":"irms.items.[INDEX].serialNo","typeLabel":"number"},"irmNumber":{"type":"string","uniqueKey":"irms.items.[INDEX].irmNumber","typeLabel":"string"},"irmDt":{"type":"string","uniqueKey":"irms.items.[INDEX].irmDt","typeLabel":"string"},"irmAdCode":{"type":"string","uniqueKey":"irms.items.[INDEX].irmAdCode","typeLabel":"string"},"irmIfscCode":{"type":"string","uniqueKey":"irms.items.[INDEX].irmIfscCode","typeLabel":"string"},"sbCumInvoiceNumber":{"type":"string","uniqueKey":"irms.items.[INDEX].sbCumInvoiceNumber","typeLabel":"string"}},"uniqueKey":"irms.items.[INDEX]","typeLabel":"object"},"uniqueKey":"irms","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"default":{"title":"default","value":{"dgftAckId":"ACK202401150001","requestId":"IEC1234560120240001ABCDE12345","ackStatus":"Validated","recordResCount":2,"errorDetails":[],"parsedRowCount":2,"irmNumbers":["IRM0000012345","IRM0000012346"],"irms":[{"serialNo":1,"irmNumber":"IRM0000012345","irmDt":"2024-01-10","irmAdCode":"6390005","irmIfscCode":"HDFC0000123","sbCumInvoiceNumber":"INV-2024-001"},{"serialNo":2,"irmNumber":"IRM0000012346","irmDt":"2024-01-11","irmAdCode":"6390005","irmIfscCode":"HDFC0000123","sbCumInvoiceNumber":"INV-2024-002"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"03e02799-e49d-4cb4-97d8-cca8157df91c":{"description":"Excel validation failed, row-level errors returned","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number","uniqueKey":"statusCode","typeLabel":"number"},"message":{"type":"string","uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"row":{"type":"number","uniqueKey":"errors.items.[INDEX].row","typeLabel":"number"},"field":{"type":"string","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"validationError":{"title":"validationError","value":{"statusCode":400,"message":"Excel validation failed","errors":[{"row":2,"field":"irmNumber","message":"Required field \"irmNumber\" is missing"},{"row":4,"field":"isGstAvail","message":"Must be Y or N"}]}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"17dd6563-7385-47b2-a452-1101609b3e74":{"x-api-key":{"type":"apiKey","name":"x-api-key","in":"header","scopes":[]}}},"servers":{"f3db0958-ca96-4bdf-a120-1155e2635e37":{"url":"https://api.ebrc.in/api/v1","description":"eBRC API. One base URL for both modes: a dev_ API key runs in test mode, a prod_ key files live."}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","name":"x-api-key","in":"header","scopes":[]},"schema":{"title":"x-api-key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"x-api-key","name":"x-api-key"}],"title":"x-api-key"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"eximfiles","siteName":"eBRC API","title":"Bulk Upload via Excel - eBRC API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-03T16:29:56.083Z","originalFileLocation":"api-reference/genebrc/bulk-upload.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Upload a filled Excel file to generate eBRCs in bulk. Each row is validated before anything is filed, and errors come back per row with field and message.\">\u003cmeta data-mint-head name=\"keywords\" content=\"eBRC API, DGFT eBRC, eBRC full form, generate eBRC via API, eBRC status check, bulk eBRC Excel, GenEBRC, eBRC integration India, purpose codes list India, AD code, FIRC vs eBRC, EDPMS, Bank Realization Certificate\">\u003cmeta data-mint-head name=\"application-name\" content=\"eBRC API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintcdn.com/eximfiles/ywpNCEde_SJKXcDR/public/favicon.png?fit=max\u0026amp;auto=format\u0026amp;n=ywpNCEde_SJKXcDR\u0026amp;q=85\u0026amp;s=9b49d683d7ce827106701275646e51fa\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintcdn.com/eximfiles/ywpNCEde_SJKXcDR/public/favicon.png?fit=max\u0026amp;auto=format\u0026amp;n=ywpNCEde_SJKXcDR\u0026amp;q=85\u0026amp;s=9b49d683d7ce827106701275646e51fa\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintcdn.com/eximfiles/ywpNCEde_SJKXcDR/public/favicon.png?fit=max\u0026amp;auto=format\u0026amp;n=ywpNCEde_SJKXcDR\u0026amp;q=85\u0026amp;s=9b49d683d7ce827106701275646e51fa\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/png\" href=\"https://mintcdn.com/eximfiles/ywpNCEde_SJKXcDR/public/favicon.png?fit=max\u0026amp;auto=format\u0026amp;n=ywpNCEde_SJKXcDR\u0026amp;q=85\u0026amp;s=9b49d683d7ce827106701275646e51fa\">\u003cmeta data-mint-head property=\"og:title\" content=\"Bulk Upload via Excel - eBRC API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Upload a filled Excel file to generate eBRCs in bulk. Each row is validated before anything is filed, and errors come back per row with field and message.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"eBRC API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.ebrc.in/api-reference/genebrc/bulk-upload\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://eximfiles.mintlify.app/_mintlify/api/og/v2?division=Bulk+and+Excel\u0026amp;title=Bulk+Upload+via+Excel\u0026amp;description=Upload+a+filled+Excel+file+to+generate+eBRCs+in+bulk.+Each+row+is+validated+before+anything+is+filed%2C+and+errors+come+back+per+row+with+field+and+message.\u0026amp;theme=b1617cf1cccc8755c98f5316\u0026amp;signature=c67c8fb575ffaafbdc29d44bc06bf934226e2a122866905fc2d52d964937dec2\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Bulk Upload via Excel - eBRC API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Upload a filled Excel file to generate eBRCs in bulk. Each row is validated before anything is filed, and errors come back per row with field and message.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://eximfiles.mintlify.app/_mintlify/api/og/v2?division=Bulk+and+Excel\u0026amp;title=Bulk+Upload+via+Excel\u0026amp;description=Upload+a+filled+Excel+file+to+generate+eBRCs+in+bulk.+Each+row+is+validated+before+anything+is+filed%2C+and+errors+come+back+per+row+with+field+and+message.\u0026amp;theme=b1617cf1cccc8755c98f5316\u0026amp;signature=c67c8fb575ffaafbdc29d44bc06bf934226e2a122866905fc2d52d964937dec2\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/eximfiles/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"eBRC API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3c49ad\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.ebrc.in/api-reference/genebrc/bulk-upload\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/genebrc/bulk-upload.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://ebrc.in/#organization\",\"name\":\"eBRC\",\"url\":\"https://ebrc.in\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://ebrc.in/brand/ebrc-mark-round-512.png\"},\"sameAs\":[\"https://ebrc.in\",\"https://eximfiles.io\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.ebrc.in#website\",\"name\":\"eBRC API\",\"url\":\"https://docs.ebrc.in\",\"publisher\":{\"@id\":\"https://ebrc.in/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.ebrc.in/api-reference/genebrc/bulk-upload#webpage\",\"url\":\"https://docs.ebrc.in/api-reference/genebrc/bulk-upload\",\"name\":\"Bulk Upload via Excel\",\"description\":\"Upload a filled Excel file to generate eBRCs in bulk. Each row is validated before anything is filed, and errors come back per row with field and message.\",\"dateModified\":\"2026-10-03T16:29:56.083Z\",\"isPartOf\":{\"@id\":\"https://docs.ebrc.in#website\"},\"breadcrumb\":{\"@id\":\"https://docs.ebrc.in/api-reference/genebrc/bulk-upload#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.ebrc.in/api-reference/genebrc/bulk-upload#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.ebrc.in/api-reference/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bulk and Excel\",\"item\":\"https://docs.ebrc.in/api-reference/genebrc/bulk-upload-template\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Bulk Upload via Excel\",\"item\":\"https://docs.ebrc.in/api-reference/genebrc/bulk-upload\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.ebrc.in/api-reference/genebrc/bulk-upload#apireference\",\"headline\":\"Bulk Upload via Excel\",\"name\":\"Bulk Upload via Excel\",\"description\":\"Upload a filled Excel file to generate eBRCs in bulk. Each row is validated before anything is filed, and errors come back per row with field and message.\",\"url\":\"https://docs.ebrc.in/api-reference/genebrc/bulk-upload\",\"mainEntityOfPage\":{\"@id\":\"https://docs.ebrc.in/api-reference/genebrc/bulk-upload#webpage\"},\"dateModified\":\"2026-10-03T16:29:56.083Z\",\"publisher\":{\"@id\":\"https://ebrc.in/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.ebrc.in#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"eBRC API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"eBRC API","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"group":"Platform customers","pages":[{"title":"Create Customer","openapi":"POST /platform-customers","href":"/api-reference/customer/create"},{"title":"Validate Customer","openapi":"POST /platform-customers/{id}/check-dgft-credentials","href":"/api-reference/customer/validate"},{"title":"Get Customers List","openapi":"GET /platform-customers","href":"/api-reference/customer/get"},{"title":"Get Customer by Id","openapi":"GET /platform-customers/{id}","href":"/api-reference/customer/getById"},{"title":"Update Customer","openapi":"PATCH /platform-customers/{id}","href":"/api-reference/customer/update"},{"title":"Delete Customer","openapi":"DELETE /platform-customers/{id}","href":"/api-reference/customer/delete"}]},{"group":"IRM","pages":[{"title":"Fetch IRM List","openapi":"POST /irm/refresh","href":"/api-reference/irm/post"},{"title":"List Saved IRMs","openapi":"GET /irm","href":"/api-reference/irm/list"},{"title":"Load IRMs in Excel","openapi":"GET /irm/bulk-template","href":"/api-reference/irm/bulk-template"}]},{"group":"eBRC generation","pages":[{"title":"Submit IRMs for eBRC Generation","openapi":"POST /genebrc/push-irm","href":"/api-reference/genebrc/push-irm"},{"title":"Get Request Status","openapi":"POST /genebrc/status","href":"/api-reference/genebrc/status"},{"title":"List Generation Requests","openapi":"GET /genebrc","href":"/api-reference/genebrc/list"},{"title":"Fetch eBRC Details","openapi":"POST /genebrc/fetch-details","href":"/api-reference/genebrc/fetch-details"},{"title":"Download eBRC PDF","href":"/api-reference/genebrc/download"}]},{"group":"Bulk and Excel","pages":[{"title":"Download Bulk Upload Template","description":"Download the Excel bulk upload template for eBRC generation, with all 37 column headers and three example rows, then fill one row per IRM-to-invoice mapping.","openapi":"GET /genebrc/bulk-upload/template","href":"/api-reference/genebrc/bulk-upload-template"},{"title":"Bulk Upload via Excel","openapi":"POST /genebrc/bulk-upload","href":"/api-reference/genebrc/bulk-upload"}]},{"group":"Data extraction","pages":[{"title":"Data Extraction","description":"Turn shipping bill PDFs into the structured fields you need to map remittances and file eBRCs, with a report on whether each document agreed with its own arithmetic.","href":"/api-reference/extraction/introduction"},{"title":"Extract Shipping Bill Data","href":"/api-reference/extraction/shipping-bills"},{"title":"Verification","href":"/api-reference/extraction/verification"}]}]}]},{"tab":"Annexures","pages":[{"title":"Annexures","href":"/annexure/push-irm"}]},{"tab":"Pricing and terms","pages":[{"title":"Pricing and terms","href":"/pricing"}]}]},"title":"Bulk Upload via Excel - eBRC API","buildId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","deploymentId":"dpl_849ArpqvBiCczQiT1Y1stNGpbqHT","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Bbp7I60D.js","utils-C3RIvJha.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DqD-vLt8.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B31Loprg.js","snippetPresets-DKpk-b8t.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Cj65AhOR.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BXtn5gcC.js","shallow-RY2b03Cp.js","getApiPlaygroundDisplay-B0jeiPk3.js","CodeSnippet-CYgBjjwn.js","CodeSnippets-DOngDrYB.js","Page-n7I5XbKb.js","getPastedJson-DRQbJx-T.js","icon-CQiQCicY.js","MethodPill-BKTLdNtu.js","DuplicateIcon-B9jpAdat.js","createIcon-DCddRrXv.js","DynamicMarkdown-a8hUKrw6.js","SectionHeading-eECVV2eH.js","axios-vUo_bRtp.js","Markdown--GF7ZIpf.js","clsx-DZLdJUrt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-2LoAhjKH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Zwc0ZncM.js"]}