prro-fiscal

Validates CAdES signatures for Ukrainian PRRO fiscal documents against tax server requirements.

Updated May 18, 2025
One-click install
npx skills add https://github.com/VSydorenko/SimplyAddinConnect --skill prro-fiscal-vsydorenko
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: prro-fiscal
Source: https://github.com/VSydorenko/SimplyAddinConnect/tree/main/.claude/skills/prro-fiscal
Command: npx skills add https://github.com/VSydorenko/SimplyAddinConnect --skill prro-fiscal-vsydorenko

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Signing fiscal documents (receipts, Z-reports) for the Ukrainian tax authority's fiscal server (ЄВПЕЗ/ФСКО) fails with cryptic rejections when the CAdES signature does not meet strict normative rules. This Skill consolidates the verified signature requirements, error codes, and rejection causes so you can produce accepted signatures and diagnose failures. ## Core Features & Use Cases - Signature format rules: Documents the mandatory DSTU 4145-2002 algorithm, CAdES-E-T/enveloping structure, embedded signer certificate, and the forbidden elements (CRL, OCSP responses, issuer certificates, content-time-stamp) that cause rejections. - Error diagnosis: Maps fiscal server error codes (9 DocumentValidationError, 12 CryptographyError, 3 InvalidTin) to their typical root causes, including OCSP outages at certificate authorities. - Kupina hash migration: Explains the DSTU 7564 (Kupina) transition, the new signature OID 1.2.804.2.1.1.1.1.3.6.1.1, and the September 2026 enforcement timeline. - Use Case: Your PRRO integration returns "DocumentValidationError" for every signed receipt. Use this Skill to identify that a forbidden content-time-stamp was added to the CMS SignedData and correct the UAPKI SIGN parameters. ## Quick Start Ask the assistant to check why the fiscal server rejects your signed PRRO receipt and which UAPKI signParams to use.

Frequently Asked Questions about prro-fiscal

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I sign PRRO fiscal receipts for the Ukrainian tax server?

Sign receipts with a DSTU 4145-2002 CAdES enveloping signature where the document sits inside the CMS eContent and the signer certificate is embedded. Via UAPKI, use the SIGN method with detachedData:false, includeCert:true, and includeContentTS:false.

Why does the fiscal server return DocumentValidationError code 9?

Code 9 covers XSD validation plus cryptographic and structural signature violations. Common causes are a forbidden content-time-stamp in the signature, an expired signer certificate, or the tax server failing its own OCSP check against the issuing CA.

What is forbidden inside a CAdES signature for PRRO documents?

The signature must not contain issuer or CA chain certificates, CRLs, OCSP responses, or a content-time-stamp. The tax server verifies the certificate itself via the issuer's OCSP, so these embedded elements trigger rejection.

Does the Kupina DSTU 7564 transition change the PRRO signature algorithm?

No, the signature algorithm remains DSTU 4145-2002; only the internal hash function changes from GOST 34311 to Kupina-256. The new hybrid signature OID is 1.2.804.2.1.1.1.1.3.6.1.1, mandatory for certificates issued from September 2026.

Can I test PRRO signing without a production fiscal server?

Yes, send documents containing the <TESTING>true</TESTING> element to the production server, which registers them as non-fiscal test documents. Standalone test keys were discontinued in December 2021, so real certificates from registered test taxpayers are required.