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

Compare with Current View Page History

Version 1 Next »

This page covers the second hop: how WIPO DAS reports a result to an OSF over the optional push-notification webhook.

When this applies

Only when both are true: - the OSF's third-party configuration uses the API exchange protocol (EXCHANGE_PROTOCOL_API), and - the OSF has registered a notificationUrl with DAS Support.

If either condition is false, DAS never calls out to the OSF — the OSF must poll instead (see 5.1.3.- Responses from DAS to OSF via GET).

if (protocol === EXCHANGE_PROTOCOL_API && notificationUrl) {
    postNotificationToOffice(notificationUrl, notification)
}
das-retrieval-service.ts / sm-rest-retrieval-service.ts)

Payload shape

export type DocumentNotifications = {
  systemId: string,
  notificationCategory: string,
  dateTime: string,
  totalQuantity: number,
  documentRetrievalRequestStatusBag?: DocumentRetrievalRequestStatus[];
}

export type DocumentRetrievalRequestStatus = {
  requestAckId: string | null,
  requestStatusCategory: string,
  errorCode?: string | null,     // numeric EDI code, e.g. "-6"
  statusMessage?: string | null  // EDI message text, e.g. "ACCESS NOT AUTHORIZED"
};

This is the only DAS→OSF channel that carries a numeric error code at all. It is not the same errorCode enum (INVALID_INPUT_DATA, OPERATION_FORBIDDEN, ...) used for synchronous REST validation errors — it's the legacy EDI numeric code, produced by re-translating the TDA/PDX code through getEDICodeByTDACode() / getEDIMessageByTDACode().

Example payloads

Success:

{
  "systemId": "WIPO_DAS",
  "notificationCategory": "available",
  "dateTime": "2026-10-19T10:00:00.000Z",
  "totalQuantity": 1,
  "documentRetrievalRequestStatusBag": [
    { "requestAckId": "USIB20260101010101", "requestStatusCategory": "success" }
  ]
}

Error — hosted OFF responded with TDA code 5 ("Not published, no authorization to permit access filed"):

{
  "systemId": "WIPO_DAS",
  "notificationCategory": "available",
  "dateTime": "2026-10-19T10:00:00.000Z",
  "totalQuantity": 1,
  "documentRetrievalRequestStatusBag": [
    {
      "requestAckId": "USIB20260101010101",
      "requestStatusCategory": "failure",
      "errorCode": "-6",
      "statusMessage": "ACCESS NOT AUTHORIZED"
    }
  ]
}

TDA/PDX code → what the OSF actually receives in the notification

TDA codeTDA/PDX meaningerrorCode sentstatusMessage sent
0 / 14 / 15Successful / Registered / Updated0Operation Successful
1Application number not found (or withdrawn/missing-field, see 5.1.1)-7APPLICATION NUMBER NOT FOUND — ⚠️ even the "document withdrawn" case ends up with this same generic text
2File is not available (security)-8FILE WAS NOT AVAILABLE (REQUESTED APPLICATION EXISTS BUT IS NOT CLEARED FOR DISSEMINATION, e.g. security)
3Document(s) not found-9DOCUMENT(S) WAS NOT AVAILABLE (COMPLETE SET OF REQUIRED DOCUMENTS FOR CERTIFIED COPY IS NOT AVAILABLE)
5Not published / no authorization-6ACCESS NOT AUTHORIZED
7Oversize document, CD will be mailed(none)(none — getEDIMessageByTDACode(7) returns undefined, no EDI entry defined)
11ACC invalid-4INVALID DATA
12Request under processing(none)(none — no EDI entry; also flagged obsolete in the code)
16ACC and priority date mismatch-15MISMATCH ACCESS CODE AND PRIORITY FILING DATE
17Priority date mismatch-12MISMATCH PRIORITY FILING DATE OR ACCESS CODE
18ACC mismatch (or missing, reused)-14MISMATCH ACCESS CODE
19Priority date not provided-13MISSING PRIORITY FILING DATE
-1System scheduled downtime(none)(none — no EDI entry)
-2System unavailable (back-end)(none)(none — no EDI entry)
-6XML output processing failure (duplicate doc / already registered)-1DUPLICATE (ENTRY ALREADY EXISTS)

Caveats

  1. Lossy translation: because the reverse mapping only keeps a single defaultReverseMapping per TDA code, distinct real-world situations can collapse into one generic EDI phrase (e.g. TDA 1 for a withdrawn document still produces APPLICATION NUMBER NOT FOUND).
  2. Missing EDI entries: OPERATION_IN_PROGRESS (oversize 7) and DAS_SYSTEM_ERROR (-1, -2) have no EDI translation registered — the notification fields are simply absent for these.
  3. This only fires for requests answered via the TDA/PDX protocol. If the office responded over plain REST/API instead, DAS forwards the raw errorMessage/errorCode it received, unmodified.
  4. If the OSF is not registered for push notifications, none of this applies — they must poll instead, see 5.1.3.- Responses from DAS to OSF via GET.
  • No labels