Context
PR #7 shipped GRE Remitente (tipoDoc=09) with modTraslado=02 (transporte privado, emisor mueve los bienes). When the customer hires a third-party carrier (modTraslado=01) or when the carrier itself emits the guía (tipoDoc=31), the schema diverges.
Scope
-
Modal 01 (transporte público)
- Add `cac:CarrierParty` block to `src/cpe/ubl/gre.ts`
- Validate transportista RUC + nroMtc (registro MTC)
- Make chofer optional (carrier provides their own)
-
GRE Transportista (tipoDoc 31)
- New UBL builder `src/cpe/ubl/gre-transportista.ts` (different schema entirely)
- New emit path in REST client (same endpoint, different content)
-
Multiple choferes — schema accepts loop, currently 1-only
Success criteria
- Modal 01 verified against SUNAT beta
- Transportista (31) verified against SUNAT beta
- Unit tests for each new schema variant
- LIMITATIONS.md: 4 sub-bullets in GRE section move from 🚧 to 🔬 or ⚠️
References
- LIMITATIONS.md → "Guía de Remisión Electrónica (GRE)" sub-limitations
- Greenter despatch2022.xml.twig has the full modal 01 + carrier blocks
Context
PR #7 shipped GRE Remitente (tipoDoc=09) with modTraslado=02 (transporte privado, emisor mueve los bienes). When the customer hires a third-party carrier (modTraslado=01) or when the carrier itself emits the guía (tipoDoc=31), the schema diverges.
Scope
Modal 01 (transporte público)
GRE Transportista (tipoDoc 31)
Multiple choferes — schema accepts loop, currently 1-only
Success criteria
References