The certificate of destruction from draft to deliveryAll articles

The certificate of destruction from draft to delivery

The certificate of destruction is the document an audit attaches to. This case shows the five stages that make it reliable.

Published: 2026-09-12Reading time: 4 mintapinomahub API & workflows
API & processesDocuments & PDFAPI

The certificate is often treated as a final step: the vehicle is recycled, so fill in the form. An audit then asks who approved it, when it was issued and whether the keeper actually received the document — and a printout without that chain answers none of these.

The certificate of destruction from draft to deliveryInput: a case where the vehicle is determined end-of-life and properly treated 1. Create the draft (POST /compliance/cases/{id}/certificates): legalProfile and issuerFacilityId — rule set and issuing site 2. Approve (POST /compliance/certificates/{id}/approve): attestationId identifies the person who approved — not the system 3. Prepare the print set (POST /compliance/certificates/{id}/prepare-print): renderProfile and copySetReference for the official form set 4. Issue (POST /compliance/certificates/{id}/issue-electronic): signatureEnvelopeId and serializationVersion; the paper route has its own call 5. Deliver (POST /compliance/certificates/{id}/deliveries): recipientPartyId, medium and deliveredAt — delivery is itself an event Output: an issued certificate whose path from approval to recipient is evidenced The legal issuer is the recognised facility, not the platform. platformRole and issuerSnapshot record that.The certificate of destruction from draft to deliveryInput: a case where the vehicle is determined end-of-life and properly treated01Create the draftPOST /compliance/cases/{id}/certificateslegalProfile and issuerFacilityId — rule set and issuing site02ApprovePOST /compliance/certificates/{id}/approveattestationId identifies the person who approved — not the system03Prepare the print setPOST /compliance/certificates/{id}/prepare-printrenderProfile and copySetReference for the official form set04IssuePOST /compliance/certificates/{id}/issue-electronicsignatureEnvelopeId and serializationVersion; the paper route has its own call05DeliverPOST /compliance/certificates/{id}/deliveriesrecipientPartyId, medium and deliveredAt — delivery is itself an eventOutput: an issued certificate whose path from approval to recipient is evidencedThe legal issuer is the recognised facility, not the platform. platformRole and issuerSnapshot record that.
Five calls from draft to delivery. The approval names a person, not a system.

The certificate is therefore not a form here but a sequence of events with separated responsibilities: draft, approval by a named person, preparation of the print set, issuance and delivery. Every stage is evidenced individually.

SurfaceRoles
ComplianceVehicle recyclers

What this case requires

  • A case in which the vehicle is determined end-of-life. Without a status determination the certificate lacks its basis.
  • A recognised issuing site. The draft names it in issuerFacilityId; issuer and acting person are derived by the server from the login, not from the call.
  • A person authorised to sign. The approval is attributed to a person, not to the facility in general.
  • A decision on the route. Electronic or as a German paper certificate — each has its own call.

The sequence

The table names the responsible call per stage and what exists afterwards. The reasoning for why a stage cannot be skipped follows below it.

The call chain of this use case
StageCallWhat exists afterwards
Create the draftPOST /compliance/cases/{id}/certificateslegalProfile and issuerFacilityId — rule set and issuing site
ApprovePOST /compliance/certificates/{id}/approveattestationId identifies the person who approved — not the system
Prepare the print setPOST /compliance/certificates/{id}/prepare-printrenderProfile and copySetReference for the official form set
IssuePOST /compliance/certificates/{id}/issue-electronicsignatureEnvelopeId and serializationVersion; the paper route has its own call
DeliverPOST /compliance/certificates/{id}/deliveriesrecipientPartyId, medium and deliveredAt — delivery is itself an event

Why each stage is needed

  1. Create the draft. POST /compliance/cases/{id}/certificates takes legalProfile and issuerFacilityId — the rule set and the issuing site. A draft is not yet a certificate — which is exactly why it exists.
  2. Approve. POST /compliance/certificates/{id}/approve carries approvedAt and an attestation identifier. This stage is the core of auditability: it identifies the person who approved. A system approves nothing, and accordingly the contract requires a signed-in person who has re-confirmed their login; an API key alone is not enough.
  3. Prepare the print set. POST /compliance/certificates/{id}/prepare-print takes a render profile and a copy-set reference. The official form has several copies; which copy goes where is part of the duty and not a question for the printer.
  4. Issue. POST /compliance/certificates/{id}/issue-electronic carries the signature envelope and serialisation version. For the paper route there is a dedicated call, POST /compliance/certificates/{id}/issue-de-paper, recording the place of issue and the four original copies — two routes, one state.
  5. Deliver. POST /compliance/certificates/{id}/deliveries carries recipient, medium and delivery time. Delivery is itself an event, because “issued” and “arrived with the keeper” are two different facts.
Approve a certificate attributably to a person
curl -X POST \
  -H 'Cookie: __Host-tapinomahub_session=<SITZUNG>' \
  -H 'X-CSRF-Token: <CSRF_TOKEN>' \
  -H 'X-Compliance-Organisation-Id: <ORGANISATION>' \
  -H 'If-Match: "<etag>"' \
  -H 'Idempotency-Key: freigabe-2026-09-12-017' \
  -H 'Content-Type: application/json' \
  -d '{"approvedAt":"2026-09-12T10:15:00Z","attestationId":"<attestationId>"}' \
  'https://api.tapinomahub.com/compliance/certificates/<id>/approve'

What you end up with

In the end an issued certificate exists whose path from approval through issuance to the recipient is evidenced. In an audit the question “who approved this” is no longer research but a field.

Where to find this in the documentation

The binding field lists, error codes and sample responses live in this surface’s OpenAPI contract at docs.tapinomahub.com (tapinoma-compliance). All use cases arranged by surface and role: overview of the use cases.

Frequently asked

Do I need the draft if I already have the data?

Yes. The contract provides no other entry point: approval, print preparation and issuance start from the previously created draft. Approval and issuance are separate from it.

Paper or electronic?

Both are provided for, each with its own call. The paper route records place of issue and number of originals, the electronic one the signature envelope.

Why is delivery a separate call?

Because issuance and delivery are different facts. An issued certificate that never reaches the keeper is an open case.