> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ebrc.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit IRMs for eBRC Generation

> Submit one or many IRM-to-invoice mappings to DGFT for eBRC generation as JSON, then poll the returned requestId for status while DGFT processes the request.

Submit one or more IRM-to-invoice mappings for eBRC generation. You get back a DGFT acknowledgement with a `requestId`; keep it and [poll status](/api-reference/genebrc/status). Limited to **10 calls per minute**.

<Note>
  Available in Production and Sandbox. In Production, acknowledgement typically arrives within about **2 hours**.
</Note>

See the full field list and constraints in the [Push IRM Request Fields annexure](/annexure/push-irm). Dates are `DDMMYYYY` strings. The message-level `uploadType` is a string code and the item-level one is a number: 101 Direct Export, 102 Softex, 103 Service Non IT, 104 Deemed.

### Request body example

```json theme={"dark"}
{
  "platformCustomerId": "ee849a90-7a28-49b4-8cb2-8e31041650a2",
  "recordResCount": 1,
  "uploadType": "101",
  "decalarationFlag": "Y",
  "ebrcBulkGenDtos": [
    {
      "serialNo": 1,
      "uploadType": 101,
      "branchSlNo": 0,
      "irmIfscCode": "HDFC0000123",
      "irmAdCode": "6390005",
      "irmNumber": "IRM0000012345",
      "irmDt": "01042024",
      "irmFCC": "USD",
      "irmPurposeCode": "P0101",
      "irmRemitAmtFCC": 25000,
      "sbCumInvoiceNumber": "SB7654321",
      "sbCumInvoiceDate": "15032024",
      "portCode": "INMAA1",
      "billNo": "EXP-2024-0042",
      "sbCumInvoiceFCC": "USD",
      "sbCumInvoiceValueinFCC": 25000,
      "mappedIRMAmountFCC": 25000,
      "isVostro": "N",
      "isGstAvail": "N",
      "gstinInvoiceNumber": null,
      "gstinInvoiceDate": null
    }
  ]
}
```

`recordResCount` must equal the number of entries in `ebrcBulkGenDtos`. `decalarationFlag` keeps its wire spelling (as per DGFT specification). When `isGstAvail` is `"Y"`, `gstinInvoiceNumber` and `gstinInvoiceDate` become mandatory; when `"N"`, they must be `null`.

### Response example

```json theme={"dark"}
{
  "success": true,
  "data": {
    "dgftAckId": "ACK202404010001",
    "requestId": "IEC1234560120240001ABCDE12345",
    "ackStatus": "Validated",
    "recordResCount": 1,
    "errorDetails": []
  },
  "statusCode": 200,
  "timestamp": "2026-07-22T10:35:00.000Z"
}
```

### `ackStatus` values

| Value       | Meaning                                    |
| ----------- | ------------------------------------------ |
| `Validated` | Request accepted for processing            |
| `Failed`    | Acknowledgement failed, see `errorDetails` |

### Errors

