# Start Transformation Job

Starting a Transformation Job. In case any selected data source does not have a `dataMappingDefinition` an API error returned.

Endpoint: POST /jobs/transformationjobs
Version: 5
Security: apiKey

## Security:

  - `apiKey` (unknown)
    apiKey in header X-API-KEY

## Request body:

  - `application/json` (unknown)
    cmd

## Request fields (application/json):

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

  - `dataSourceId` (string)
    Unique identifier for a Data Source of the Storage. 

If set, only the records that belong to the data source identified by this ID are transformed.
By default, all records of the Business Partner Storage (means from all data sources) are transformed.
    Example: 648824a691d8d2503d65103e

  - `countries` (array)
    List of countries for which the records should be transformed.

  - `countries.shortName` (string, required)
    Country code (ISO 3166-1 alpha-2).
    Example: CH

  - `storageId` (string, required)
    Unique identifier of the Storage.
    Example: 72d6900fce6b326088f5d9d91049e3e6

  - `dataMapperDefinitionId` (string)
    ID of related Data Mapper Definition that is used for mapping data of this Business Partner Storage.
    Example: 6440dba32b30176c5917b1b7

  - `startAfter` (string)
    Processes transformation of records starting from the ID 'startAfter'.
    Example: NjI4ZGNkZjAzYjlkMjY4NjhlNjQxNDRm

  - `businessPartnerIds` (array)
    List of Business Partner IDs to be transformed.

  - `featuresOn` (array)

## Request examples:

  - `Transform HCP/HCO Business Partners` (unknown)

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

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

  - `domain` (string)
    Domain of a Business Partner Storage.
    Example: BusinessPartner

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

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

  - `createdAt` (string)
    Date of creation (ISO 8601-compliant).
    Example: 2026-10-21T13:37:19Z

  - `modifiedAt` (string)
    Date of modification (ISO 8601-compliant).
    Example: 2026-10-21T13:37:19Z

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

  - `status` (string)
    Job execution status.
    Example: RUNNING

  - `statusMessage` (string)
    The status message contains the error message if the transformation job failed.
    Example: DataSource [5e2874fb8d2a7400011acee1] has no DataMapperDefinition attached and no alternative dataMapperDefinitionId was passed to the job

  - `storageId` (string)
    Unique identifier of the Storage.
    Example: 72d6900fce6b326088f5d9d91049e3e6

  - `dataSourceId` (string)
    Unique identifier for a Data Source of the Storage.
    Example: 648824a691d8d2503d65103e

  - `dataMapperDefinitionId` (string)
    ID of related Data Mapper Definition that is used for mapping data of this Business Partner Storage.
    Example: 6440dba32b30176c5917b1b7

  - `featuresOn` (array)

  - `result` (object)
    The result of a Transformation Job.

  - `result.statistics` (object)
    The statistics of a transformation job.

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

  - `result.statistics.numberOfFailed` (integer)
    The number of failed transformation.
    Example: 10

  - `result.statistics.numberOfInvalidMappings` (integer)
    The number of records that failed because of invalid mappings.
    Example: 3

  - `result.statistics.failures` (array)
    List of failures.

  - `result.statistics.failures.businessPartnerId` (string)
    Technical identifier of a business partner record, unique within the CDQ.
    Example: 63e635235c06b7396330fe40

  - `result.statistics.failures.message` (string)
    Details about why the record failed.
    Example: Invalid path 'Postal code' (Use bracket notation...)

  - `result.statistics.failuresStartAfter` (string)
    The ID which is used to read the page of failures.
    Example: NmEyOThlMGM4MTAyNTI3NWM2M2M1Y2I3

  - `result.statistics.failuresNextStartAfter` (string)
    Provides a value to be used as a startAfter in next page request.
    Example: NmEyOThlMGM4MTAyNTI3NWM2M2M1Y2I3

## Response 400:

  - `400` (unknown)
    The sent request is malformed.

## Response 400 fields (application/json):

  - `status` (object)
    Details about status or error of a service

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

  - `status.technicalKey` (string)
    Technical key describing the status or error
    Example: OK

  - `status.details` (array)

  - `status.details.id` (integer, required)
    9-digit code which is uniquely identifying a message
    Example: 200000004

  - `status.details.message` (string, required)
    Human-readable message which may also be presented in user interface.
    Example: The job came to an end and finished successfully.

  - `status.details.technicalKey` (string)
    Technical key to uniquely identify a message.
    Example: JOB_FINISHED

  - `status.details.jsonPath` (string)
    JSONPath as specified by the IETF standard
    Example: $.businessPartner.names[0].value

  - `status.details.jsonRecord` (string)
    Object provided in plain JSON format.
    Example: { "key" : "value"}

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

  - `status.timestamp` (string)
    ISO 8601 representation of the timestamp.
    Example: 2026-10-21T13:37:19Z

## Response 401:

  - `401` (unknown)
    Unauthorized

## Response 403:

  - `403` (unknown)
    Forbidden

