You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

This page covers the first hop: the code/message an Office of First Filing (OFF) sends back to WIPO DAS when DAS forwards it a live retrieval or registration-acknowledgement request. An OFF can do this over two different protocols, covered in two sections below.

An OSF / REST API caller never sees any of this directly. DAS always translates it before passing it on — 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 actually reaches the caller.


Part A — Legacy TDA/PDX XML protocol (numeric codes)

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 → DAS canonical message

TDA/PDX codeStatus typeTDA/PDX meaning as suppliedDAS canonical messageDAS sub-codeDAS errorCode categoryNotes
0FWA-status, PDX-statusNo Error / SuccessfulSuccessful.0SUCCESScode 0 is reused for 0 / 14 / 15
1FWA/PDX/DAS-statusApplication number provided was not foundApplication number provided was not 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)
2FWA-status, PDX-statusFile is not availableFile is not available. (security clearance not granted)-8OPERATION_FORBIDDEN
3PDX-statusDocuments was not foundDocument(s) was not found.-9OPERATION_FORBIDDEN
4FWA-statusDocument content could not be retrieved—(not mapped)(none)Not wired up in code; probably unused, as TDA 3 covers the same situation
5PDX-statusNot published, no authorization to permit access filedFile is not available to the public, and no authorization to permit access has been filed.-6OPERATION_FORBIDDEN
6FWA-statusDelay 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 -107INVALID_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. Registration-only — not applicable to retrieval
7PDX-statusOversize document/CD will be mailedOversize Document – CD will be mailed.-201OPERATION_IN_PROGRESSSee 5.1.2 — no EDI translation exists for this code, so it isn't actually forwarded via the notification webhook today
8FWA-statusRequest less than 1000 pages per transaction—(not mapped)(none)Not wired up; probably unused — TDA code 7 is reported instead
9DAS-statusRegistered—n/an/aDAS-internal status only, not a counterpart reply code from an OFF
10DAS-statusNot Registered—n/an/aDAS-internal only
11PDX-statusDas Access Code invalidACC invalid.-4INVALID_INPUT_DATA
12PDX-statusRequest under processing, response sent laterThe request is under processing, the response will be sent later.-202OPERATION_IN_PROGRESSCode comment marks this "obsolete now... not implemented on DAS side, also we don't expect it from TDA side"
13PDX-statusApplication number does not correspond with bibliographic data—(not mapped)n/aRarely used — DAS rejects an OSF request with mismatched data before it would reach this point
14DAS-statusSuccessfully Registered DAS to OFF onlySuccessfully Registered.0SUCCESSRegistration-only — not applicable to retrieval
15DAS-statusSuccessfully Updated DAS to OFF onlySuccessfully Updated.0SUCCESSRegistration-only — not applicable to retrieval
16DAS-statusDas Access Code and Priority Date did not matchACC and Priority Date did not match.-15INVALID_INPUT_DATA
17DAS-statusPriority Date did not matchPriority Date did not match.-12INVALID_INPUT_DATA
18DAS-statusDas Access Code did not matchACC did not match.-14 or -13 (see note)INVALID_INPUT_DATA⚠️ Overloaded: same TDA code used both for "mismatched access code" (-14) and "missing access code" (-13)
19DAS-statusPriority Date was not provided by OFFPriority Date was not provided by OFF.-13INVALID_INPUT_DATA
-1FWA-fault, PDX-faultSystem not available, scheduled downtimeSystem is not available due to scheduled downtime.-101DAS_SYSTEM_ERROR
-2FWA-fault, PDX-faultSystem not available, back-end problemSystem is not available due to system problem.-101DAS_SYSTEM_ERROR
-3PDX-faultReceived document cannot be importedThe received document can not be imported.-2INVALID_INPUT_DATAResolves to the "invalid document file format" sub-code, not a generic -3
-4FWA-fault, PDX-faultXML input processing failureXML input processing failure-3INVALID_INPUT_DATACovers corrupted file / invalid ST.26 package / checksum mismatch / virus infected
-5FWA-fault, PDX-faultXML output processing failureXML output processing failure-3INVALID_INPUT_DATAUsed specifically for the "file not available" sub-case

Known gaps / things to keep in mind when testing

  1. Overloaded codes (1, 18, -6) can't be told apart just from the TDA code — the real outcome depends on internal state DAS already has about the request. Don't assume a 1:1 mapping when writing test assertions.
  2. Unmapped codes (4, 6, 8, 9, 10, 13) exist in the ST.36/TDA specification but have no corresponding entry in das-error-code-mappings.ts — if an OFF ever sends one of these, DAS has no specific translation for it.
  3. Codes with no onward translation (7, 12) reach DAS but have an empty ediSystemCodes[] entry, meaning there is currently no EDI message to forward to an OSF via the notification webhook (see 5.1.2). Code 12 is explicitly commented as obsolete.

Part B — Migrating to the modern "OFF Services" REST interface: what replaces each TDA/PDX code