* `400` with `message: "Validation failed"` and per-field `errors`. The exact messages are listed under [common validation errors](/errors#common-validation-errors).
* `422` / `409` for DGFT credential problems. See [DGFT credential error codes](/errors#dgft-credential-error-codes).

### Valid codes

* [Purpose Codes](/annexure/purpose-codes) for `irmPurposeCode`
* [Currency Codes](/annexure/currency-codes) for `irmFCC` and `sbCumInvoiceFCC`
* [Port Codes](/annexure/port-codes) for `portCode`

### Next steps

* [Get Request Status](/api-reference/genebrc/status) with the returned `requestId`.
* [List generation requests](/api-reference/genebrc/list) across your history.
* Prefer Excel? [Bulk upload](/api-reference/genebrc/bulk-upload) instead.


## OpenAPI

````yaml POST /genebrc/push-irm
openapi: 3.1.0
info:
  title: eBRC API
  description: >-
    REST API for generating and managing electronic Bank Realization
    Certificates (eBRC) through DGFT's GenEBRC module. Onboard exporters,
    validate their DGFT credentials, pull inward remittance (IRM) data, submit
    certificate generation requests singly or in bulk, and track them to
    completion. All JSON responses are wrapped in the standard envelope {
    success, data, statusCode, timestamp }; the schemas on each endpoint
    describe the data field.
  contact:
    name: Eximfiles support
    email: amin@eximfiles.io
  version: 1.0.0
servers:
  - url: https://ebrcapi.eximfiles.io/api/v1
    description: Production
  - url: https://ebrcapi.dev.eximfiles.com/api/v1
    description: Sandbox
security:
  - x-api-key: []
paths:
  /genebrc/push-irm:
    post:
      summary: Submit IRMs for eBRC generation
      description: >-
        Submit IRM records to DGFT's GenEBRC module for eBRC generation.
        Available in Production and Sandbox. In Production, DGFT acknowledges
        within about 2 hours; poll POST /genebrc/status with the returned
        requestId.
      operationId: pushIrm
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PushIrmRequest'
            examples:
              default:
                summary: Submit one IRM for eBRC generation
                value:
                  platformCustomerId: ee849a90-7a28-49b4-8cb2-8e31041650a2
                  recordResCount: 1
                  uploadType: '101'
                  decalarationFlag: 'Y'
                  ebrcBulkGenDtos:
                    - serialNo: 1
                      uploadType: 101
                      branchSlNo: 0
                      irmIfscCode: HDFC0000123
                      irmAdCode: '6390005'
                      irmNumber: IRM0000012345
                      irmDt: '01042024'
                      irmFCC: USD
                      irmPurposeCode: P0101
                      irmRemitAmtFCC: 25000
                      sbCumInvoiceNumber: SB7654321
                      sbCumInvoiceDate: '15032024'
                      portCode: INMAA1
                      billNo: EXP-2024-0042
                      sbCumInvoiceFCC: USD
                      sbCumInvoiceValueinFCC: 25000
                      mappedIRMAmountFCC: 25000
                      isVostro: 'N'
                      isGstAvail: 'N'
                      gstinInvoiceNumber: null
                      gstinInvoiceDate: null
      responses:
        '200':
          description: Acknowledgement with DGFT Ack Id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PushIrmResponse'
              examples:
                default:
                  summary: DGFT acknowledgement
                  value:
                    dgftAckId: ACK202404010001
                    requestId: IEC1234560120240001ABCDE12345
                    ackStatus: Validated
                    recordResCount: 1
                    errorDetails: []
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    PushIrmRequest:
      type: object
      properties:
        platformCustomerId:
          type: string
        recordResCount:
          type: number
        uploadType:
          type: string
          description: >-
            eBRC type code as a string: "101" Direct Export, "102" Softex, "103"
            Service Non IT, "104" Deemed.
        decalarationFlag:
          type: string
          description: >-
            Exporter declaration flag, Y or N (spelling as per DGFT
            specification).
        ebrcBulkGenDtos:
          type: array
          items:
            $ref: '#/components/schemas/EbrcBulkGen'
      required:
        - platformCustomerId
        - recordResCount
        - uploadType
        - decalarationFlag
        - ebrcBulkGenDtos
    PushIrmResponse:
      type: object
      properties:
        dgftAckId:
          type: string
        requestId:
          type: string
        ackStatus:
          type: string
          description: Push acknowledgement status
          enum:
            - Validated
            - Failed
        recordResCount:
          type: number
        errorDetails:
          type: array
          items:
            type: object
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
    EbrcBulkGen:
      type: object
      properties:
        serialNo:
          type: number
        uploadType:
          type: number
          description: >-
            eBRC type code: 101 Direct Export, 102 Softex, 103 Service Non IT,
            104 Deemed.
        branchSlNo:
          type: number
        irmIfscCode:
          type: string
        irmAdCode:
          type: string
        irmNumber:
          type: string
        irmDt:
          type: string
          description: IRM date in DDMMYYYY format, e.g. 01042024.
        irmFCC:
          type: string
          description: >-
            IRM foreign currency code (ISO 4217). See the [Currency Codes
            annexure](/annexure/currency-codes).
        irmPurposeCode:
          type: string
          description: >-
            RBI purpose code for the inward remittance. See the [Purpose Codes
            annexure](/annexure/purpose-codes).
        irmRemitAmtFCC:
          type: number
        sbCumInvoiceNumber:
          type: string
        sbCumInvoiceDate:
          type: string
          description: Shipping bill / SOFTEX / invoice date in DDMMYYYY format.
        portCode:
          type: string
          description: >-
            Port of export as per DGFT master data. See the [Port Codes
            annexure](/annexure/port-codes).
        billNo:
          type: string
        sbCumInvoiceFCC:
          type: string
          description: >-
            Invoice currency code (ISO 4217). See the [Currency Codes
            annexure](/annexure/currency-codes).
        sbCumInvoiceValueinFCC:
          type: number
        mappedIRMAmountFCC:
          type: number
        isVostro:
          type: string
        vostroType:
          type: string
          nullable: true
        mappedORMAmountFCC:
          type: number
          nullable: true
        isThirdPartyExport:
          type: string
          nullable: true
        commissionValDeduct:
          type: number
          nullable: true
        commissionValInfo:
          type: number
          nullable: true
        discountValDeduct:
          type: number
          nullable: true
        discountValInfo:
          type: number
          nullable: true
        insuranceValDeduct:
          type: number
          nullable: true
        insuranceValInfo:
          type: number
          nullable: true
        otherDeductionDeduct:
          type: number
          nullable: true
        otherdeductionsInfo:
          type: number
          nullable: true
          description: >-
            Other deduction for information, in invoice FCC (spelling as per
            DGFT specification).
        freightValDeduct:
          type: number
          nullable: true
        freightValInfo:
          type: number
          nullable: true
        sacCode1:
          type: string
        sacCode2:
          type: string
          nullable: true
        serviceTypeModesValue:
          type: number
          nullable: true
        isGstAvail:
          type: string
        gstinInvoiceNumber:
          type: string
        gstinInvoiceDate:
          type: string
          description: >-
            GST invoice date in DDMMYYYY format. Mandatory when isGstAvail is Y;
            must be null when N.
  securitySchemes:
    x-api-key:
      type: apiKey
      name: x-api-key
      in: header

````