About Sovos application responses
Application responses communicate document processing status through multiple status codes that describe your document's journey through the Sovos platform and tax authority systems.
Application responses are formatted in UBL 2.1 and carry status updates and attachments, such as cleared invoices, generated PDFs, or tax authority messages.
Where application responses appear
The Indirect Tax API returns application responses as Base64-encoded strings in the content field of the response in the following cases:
| Method | Endpoint | Description |
|---|---|---|
| POST | /documents | Document creation. Returns an application response only when you specify one business scope (for example, mapping) in the new document (synchronous). |
| GET | /documents/{countryCode}/{documentId}/notifications | Returns all notifications for a given document. |
| GET | /notifications/{countryCode} | Lists notifications pending acknowledgment for a given country. |
| GET | /notifications/{countryCode}/{notificationId} | Retrieves a specific notification. |
Response codes and status reason codes
Each application response contains one Sovos response code and several status reason codes that provide document status and help determine when further action is required.
The following response code and status reason codes can appear in the application response:
| Code | Code type | Display frequency | Description |
|---|---|---|---|
SCIResponseCode | Response code | Always | Shows the overall compliance status of the document. |
SCICloudStatusCode | Status reason code | At least once | Provides more specific information about the status of the document and helps you understand why the document received a particular SCIResponseCode. |
SCIGovtStatusCode | Status reason code | In some cases | Comes from the tax authority of the relevant market. |
SCIStatusAction | Status reason code | In some cases | Informs you when additional action is required. |
SCIInternalValidation | Status reason code | In some cases | Informs you when Sovos detects validation errors for market-specific validation. Shows the fields in the document that need to be fixed. |
The system performs schema validation sequentially, from top to bottom, according to the structure of the schema (XSD) for the applicable market. Validation stops and returns an error as soon as it finds a mandatory field, so no further validation is performed on the remaining fields.
SCIResponseCode (primary)
SCIResponseCode is a two-letter response code that is always included in the application response. It provides the overall compliance status of a document, the primary processing logic for implementers, and indicates whether a document has been processed successfully.
This is the most important status element within the application response. Base your primary decision logic on this code.
SCICloudStatusCode (detailed)
SCICloudStatusCode is a unique three-digit status code that provides additional status information for the SCIResponseCode. This code appears one or more times in the application response.
SCICloudStatusCode provides specific information about which processing stage completed or failed, giving you context for the SCIResponseCode.
Elements:
- StatusReason — Explains what the status code means.
- Text — May be included to offer more in-depth details.
SCIGovtStatusCode (tax authority)
SCIGovtStatusCode comes directly from the tax authority of certain countries. Sovos collects the tax authority response and passes along the raw error message to the calling application or customer.
This code offers similar information to the Sovos-generated SCIResponseCode and SCICloudStatusCode. However, it is usually accompanied by a local language rationale for the error, such as:
- Address field format is invalid
- Tax ID length is incorrect
- Duplicate invoice number
- Invalid tax calculation
Elements:
- StatusReason - Explains what the status code means (often in local language).
- SequenceID - May be included to represent the legal tracking ID provided by the tax authority.
For a comprehensive list of government status codes, go to the corresponding tax authority's website. Your country-specific implementation guide covers links to official tax authority error code documentation.
SCIStatusAction (action required)
SCIStatusAction is a three-letter status code based on SCIResponseCode. It identifies any additional required action and is included at least once in every application response.
SCIInternalValidation (validation errors)
SCIInternalValidation is a code that identifies country-specific schema validation errors. This code highlights the specific field or node that is causing validation errors so you can review and correct them.
When the Sovos validation service detects market-specific validation errors in the document, SCIInternalValidation appears in the application response showing exactly which fields need to be fixed.
Sample application response
A sample application response shows how status codes appear together in a single XML response.
<ApplicationResponse>
<cac:DocumentResponse>
<cac:Response>
<!-- PRIMARY: Overall status -->
<cbc:ResponseCode listID="SCIResponseCode">AP</cbc:ResponseCode>
<!-- DETAILED: Sovos processing status -->
<cac:Status>
<cbc:StatusReasonCode listID="SCICloudStatusCode">200</cbc:StatusReasonCode>
<cbc:StatusReason>Authorized by the tax authority</cbc:StatusReason>
</cac:Status>
<!-- TAX AUTHORITY: Government response -->
<cac:Status>
<cbc:StatusReasonCode listID="SCIGovtStatusCode">S100</cbc:StatusReasonCode>
<cbc:StatusReason>Invoice authorized. Number: 278754</cbc:StatusReason>
<cbc:SequenceID>278754</cbc:SequenceID>
</cac:Status>
<!-- ACTION: What to do -->
<cac:Status>
<cbc:StatusReasonCode listID="SCIStatusAction">NOA</cbc:StatusReasonCode>
<cbc:StatusReason>No action required</cbc:StatusReason>
</cac:Status>
</cac:Response>
</cac:DocumentResponse>
</ApplicationResponse>You receive all of these status codes in a single response. Check them in order to understand the complete status.
How status codes work together
Status codes work together to tell the complete story of your document's processing status.
Reading the complete story
- Step 1: Check SCIResponseCode first
- This tells you the overall outcome:
Code Name Meaning Next action AP Accepted Document approved Check SCICloudStatusCode for details, proceed with delivery. RE Rejected Document rejected or error Check SCICloudStatusCode and SCIGovtStatusCode for reason, fix, and resubmit. IP In Process Still processing Continue polling. CA Conditionally Accepted Accepted with conditions Check SCIGovtStatusCode for conditions. AB Acknowledgement Receipt acknowledged Continue polling. - Step 2: Check SCICloudStatusCode for specifics
- This tells you which processing stage completed and provides the detailed explanation:Important:
209 means "Workflow complete," not "Success." Check SCICloudStatusCode, StatusReason or SCIStatusAction for more information.
- Step 3: Check SCIStatusAction
- This tells you what action to take: Tip:
The tax authority's raw response code and message, often in local language, are available in
SCIGovtStatusCode. UseSCICloudStatusCodeandStatusReasonto drive your primary decision logic. Sovos has already interpreted the tax authority response so you get clear, actionable status information.
Interpreting combined status codes
- Scenario 1: Document successfully authorized
SCIResponseCode: AP SCICloudStatusCode: 200 StatusReason: "Invoice authorized by tax authority" SCIStatusAction: NOADocument authorized by tax authority. No further action needed.
- Scenario 2: Document rejected
SCIResponseCode: RE SCICloudStatusCode: 400 StatusReason: "Tax authority rejected: Invalid tax ID format" SCIStatusAction: NINTax authority rejected the document due to invalid tax ID. Fix the tax ID and submit a new invoice. Sovos has translated the tax authority's rejection reason into clear English.
- Scenario 3: Still processing
SCIResponseCode: IP SCICloudStatusCode: 105 StatusReason: "Tax authority is processing the document" SCIStatusAction: NOADocument transmitted, tax authority is processing. Continue polling for final status.
About document attachments
Application responses for authorized and completed documents typically include attachments such as cleared invoices and PDF renderings.
Application responses for status 200 (document.authorized) and 209 (workflow complete) typically include the following document attachments:
- LegalCleared - Country-specific format with tax authority clearance metadata.
- PDF - PDF rendering (if configured).
These attachments provide the cleared invoice and proof of authorization.
Processing multiple notifications
You may receive multiple notifications for a single document as it progresses through processing stages. Each notification represents an event or milestone.
Use documentId to correlate notifications.
- Processing order
Use timestamps to process in chronological order. Notifications may arrive out of sequence. Use the
createdAttimestamp to order notifications chronologically and track progression.Track progression usingSCICloudStatusCode:- 100 > 101 > 104 > 105 > 200 (successful authorization)
- 100 > 101 > 400 (rejected)
Implement idempotent processing. Each notification has a unique
notificationId. Track which notifications you have processed to avoid duplicate handling.- Determining final document status
The most important status element is the
SCIResponseCode. A document is complete when you receive one of the final SCI response codes (AP,RE, orCA).When you have multiple notifications, apply the following status code priority for final determination:- Highest priority: document.cancelled (201) — If a document was authorized then cancelled, the cancellation takes precedence.
- Next: document.authorized (200) — Authorization status indicates tax authority approval.
- Then: Rejection codes (400-404) — If no authorization or cancellation, check for rejection status.
- Finally: In Process (IP) — If none of the previous conditions apply, the document is still processing.
Valid status code combinations
Not all status code combinations are valid. Understanding which combinations can occur helps you implement correct response handling logic.
- Valid combinations
SCICloudStatusCode SCIResponseCode Scenario 100-105 IP Processing stages 200 AP or CA Authorization (standard or conditional) 201 AP Cancellation successful 202 RE Use denied 207 AP PDF created 208 AB Archived 209 AP Workflow completed (check other status codes for outcome) 400 RE Rejected 401 RE Processing error 500-504 RE System or network errors - Invalid combinations
- If you observe any of the following combinations, it indicates a problem that you should report to Sovos:
SCICloudStatusCode SCIResponseCode Why invalid 200 RE Authorization cannot be rejected. 400 AP Rejection cannot be accepted. 201 RE Cancellation cannot be rejected. If you see invalid combinations in your application responses, flag them as problems. This helps Sovos identify and fix system problems.
Reference: SCIResponseCode values
SCIResponseCode is a two-letter response code that provides the overall compliance status of a document.
| Code | Name | Description | Terminal? |
|---|---|---|---|
| AP | Accepted | Document accepted or workflow successful | Yes |
| RE | Rejected | Document rejected or processing failed | Yes |
| CA | Conditionally Accepted | Accepted with conditions | Yes |
| IP | In Process | Processing ongoing | No |
| AB | Message Acknowledgement | Receipt acknowledged | No |
| UQ | Under Query | Processing halted pending response | No |
| PD | Paid | Payment completed | Yes |
Terminal codes (AP, RE, CA) indicate final status. Non-terminal codes (IP, AB, UQ) mean continue polling.
Reference: SCICloudStatusCode values
The following table provides the complete reference for all status codes across all markets. Only a subset of these status codes are used in each country or region. Your country-specific implementation guide covers which status codes apply to your market.
| Code | Event | SCIResponseCode | Description |
|---|---|---|---|
| 100 series — Processing stages | |||
| 100 | document.received | IP | Document received by SovosSovos |
| 101 | document.mapped | IP | Transformed to Sovos Canonical InvoiceSCI |
| 102 | document.validated | IP | Schema validation passed |
| 103 | document.signed | IP | Digital signature applied |
| 104 | document.transmitted | IP | Sent to tax authority |
| 105 | document.processing | IP | Tax authority processing (may repeat) |
| 106 | document.processingInternally | IP | Sovos internal processing |
| 107 | action.received | AB | Action request received |
| 108 | document.processingByRecipient | IP | Buyer processing document |
| 200 series — Success or completion | |||
| 200 | document.authorized | AP or CA | Tax authority authorized document |
| 201 | document.cancelled | AP | Document canceled successfully |
| 202 | document.denied | RE | Use denied by tax authority |
| 203 | document.acceptedByRecipient | AP | Buyer accepted document |
| 204 | document.distributed | AB | Delivered to recipient |
| 205 | document.printed | AB | Document printed |
| 206 | document.finalized | AP | Document finalized |
| 207 | document.pdf.created | AP | PDF generated |
| 208 | document.archived | AB | Stored for compliance |
| 209 | workflow.completed | AP | Workflow finished — check other status codes for outcome |
| 210 | document.approved | AP | Approved by counterparty |
| 212 | document.commerciallyRejected | AP | Rejection acknowledged |
| 213 | document.paymentSentByRecipient | AB | Payment sent by the buyer |
| 214 | document.validatedByRecipientPlatform | AB | Validated by the buyer platform |
| 215 | document.madeAvailableToRecipient | AB | Made available to the buyer |
| 216 | document.acknowledgedByRecipient | AP | Buyer acknowledged receipt |
| 217 | document.partiallyAcceptedByRecipient | CA | Partially accepted by the buyer |
| 218 | document.disputedByRecipient | IP | Disputed by the buyer |
| 219 | document.suspendedByRecipient | IP | Suspended by the buyer |
| 220 | document.paymentReceived | AP | Payment received |
| 221 | document.endorsed | IP | Document endorsed |
| 222 | document.continued | IP | Continue request accepted/acknowledged by the tax authority |
| 223 | document.hearingRequested | IP | Hearing request accepted/acknowledged by the tax authority |
| 225 | document.conditionallyAcceptedByRecipient | CA | Conditionally accepted by the recipient |
| 226 | document.query | AP | Query response received |
| 227 | document.qrcode.created | IP | QR code created |
| 228 | document.reportAcceptedByTaxAuthority | AB | Report accepted by the tax authority |
| 229 | document.receivedSuccessfullyByTaxAuthority | AB | Received successfully by the tax authority |
| 231 | document.reportSubmittedToTaxAuthority | AB | Report submitted to the tax authority |
| 232 | document.submittedToTaxAuthority | AB | Document submitted to the tax authority |
| 233 | document.madeAvailableToTaxAuthority | AB | Document made available to the tax authority |
| 234 | document.reportNotReceivedByTaxAuthority | AB | Tax authority did not receive report notification |
| 235 | document.reportReceivedByTaxAuthority | AB | Report received by the tax authority |
| 400 series — Document errors | |||
| 400 | document.rejected | RE | Tax authority rejected document |
| 401 | document.error | RE | Error processing document |
| 402 | document.notFound | RE | Document not found |
| 403 | document.cancellationRejected | RE | Cancellation request denied |
| 404 | document.processedPreviously | RE | Document already processed |
| 405 | document.rejectedByRecipient | RE | Buyer rejected document |
| 406 | document.alreadyInProgress | RE | Duplicate submission detected |
| 407 | document.reportRejectedByTaxAuthority | RE | Tax authority rejected report |
| 408 | document.recipientNotFound | RE | Recipient not registered on the United Arab Emirates (UAE) PEPPOL network |
| 409 | document.recipientUnreachable | RE | Recipient registered on the UAE PEPPOL network but unreachable |
| 410 | document.signingFailed | RE | Digital signature failed |
| 500 series — System errors | |||
| 500 | system.error | RE | Internal system error |
| 501 | taxAuthority.unavailable | RE | Tax authority service down |
| 502 | request.invalidParameters | RE | Invalid input parameters |
| 503 | request.invalidCredentials | RE | Authentication failed |
| 504 | process.Timeout | RE | Processing timeout |
| 505 | system.error | RE | PDF document generation failed |
Sovos automatically retries 5xx errors. Continue polling with the document processing status parameter. 505 shares the system.error event with code 500, so subscribing to system.error gives you notifications for both.
5xx notifications guidance
A 5xx notification with sciResponseCode=RE indicates a transient processing problem. It doesn't override or invalidate a previously received positive notification (for example, 200/AP).
Use the following guidance when your integration receives a 5xx notification:
If you already got a positive compliance notification such as
200/APfor authorization, the document's tax authority status remains valid. The 5xx indicates a downstream processing step had a problem. Sovos retries automatically.If you subscribe to later lifecycle events such as
207(PDF Created) or209(Workflow Completed), keep polling. You get those notifications when retries succeed.Treat a 5xx notification as a terminal failure only if no later positive notification arrives within the configured retry window.
Don't treat sciResponseCode=RE on a 5xx event as the final document status. Always use the highest-priority positive notification you've received as the authoritative document state.
Reference: SCIStatusAction values
SCIStatusAction is a three-letter status code that identifies any additional required action.
| Code | Name | Meaning |
|---|---|---|
| NOA | No Action | Processing complete or progressing normally |
| NIN | New Invoice Needed | Fix errors and resubmit |
| OTH | Other | Your country implementation guide covers specific guidance for this code |
