The CDR (Receipt Acknowledgment) is the document that the OSE issues as the result of validating a receipt or summary. It confirms that the document was received and verified, and it is the legal evidence that the electronic issuance process was completed correctly.
General characteristics
- XML format based on ApplicationResponse UBL 2.1
- Digitally signed with the OSE's digital certificate registered with SUNAT
- Includes a unique UUID v4 authorization number (structure
8-4-4-4-12) per receipt
ResponseCode: 0 indicates that the document was accepted
- May include observations (codes 4000+) without invalidating the document
CDR types
The OSE issues two types of CDR depending on the method used:
Receipt CDR
Returned by sendBill in the applicationResponse field.
UBLVersionIDan..10UBL version. Fixed value: 2.1/ApplicationResponse/cbc:UBLVersionID
CustomizationIDan..10OSE CDR version. Fixed value: 1.0/ApplicationResponse/cbc:CustomizationID
ID (UUID)an..36Authorization number. UUID v4 structure: 8-4-4-4-12/ApplicationResponse/cbc:ID
IssueDatean..10Date of receipt by the OSE. Format: YYYY-MM-DD/ApplicationResponse/cbc:IssueDate
IssueTimean..12Time of receipt by the OSE. Format: hh:mm:ss.sssss/ApplicationResponse/cbc:IssueTime
ResponseDatean..10Date of verification by the OSE. Format: YYYY-MM-DD/ApplicationResponse/cbc:ResponseDate
ResponseTimean..12Time of verification by the OSE. Format: hh:mm:ss.sssss/ApplicationResponse/cbc:ResponseTime
SenderParty / CompanyIDan..15RUC of the issuer or PSE that sent the receipt/ApplicationResponse/cac:SenderParty/cac:PartyLegalEntity/cbc:CompanyID
ReceiverParty / CompanyIDan..11RUC of the OSE. Must correspond to an OSE registered in the SUNAT registry/ApplicationResponse/cac:ReceiverParty/cac:PartyLegalEntity/cbc:CompanyID
ResponseCoden1Response code. Value 0 = document accepted/ApplicationResponse/cac:DocumentResponse/cac:Response/cbc:ResponseCode
Descriptionan..250Response description/ApplicationResponse/cac:DocumentResponse/cac:Response/cbc:Description
StatusReasonCoden4Observation code (conditional). Codes 4000+, do not invalidate the document/ApplicationResponse/cac:DocumentResponse/cac:Response/cac:Status/cbc:StatusReasonCode
StatusReasonan..1000Observation description (conditional)/ApplicationResponse/cac:DocumentResponse/cac:Response/cac:Status/cbc:StatusReason
DocumentReference / IDan..13Series and number of the receipt. Format: SSSS-NNNNNNNN/ApplicationResponse/cac:DocumentResponse/cac:DocumentReference/cbc:ID
DocumentReference / IssueDatean..10Issue date of the receipt. Format: YYYY-MM-DD/ApplicationResponse/cac:DocumentResponse/cac:DocumentReference/cbc:IssueDate
DocumentReference / IssueTimean..12Issue time of the receipt. Format: hh:mm:ss.sssss/ApplicationResponse/cac:DocumentResponse/cac:DocumentReference/cbc:IssueTime
DocumentTypeCoden2Receipt type per Catalog 01. Example: 01 (Invoice), 03 (Sales ticket)/ApplicationResponse/cac:DocumentResponse/cac:DocumentReference/cbc:DocumentTypeCode
DocumentHashan..250Hash of the receipt to verify integrity/ApplicationResponse/cac:DocumentResponse/cac:DocumentReference/cac:Attachment/cac:ExternalReference/cbc:DocumentHash
IssuerParty / CompanyIDan..15RUC of the receipt issuer/ApplicationResponse/cac:DocumentResponse/cac:IssuerParty/cac:PartyLegalEntity/cbc:CompanyID
RecipientParty / CompanyIDan..15Identity document number of the receiver/ApplicationResponse/cac:DocumentResponse/cac:RecipientParty/cac:PartyLegalEntity/cbc:CompanyID
Summary CDR
Returned by getStatus in the content field after a submission with sendSummary. It shares the base structure with the Receipt CDR, with differences in the document reference fields.
UBLVersionIDan..10UBL version. Fixed value: 2.1/ApplicationResponse/cbc:UBLVersionID
CustomizationIDan..10OSE CDR version. Fixed value: 1.0/ApplicationResponse/cbc:CustomizationID
ID (UUID)an..36Authorization number. UUID v4 structure: 8-4-4-4-12/ApplicationResponse/cbc:ID
IssueDatean..10Date of receipt by the OSE. Format: YYYY-MM-DD/ApplicationResponse/cbc:IssueDate
IssueTimean..12Time of receipt by the OSE. Format: hh:mm:ss.sssss/ApplicationResponse/cbc:IssueTime
ResponseDatean..10Date of verification by the OSE. Format: YYYY-MM-DD/ApplicationResponse/cbc:ResponseDate
ResponseTimean..12Time of verification by the OSE. Format: hh:mm:ss.sssss/ApplicationResponse/cbc:ResponseTime
SenderParty / CompanyIDan..15RUC of the issuer or PSE that sent the summary/ApplicationResponse/cac:SenderParty/cac:PartyLegalEntity/cbc:CompanyID
ReceiverParty / CompanyIDan..11RUC of the OSE that processed the summary/ApplicationResponse/cac:ReceiverParty/cac:PartyLegalEntity/cbc:CompanyID
ResponseCoden1Response code. Value 0 = summary accepted/ApplicationResponse/cac:DocumentResponse/cac:Response/cbc:ResponseCode
Descriptionan..250Response description/ApplicationResponse/cac:DocumentResponse/cac:Response/cbc:Description
StatusReasonCoden4Observation code (conditional). Does not invalidate the summary/ApplicationResponse/cac:DocumentResponse/cac:Response/cac:Status/cbc:StatusReasonCode
StatusReasonan..1000Observation description (conditional)/ApplicationResponse/cac:DocumentResponse/cac:Response/cac:Status/cbc:StatusReason
DocumentReference / IDan..13Summary identifier. Format: R#-########-#####/ApplicationResponse/cac:DocumentResponse/cac:DocumentReference/cbc:ID
DocumentReference / IssueDatean..10Issue date of the summary. Format: YYYY-MM-DD/ApplicationResponse/cac:DocumentResponse/cac:DocumentReference/cbc:IssueDate
DocumentTypeCoden2Summary type per Catalog 01. Example: RC (daily summary), RA (void), RR (reversal)/ApplicationResponse/cac:DocumentResponse/cac:DocumentReference/cbc:DocumentTypeCode
DocumentHashan..250Hash of the summary to verify integrity/ApplicationResponse/cac:DocumentResponse/cac:DocumentReference/cac:Attachment/cac:ExternalReference/cbc:DocumentHash
IssuerParty / CompanyIDan..15RUC of the summary issuer/ApplicationResponse/cac:DocumentResponse/cac:IssuerParty/cac:PartyLegalEntity/cbc:CompanyID
Response codes
0AcceptedThe document was accepted correctly by the OSE and SUNAT
≠ 0RejectedThe document was rejected. Check the Description field of the CDR for details
A CDR may include observations (StatusReasonCode field, codes 4000+) even when the ResponseCode is 0. Observations do not invalidate the document — they simply report conditions that the issuer must consider.
The CDR is always returned Base64-encoded in the applicationResponse (sendBill), content (getStatus) or document (getStatusCdr) fields. You must decode it to obtain the XML.