Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 is configured for API-based exchange and has registered a notificationUrl notification URL with DAS Support. If either condition is false, DAS never calls out to not, the OSF — the OSF must poll instead (— see 5.1.3.- Responses from DAS to OSF via GET).

Payload shape

Code Block

...

...

Payload shape

Code Block
language

...

if (protocol === EXCHANGE_PROTOCOL_API && notificationUrl) {
    postNotificationToOffice(notificationUrl, notification)
}
json
themeDefault
languagenone
export type DocumentNotifications = {
  "systemId": string"WIPO_DAS",
  "notificationCategory": string"available",
  "dateTime": string"2026-10-19T10:00:00.000Z",
  "totalQuantity": number1,
  "documentRetrievalRequestStatusBag?": DocumentRetrievalRequestStatus[];
}

export type DocumentRetrievalRequestStatus = {
      "requestAckId": "USIB20260101010101",
  string | null,
  "requestStatusCategory": string,
"success | errorCode?: stringpending | nullerror",
     // numeric EDI "errorCode": "numeric code, e.g. "-6" only present for errors",
  statusMessage?: string | null  // EDI message text, e.g. "ACCESS NOT AUTHORIZED"
};"statusMessage": "human-readable text"
    }
  ]
}

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:

Code Block
languagejson
themeDefault

...

...

{
  "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"):

Code Block
languagejson
themeDefault

...

...

{
  "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

...

you receive in the notification today (

...

office on legacy TDA/PDX)

TDA codeTDA/PDX meaningerrorCode
sent
statusMessage
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
)
-6
XML output processing failure (duplicate
Duplicate doc / already registered (registration only)-1DUPLICATE (ENTRY ALREADY EXISTS
)

🆕 What changes once this OFF migrates from TDA/PDX to REST

This EDI-translation step only happens for offices answering over the TDA/PDX protocol:

Code Block
themeDefault
languagenone
if ('tda' == event.respondingProtocol) {
    let ediErrorMsg = getEDIMessageByTDACode(parseInt(errorCode));
    ediCode        = getEDICodeByTDACode(parseInt(errorCode));
    data.documentRetrievalRequestStatusBag[0].errorCode = ediCode;
    data.documentRetrievalRequestStatusBag[0].statusMessage = ediErrorMsg;
} else {
    // REST / remote OFF: passed through AS-IS, no translation at all
    data.documentRetrievalRequestStatusBag[0].errorCode = errorCode;
    data.documentRetrievalRequestStatusBag[0].statusMessage = errorMessage;
}
sm-rest-retrieval-service.ts)

Once an OFF implements the draft REST interface instead (5.1.1.- Responses from OFF to DAS (TDA/PDX codes)), DAS stops translating anything — whatever errorCode/statusMessage the OFF's own REST endpoint sends is forwarded to the OSF verbatim.

...

)

...

Caveats (legacy TDA/PDX translation)

...