> ## 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.

# Quick Start

> Generate your first eBRC via the API: create an exporter, connect DGFT, fetch inward remittances, submit them for generation, and track by request ID.

This guide walks the full lifecycle once: create an exporter, connect their DGFT account, pull their remittances, submit them for generation, and track the request.

## Before you begin

1. An API key, issued per [environment](/environments). Create your account in the eBRC API console to request one; for help, email [amin@eximfiles.io](mailto:amin@eximfiles.io).
2. The exporter's DGFT portal credentials.

<Note>
  The API is free for general use, so you can complete this whole guide without any billing setup. See [Pricing](/pricing).
</Note>

Set `BASE_URL` to your environment's base URL, for example `https://ebrcapi.eximfiles.io/api/v1` for production. See [Environments and Base URLs](/environments).

<Note>
  Services are enabled after **24 hours** of customer validation.
</Note>

## Steps to generate an eBRC

<Steps>
  <Step title="Create a platform customer">
    Create the exporter entity you will generate for. See [Create Customer](/api-reference/customer/create).

    ```bash theme={"dark"}
    curl --location "$BASE_URL/platform-customers/" \
      --header 'Content-Type: application/json' \
      --header 'x-api-key: <YOUR_API_KEY>' \
      --data-raw '{
        "name": "Rohan Mehta",
        "email": "finance@suryatextiles.example.com",
        "type": "customer",
        "companyName": "Surya Textile Exports Pvt Ltd",
        "address": "Tiruppur, Tamil Nadu"
      }'
    ```

    The response's `data.id` is the `platformCustomerId` used in every later call.
  </Step>

  <Step title="Validate DGFT credentials">
    Connect the exporter's DGFT account. See [Validate Customer](/api-reference/customer/validate). This endpoint is limited to 4 calls per minute.

    ```bash theme={"dark"}
    curl --location "$BASE_URL/platform-customers/ee849a90-7a28-49b4-8cb2-8e31041650a2/check-dgft-credentials" \
      --header 'x-api-key: <YOUR_API_KEY>' \
      --header 'Content-Type: application/json' \
      --data-raw '{
        "dgftUsername": "<DGFT_USERNAME>",
        "dgftPassword": "<DGFT_PORTAL_PASSWORD>"
      }'
    ```
  </Step>

  <Step title="Fetch IRMs">
    Pull the exporter's inward remittances. See [Fetch IRM List](/api-reference/irm/post).

    ```bash theme={"dark"}
    curl --location --request POST "$BASE_URL/irm/refresh?platformCustomerId=ee849a90-7a28-49b4-8cb2-8e31041650a2" \
      --header 'x-api-key: <YOUR_API_KEY>' \
      --header 'Content-Type: application/json' \
      --data ''
    ```
  </Step>

  <Step title="Submit IRMs for generation">
    Map each IRM to its invoice and submit. See [Submit IRMs for eBRC Generation](/api-reference/genebrc/push-irm) and the [field reference](/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.

    ```bash theme={"dark"}
    curl --location "$BASE_URL/genebrc/push-irm" \
      --header 'x-api-key: <YOUR_API_KEY>' \
      --header 'Content-Type: application/json' \
      --data-raw '{
        "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
          }
        ]
      }'
    ```

    Keep the returned `requestId`. If validation fails, the exact messages are listed under [common validation errors](/errors#common-validation-errors).
  </Step>

  <Step title="Check request status">
    Poll with your request ID. See [Get Request Status](/api-reference/genebrc/status).

    <Note>
      Available in Production and Sandbox. In Production, a generation request is typically acknowledged within about 2 hours.
    </Note>

    ```bash theme={"dark"}
    curl --location --request POST "$BASE_URL/genebrc/status" \
      --header 'x-api-key: <YOUR_API_KEY>' \
      --header 'Content-Type: application/json' \
      --data-raw '{
        "platformCustomerId": "ee849a90-7a28-49b4-8cb2-8e31041650a2",
        "requestId": "IEC1234560120240001ABCDE12345"
      }'
    ```

    Once processed, [fetch details](/api-reference/genebrc/fetch-details) or [download the certificate PDF](/api-reference/genebrc/download).
  </Step>
</Steps>

## Prefer Excel?

Skip the JSON payload: [download the pre-filled template](/api-reference/genebrc/bulk-upload-template), fill it, and [upload it back](/api-reference/genebrc/bulk-upload). Validation errors come back per row.

## Need help?

<Card title="Contact support" icon="envelope" href="mailto:amin@eximfiles.io">
  Email [amin@eximfiles.io](mailto:amin@eximfiles.io) and quote the requestId from your API response.
</Card>
