This page covers the first hop: the raw numeric code a hosted helps an Office of First Filing 's (OFF) that currently answers WIPO DAS over the legacy TDA/PDX system sends back to WIPO DAS when DAS forwards it a live retrieval or registration-acknowledgement request.
...
XML protocol figure out what to return instead if it implements the modern "OFF Services" REST interface.
This only concerns the OFF↔DAS exchange. See 5.1.2.- Responses from DAS to OSF via notification endpoint and 5.1.3.- Responses from DAS to OSF via GET for what
...
reaches the requesting office (OSF)Sample exchange over the new REST interface
Instead of a numeric TDA/PDX code, an OFF implementing REST reports status with plain fields:
| Code Block |
|---|
|
POST /v1/requests/notifications
{
"systemId": "<office code>",
"notificationCategory": "document availability",
"dateTime": "2026-02-25T12:23:24Z",
"totalQuantity": 1,
"documentNotificationRetrievalStatusBag": [
{
"requestAckId": "USIB20210523120902",
"requestStatusCategory": "error",
"errorCode": null,
"statusMessage": "unmatched access code"
}
]
} |
TDA/PDX code → REST equivalent
Source of truth (code, not documentation): - das-app/src/app/das-tda-error-messages.ts — literal TDA/PDX message text - das-app/src/app/das-error-code-mappings.ts — the tdaSystemCodes[] arrays that map a TDA code to a DAS canonical message - das-app/src/app/das-error-codes.ts — the 6 top-level errorCode categories
...
| TDA/PDX code | Status type | TDA/PDX meaning as supplied |
|---|
DAS canonical message | DAS sub-code | DAS errorCode category | REST requestStatusCategory | REST statusMessage to send | Notes |
|---|
| 0 | FWA-status, PDX-status | No Error / Successful |
Successful. | 0 | SUCCESS | success | ready for download → delivered (two-stage) | Report ready for download once the file/URL is available, delivered once retrieved |
code 0 is reused for 0 / 14 / 15 |
| 1 | FWA/PDX/DAS-status | Application number provided was not found | error |
Application provided was found.-4, -7, or -5 (see note) | INVALID_INPUT_DATA or OPERATION_FORBIDDEN | ⚠️ Overloaded: the backend reuses TDA code 1 for three different outcomes depending on internal context: generic invalid input (-4), "document not found" (-7), and "document withdrawn" (-5, under OPERATION_FORBIDDEN)available | This code may also represent "document withdrawn" or a generic missing-field condition — send the message matching the actual situation |
| 2 | FWA-status, PDX-status | File is not available |
File is not available. (security clearance not granted) | -8 | | error | document awaiting security clearance | Closest available match; the REST vocabulary does not distinguish a temporary "awaiting clearance" from a permanent refusal |
OPERATION_FORBIDDEN |
| 3 | PDX-status | Documents was not found |
Document(s) was not found. | -9 | OPERATION_FORBIDDEN | error | document incomplete |
|
| 4 | FWA-status | Document content could not be retrieved |
— | (not mapped) | (none) | | n/a | n/a | Not used in practice — TDA Error |
Not wired up in code; probably unused, as TDA | 3 covers the same situation |
| 5 | PDX-status | Not published, no authorization to permit access filed |
File is not available to the public, and no authorization to permit access has been filed. | -6 | error | document awaiting security clearance | Same REST phrase as code 2 — no separate "not authorized for public access" message exists |
OPERATION_FORBIDDEN |
| 6 | FWA-status | Delay in translation |
— | (not mapped) | (none) | Not wired up in code; probably never used (do not confuse with code -6 below, which is a different, negative code) | -6 | (missing from the original table entirely) | XML output processing failure (reused as a generic technical-error code) | Duplicate document received / File already uploaded and registered | -1 or -107 | INVALID_INPUT_DATA or OPERATION_FORBIDDEN | ⚠️ Actively used by the backend for two different outcomes (duplicate document vs. already-registered file), but was never documented on the old matching table| n/a | n/a | Not used in practice |
| 7 | PDX-status | Oversize document/CD will be mailed |
Oversize Document – CD will be mailed. | -201 | OPERATION_IN_PROGRESS | See 5.1.2 — no EDI translation exists for this code, so it isn't actually forwarded via the notification webhook today| n/a | (no equivalent) | Not applicable under REST: large files are handled via presigned-URL upload/download |
| 8 | FWA-status | Request less than 1000 pages per transaction |
— | (not mapped) | (none) | | n/a | n/a | Not used in practice |
Not wired up; probably unused | — TDA code 7 is reported instead |
| 9 | DAS-status | Registered |
— | DAS-internal | Internal status only, not a counterpart reply code from an OFF |
| 10 | DAS-status | Not Registered |
—DAS-internal | Internal only |
| 11 | PDX-status | Das Access Code invalid |
ACC invalid. | -4 | INVALID_INPUT_DATA | error | unmatched access code |
|
| 12 | PDX-status | Request under processing, response sent later |
The request is under processing, the response will be sent later. | -202 | OPERATION_IN_PROGRESS | Code comment marks this "obsolete now... not implemented on DAS side, also we don't expect it from TDA side"pending | awaiting off response | Default pending state while the OFF works on the request |
| 13 | PDX-status | Application number does not correspond with bibliographic data |
— | (not mapped) | — DAS rejects an OSF request with mismatched data before it would reach this point |
| 14 | DAS-status | Successfully Registered DAS to OFF only |
Successfully Registered. | 0 | | n/a | n/a | Registration-only — out of scope (this interface covers retrieval only) |
SUCCESS |
| 15 | DAS-status | Successfully Updated DAS to OFF only |
Successfully Updated. | 0 | | n/a | n/a | Registration-only — out of scope |
SUCCESS |
| 16 | DAS-status | Das Access Code and Priority Date did not match |
ACC and Priority Date did not match. | -15 | INVALID_INPUT_DATA | error | unmatched document date and access code |
|
| 17 | DAS-status | Priority Date did not match |
Priority Date did not match. | -12 | INVALID_INPUT_DATA | error | unmatched document date |
|
| 18 | DAS-status | Das Access Code did not match |
ACC did not match. | -14 or -13 (see note) | INVALID_INPUT_DATA | error | unmatched access code |
⚠️ Overloaded: same TDA code used both for "mismatched access code" (-14) and "missing access code" (-13) |
|
| 19 | DAS-status | Priority Date was not provided by OFF |
Priority Date was not provided by OFF. | -13 | error | invalid document details | Closest available match — there is no separate "missing" vs. "mismatched" date message |
INVALID_INPUT_DATA |
| -1 | FWA-fault, PDX-fault | System not available, scheduled downtime |
System is not available due to scheduled downtime. | -101 | | (reported as a system error, not this vocabulary) | — | Use code: TDA |
DAS_SYSTEM_ERROR, message: "TDA SYSTEM ERROR" on the request itself (HTTP 500) |
| -2 | FWA-fault, PDX-fault | System not available, back-end problem |
System is not available due to system problem. | -101 | DAS_SYSTEM_ERROR | | (reported as a system error, not this vocabulary) | — | Same as -1 |
| -3 | PDX-fault | Received document cannot be imported |
The received document can not be imported. | -2 | INVALID_INPUT_DATA | | n/a | (no equivalent) | No longer applicable: the REST interface exchanges plain identification data, not document content |
Resolves to the "invalid document file format" sub-code, not a generic -3 |
| -4 | FWA-fault, PDX-fault | XML input processing failure |
XML input processing failure | -3 | INVALID_INPUT_DATA | Covers corrupted file / invalid ST.26 package / checksum mismatch / virus infected | | n/a | (no equivalent) | Same as -3 |
| -5 | FWA-fault, PDX-fault | XML output processing failure |
XML output processing failure | -3 | INVALID_INPUT_DATA | Used specifically for the "file not available" sub-case | Known gaps / things to keep in mind when testing
...
| n/a | (no equivalent) | Same as -3 |
Sample of a system-level error (request rejected before it is even processed)
| Code Block |
|---|
|
{
"code": "TDA_SYSTEM_ERROR",
"message": "TDA SYSTEM ERROR",
"details": [
{ "message": "Unexpected internal error", "code": 500 }
]
} |
Other examples of this shape:
| Code Block |
|---|
|
{
"code": 400,
"message": "Invalid input data or document",
"errorMessage": "DAS Access Code cannot be blank"
} |