Handover receipt

Who accepted a job, when, what they received and whether it was accepted as is, with a stamped signature per handover.

soporte-de-recepcion, with the premium design: the paper that proves a person received something at a given moment.

"workOrder": { "number": "OT-2026-0417",                          // required: the order it cites
               "date": "2026-10-14", "clase": "Preventivo" },
"asset": { "nombre": "Planta eléctrica de emergencia", "codigo": "EQ-PE-002", "ubicacion": "…" },
"billTo": { "name": "…" },                                        // who it was handed over to
"receptions": [                                                   // required: at least one
  {
    "loRecibido": "Rutina preventiva trimestral ejecutada…",
    "conformidad": "Conforme",                                    // or «Recibido con observaciones»
    "observacion": "…",
    "firma": {
      "nombre": "Marcela Ospina Jaramillo",                       // required
      "documento": "CC 43.210.555", "rol": "Administradora",
      "trazo": "data:image/png;base64,…",                         // optional, PNG or JPEG
      "sello": { "fechaHora": "2026-10-14 12:05:31 -05:00",       // required
                 "recibidoPor": "App de campo",
                 "origen": "Envigado · dispositivo ADM-003",
                 "referencia": "REC-2026-0417-1" }
    }
  }
],
"qr": "OT-2026-0417|REC-3|2026-10-20T15:40:12-05:00"              // optional
  • It is a separate document from the work order, because it is signed at another moment and by someone else: the order is issued when the job starts and this is signed on handover, sometimes days later and sometimes several times. That is why it carries the whole list: the history is what turns a loose sheet into proof of how the job was handed over.
  • The engine does not judge whether a handover was valid. It prints the ones that arrive with the stamp they carry. Deciding whether a delivery was acceptable belongs to whoever received it.
  • A conformidad that doesn’t read «conforme» is printed highlighted, framed and in capitals, so it stands out even in black and white. And observacion is printed in full: a receipt that hides the objection is useless for what it exists for.
  • Each handover stays on a single page with its signature: a signature detached from the line saying what was received proves nothing, because what is signed is that delivery and no other.
  • The timestamp arrives as data and is never generated: the handover happened when the person signed, not when the PDF was composed. The time is printed exactly as it arrives, with no timezone conversion.
  • The qr is drawn with the content you send, never with a URL built here. Without qr no box is drawn.
  • Required: workOrder.number, at least one handover, and for each one firma.nombre and firma.sello.fechaHora —who and when—. Without those the response is 400 naming the incomplete handover.
  • It also comes as an 80 mm receipt with "plantilla": "tirilla": each handover with its signature right below it, to sign and hand the paper over on site.
  • And on half-letter with "plantilla": "media-carta", to file two per sheet.
  • And as a duplicate with "plantilla": "doble": a landscape letter split in two, the same receipt on both halves —labelled «Original» and «Copia»— with a cut line, so each party keeps a signed copy without printing twice.
  • And in four more palettes —corporativa (blue), profesional (green), minimalista (violet) and basica (orange)—: the same sheet with a different accent on the title, the table headers and the bands. The default design is still premium, in grey, and the other paper sizes come in it.
  • It also accepts notes, fields and sideNotes.

Example: soporte-de-recepcion.json.