For the complete documentation index, see llms.txt. This page is also available as Markdown.

Split

When more than one polished diamond is created from a single rough diamond, each piece (or split) to be polished needs to be registered as a child diamond from the parent diamond.

As a prerequisite, the parent diamond must have a verification_status set to Verified. Tracr will reject any modification operation on a diamond if Tracr did not previously verify the diamond.

Tracr supports many iterations of split where a rough parent diamond may have multiple generations of children.

An important note regarding split

Once a diamond is marked as split, it is considered as destroyed in Tracr inventory, and won’t be visible anymore in the portal or API. Therefore, any subsequent operations like 'polish' on this diamond will be rejected by Tracr.

Step 1 – Set the parent diamond’s lifecycle to split

The parent diamond must be marked as split before you can create child rough diamonds.

Call POST /wemz3zvg7cvr5uugivhib1z0/split

{
    "participant_timestamp": "2024-05-31T11:57:06.304594"
}
{
    "assurance_level": "assured",
    "box_id": "demo_box",
    "current_stage": "rough",
    "diamond_id": "wemz3zvg7cvr5uugivhib1z0",
    "entity_specific_tags": {},
    "id": "b0733d6f-a3b1-4532-be2b-d352bad46fd6",
    "is_current": true,
    "lifecycle_state": "split",
    "participant_id": "demo_1",
    "participant_timestamp": "2024-05-31T11:57:06.304594+00:00",
    "polished": {},
    "possession_state": "destroyed",
    "producer_uuid": "952e8987-9e49-437b-824c-5c9a77ce7eee",
    "provenance": {
        "provenance_name": "",
        "provenance_type": "Entity",
        "is_locked": false,
        "is_country_code_available": false
    },
    "rough": {
        "carats": 2.16,
        "images": [
            {
                "filename": "demo_1_rough.jpeg",
                "description": "Rough Image",
                "hash": "cf02abefba1b4837b35f45b7f578251046b3bb100d129ff5adc77342d7e0f8a9",
                "image_type": "default"
            }
        ]
    },
    "schema_version": "1.1.0",
    "sight_no": 2,
    "sight_year": 2024,
    "system_timestamp": "2024-05-31T11:58:04.763000+00:00",
    "verification_description": "verified record",
    "verification_status": "Verified",
    "version_id": "jwzorn6beors6zusvw2drklg",
    "verification_status_modified_at": "2024-05-31T11:41:26.068930+00:00"
}

Once the diamond is split, the lifecycle_state is split and the possession_state is destroyed.

Step 2 – Create a child rough diamond

A child diamond is always considered as a rough diamond when created in Tracr. It's declared by passing the diamond_id of the parent rough diamond in the call.

A child diamond inherits all the traceability data from its parent.

When declaring a child diamond against a parent diamond, Tracr retrieves all the children already registered then uses a control to check that the sum of carat weights of the children doesn't exceed the carat weight of the parent. If the control fails, the registration of the child diamond is rejected.

Each child receives a new Tracr diamond_id.

Call POST /diamonds/wemz3zvg7cvr5uugivhib1z0/rough/create

The child diamond is linked to its parent.

The field diamond_parent_id contains the Tracr ID diamond_id from the parent.

The field participant_parent_id contains the ERP participant_id from the parent.

Once the child diamond is created, you can attach additional assets like images, videos, and scans.

For example,

Call POST /diamonds/a2uj544df5t5awu5v792wyj6/file/images

Key
Value

description

Split Image

image_type

default

file

split_demo_1.jpg

Last updated