# 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

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

  - `dataTransformationDefinitionId` (string)
    Unique identifier for a data transformation definition.
    Example: "SAP.ODM"

  - `batchSize` (integer)
    [Private Content](# "cdq-badge private-content") Defines the number of records that are processed at once.
    Example: "100"

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

  - `limit` (integer)
    [Private Content](# "cdq-badge private-content") Determines how many elements are allowed to be processed at all. Independent of batchSize.
    Example: "10"

  - `businessPartnerIds` (array)
    List of Business Partner IDs to be transformed.
    Example: ["63e635235c06b7396330fe40"]

  - `featuresOn` (array)
    Enum: "ENABLE_EXTERNAL_ID_UPDATE", "UPSERT_CHANGES_ONLY"

  - `tags` (array)
    [Private Content](# "cdq-badge private-content") List of tags.
    Example: ["tag1"]

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

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

  - `createdAt` (string)
    Date of creation (ISO 8601-compliant).
    Example: "2026-06-03T12:58:32Z"

  - `modifiedAt` (string)
    Date of modification (ISO 8601-compliant).
    Example: "2026-06-03T12:58:32Z"

  - `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)
    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"

  - `dataTransformationDefinitionId` (string)
    Unique identifier for a data transformation definition.
    Example: "SAP.ODM"

  - `featuresOn` (array)
    Example: ["UPSERT_CHANGES_ONLY"]

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

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

## 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-06-03T12:58:32Z"


## Response 401 fields

## Response 403 fields