Source:das/documents/postman/sampleYamlFileOffServices-draftSample_20260225.yaml — a draft spec for OFFs that want to answer DAS over plain REST/JSON instead of legacy TDA/PDX XML.

⚠️ Status: draft, not yet live. In the current DAS backend, the only code touching this interface is a mock/test harness (forward-retrieval-request-mock-service.ts, used by the internal automation-test suite) — no production office implements it yet. Treat the table below as "what an OFF should implement", not as a confirmed, already-observed behaviour like Part A.

⚠️ Scope: retrieval only. The draft's PdxRequest.operationCategory only allows retrieval — registration-related TDA codes (9, 10, 14, 15, -6) have no place in this interface at all and are out of scope for this mapping.

How the REST interface replaces the numeric code

Instead of a numeric TDA/PDX code, the OFF's REST endpoint reports status with:

requestStatusCategory: pending | success | error   # coarse bucket
statusMessage: free text                            # the actual "reason", e.g. "unmatched access code"
errorCode: string (loosely typed, no fixed enum)
POST /v1/requests/notifications (DocumentNotificationRetrievalStatus), or returned directly on GET /v1/requests/retrievals (PdxResponse). The statusMessage vocabulary documented in the draft is word-for-word identical to the literal strings DAS already uses internally in das-status.ts (see 5.1.3, section B) — so an OFF implementing this spec should reuse exactly those strings.

TDA/PDX code → REST equivalent an OFF should implement

TDA/PDX codeLegacy meaningREST requestStatusCategoryREST statusMessage to sendNotes
0 (retrieval success)No Error / Successfulsuccessready for download → delivered (two-stage)Report ready for download once the file/URL is available, delivered once retrieved
1Application number provided was not founderrordocument number not availableDirect equivalent
2File is not available (security clearance not granted)errordocument awaiting security clearance⚠️ Gap: this REST phrase reads as "pending", but TDA 2 is a permanent refusal. The draft vocabulary doesn't distinguish "awaiting clearance" (temporary) from "clearance permanently denied" — OFFs will need to reuse the same phrase for both until the draft is refined
3Documents was not found (incomplete set)errordocument incompleteDirect equivalent
5Not published, no authorization to permit access filederrordocument awaiting security clearance(best available match)⚠️ Gap: same phrase as TDA 2 above — the draft has no separate "not authorized for public access" status, so this and TDA 2 collapse into one REST message
7Oversize document, CD will be mailedn/a(no equivalent — see note)Not applicable under REST: large files are handled via presigned-URL upload/download (as in the registration/retrieval Postman collections), so there is no "oversize/CD mailed" concept any more
11Das Access Code invaliderrorunmatched access codeDirect equivalent
12Request under processing, response sent laterpendingawaiting off responseThis is really just the default pending state while the OFF works on the request, not a distinct error
16Das Access Code and Priority Date did not matcherrorunmatched document date and access codeExact equivalent — the draft vocabulary has a dedicated phrase for this combined case
17Priority Date did not matcherrorunmatched document dateDirect equivalent
18Das Access Code did not matcherrorunmatched access codeDirect equivalent
19Priority Date was not provided by OFFerrorinvalid document details(closest match)⚠️ Gap: the draft vocabulary doesn't distinguish "missing" from "mismatched" date — unmatched document date would also be defensible; needs clarification with DAS Support before an OFF implements it
-1 / -2System not available (scheduled downtime / back-end problem)n/a — not part of the async statusMessage vocabulary—Report via the synchronous error shape instead: code: TDA_SYSTEM_ERROR, message: "TDA SYSTEM ERROR" (HTTP 500), per the draft's exampleOfError500
-3 / -4 / -5Received document cannot be imported / XML input / output processing failuren/a(no equivalent — see note)Not applicable under REST: these codes exist only because the legacy protocol exchanges XML payloads. The REST interface exchanges structured JSON with no embedded document content, so there is nothing to "fail to import/parse" in this sense. If sample data genuinely can't be matched, use invalid document details instead
4, 6, 8, 9, 10, 13(already unmapped/unused in Part A)——Remain unmapped; no REST equivalent needed

Synchronous (request-level) errors — not part of the TDA code family

Separately from the status-message vocabulary above, the draft defines a plain request-validation error shape for when DAS calls the OFF's endpoint with bad/missing parameters (this is plumbing-level, not a translation of a TDA business code):

{
  "code": 400,
  "message": "Invalid input data or document",
  "errorMessage": "DAS Access Code cannot be blank"
}
requesterOffice, documentNumber, documentDate, dasAccessCode, and requestAckId. Note the schema types code as an integer (echoing the HTTP status: 400/401/500), while the file's own notification-endpoint examples inconsistently use string codes (INVALID_INPUT_DATA, INVALID_TOKEN, TDA_SYSTEM_ERROR) for the same concept — flagged here as a draft inconsistency to resolve before this spec is finalized, not something to replicate.

  • No labels