# Start DNB Import Job

To start a D&B Import Job use the following request

curl -X POST \
  --url 'https://api.corporate-data-league.ch/data-exchange/rest/jobs/dnbimportjobs?dnbUser=optional&dnbPassword=optional' \
  -u 'BasicAuthUserName:your_credentials'\
  -H 'Accept: application/json' \
  -F 'file=@your_file.csv'

with using this sample file:

DUNS
305211311
DNB:305211311

The file can be a csv or xlsx. The file should contain only one column with the DUNS number.
In the first row should the header DUNS. The DUNS number can be in following forms:
- As CDQ-ID. Example or DNB:305211311
- as raw DUNS 305211311

The DUNS consist of 9 digits. When the input DUNS does not consist of 9 digits, leading zeros are added.

Endpoint: POST /jobs/dnbimportjobs
Version: 4
Security: apiKey

## Query parameters:

  - `name` (string)
    Name of the job.
    Example: "Process vendor data."

  - `description` (string)
    Description of the job.
    Example: "I started this job to improve quality of our data."

  - `dnbUser` (string)
    Optional, if credentials are available in user or organization settings.
    Example: "username"

  - `dnbPassword` (string)
    Optional, if credentials are available in user or organization settings.
    Example: "password"

  - `featuresOn` (array)
    Feature to be activated.
    Enum: "ENRICH_COMMERCIAL_ULTIMATE", "ENABLE_PARTIAL_QUOTA_CONSUMPTION", "SKIP_DNB_IMPORT", "INCREMENT", "ACTIVATE_MASTER_DATA_EXTENDED"

  - `dnbDataSource` (string)
    D&B product that should be downloaded from D&B and put into specific D&B storage.
    Enum: "DNB", "DNB_MASTER_DATA_BASIC", "DNB_MASTER_DATA_MGMT", "DNB_MASTER_DATA_LNKG", "DNB_MASTER_DATA_EXTENDED", "DNB_LINKAGE_LNKELI"

## Request fields (multipart/form-data):

  - `file` (string)
    XLSX or CSV file to be uploaded, containing mandatory DUNS column (SOAP currently only supports CSV).
    Example: "CH-import.csv"

## Response 200 fields (application/json):

  - `id` (string)
    Unique identifier of a job.
    Example: "35f23c03-1c22-45fe-9484-3ffe769325de"

  - `name` (string)
    Name of a Job.
    Example: "Process vendor data."

  - `description` (string)
    Detailed description of a Job.
    Example: "I started this job to improve quality of our data."

  - `progress` (integer)
    Progress (%) of the job.
    Example: "77"

  - `status` (string)
    Job execution status.
    Enum: "ARCHIVED", "UNKNOWN", "CREATED", "PERSISTED", "SCHEDULED", "WAITING", "COULDNT_START", "RUNNING", "FINISHED", "DIED", "CANCELED", "FAILED"

  - `statusMessage` (string)
    Message describing the status of the job.
    Example: "Job is running"

  - `createdBy` (string)
    Creator of a resource.
    Example: "76248934691294444"

  - `createdAt` (string)
    Date of creation (ISO 8601-compliant).
    Example: "2026-06-11T13:28:07Z"

  - `modifiedAt` (string)
    Date of modification (ISO 8601-compliant).
    Example: "2026-06-11T13:28:07Z"

  - `result` (object)
    Result of D&B import job.

  - `result.statistics` (object)
    Statistics of D&B import job.

  - `result.statistics.numberOfRecords` (integer)
    Number of records in the Business Partner Storage.
    Example: "500"

  - `result.statistics.numberOfDuplicates` (number)
    Number of duplicates in input file which have the same DUNS.
    Example: "5"

  - `result.statistics.numberOfInserts` (number)
    Number of newly created records.
    Example: "100"

  - `result.statistics.numberOfUpdates` (number)
    Number of updated records.
    Example: "100"

  - `result.statistics.numberOfFailed` (number)
    Number of records updates / retrieves fails.
    Example: "50"

  - `result.statistics.numberOfQuotaExceeded` (integer)
    Number of not processed records which exceeded defined quota limit.
    Example: "100"

  - `result.statistics.numberOfUnknown` (number)
    Number of non-retrieved records from D&B service.
    Example: "100"

## Response 400 fields (application/json):

  - `id` (string)
    Unique identifier of the error.
    Example: "5c6a2c7e-9b0a-4e1a-8b0a-4e1a8b0a4e1a"

  - `path` (string)
    Requested path which caused this error.
    Example: "/v2/businesspartners/lookup"

  - `code` (integer)
    Use 'status' instead.
    Example: "400"

  - `status` (integer)
    RFC 7231 status code for this error.
    Example: "400"

  - `timestamp` (string)
    ISO 8601 representation of the timestamp.
    Example: "2026-06-11T13:28:07Z"

  - `error` (string)
    RFC 7231 error which belongs to the status code.
    Example: "BAD_REQUEST"

  - `message` (string)
    Details about the error.
    Example: "This user is not allowed to access this service."


