This page covers what an OSF receives when using the REST API in pull mode — submitting a request, then calling GET endpoints to check its status. This is the model used by our Postman collections.

There are two situations, with two different response shapes.


A. Synchronous validation errors (the request itself was rejected)

Returned immediately, on the call that submits the request (e.g. POST /requests/registrations, POST /requests/retrievals, POST /requests/files/url-uploads), when the input is malformed, mismatched, or unauthorized. HTTP status is 4xx.

Example request:

POST /requests/registrations
{
  "operationCategory": "registration",
  "documentKindCategory": "patent",
  "documentNumber": "IB PCT/IB2026/098496",
  "documentDate": "2026-02-08",
  "dasAccessCode": "1234",
  "email": "jjduffy@example.com",
  "fileId": "US-bf5f35ff-2a94-4082-8c1c-02e321178232"
}

Example response (HTTP 400):

{
  "code": "INVALID_INPUT_DATA",
  "message": "Invalid input data or document",
  "details": [
    { "code": -4, "message": "Mismatched access code: dasAccessCode: expected dasAccessCode=AB46" }
  ]
}

code is the error category (SUCCESS, INVALID_INPUT_DATA, OPERATION_FORBIDDEN, DAS_SYSTEM_ERROR, OPERATION_IN_PROGRESS, INVALID_TOKEN). details[] lists one or more specific reasons.

Message you will receive, per situation

SituationMessage you will receive
Priority date doesn't match the registered one"Mismatched priority filing date: documentDate: expected documentDate=2022-10-01"
Access code doesn't match"Mismatched access code: dasAccessCode: expected dasAccessCode=AB46"
Both date and access code wrong"Mismatched access code and priority filing date: dasAccessCode, documentDate: expected dasAccessCode=AB46, documentDate=2022-10-01"
documentKindCategory wrong (alone or combined)"Mismatched document kind category: documentKindCategory=design: expected documentKindCategory=patent"
Priority date missing"Missing priority filing date: documentDate"
Access code missing"Missing access code: dasAccessCode"
Access code fails format/checksum check"Invalid access code: dasAccessCode: expected dasAccessCode=AB46"
documentDate not a valid date"Invalid priority filing date: documentDate: expected documentDate=2022-10-01"
Document not registered"The requested document is not registered in the system: documentNumber=US64/282,001, documentKindCategory=patent"
Other field mismatch (generic)"Mismatched input value: documentKindCategory: expected documentKindCategory=patent"
Invalid file format on upload"Invalid document file format: fileFormatCategory=jpg: expected fileFormatCategory=pdf,zip"
Required field missing on upload"Missing required field: fileChecksum"

Note: when the access code you supplied is incorrect, the response will not reveal the correct value, for security reasons — you will only see the field name, not the "expected" value.


B. Asynchronous status polling (the request was accepted; you're checking what happened to it)

Covers GET .../requests/retrievals/statuses, GET .../requests/registrations (record), and the bulk recorded-requests list. These return HTTP 200 even when the underlying operation failed or is still pending — the result is only visible in the body, via requestStatusCategory and requestStatusMessage. There is no numeric error code on this channel.

Example request:

GET /requests/retrievals/statuses?requestAckId=USIB20260101010101

Example response — pending:

{
  "requestAckId": "USIB20260101010101",
  "requestStatusCategory": "pending",
  "requestStatusMessage": "awaiting off response"
}

Example response — error:

{
  "requestAckId": "USIB20260101010101",
  "requestStatusCategory": "error",
  "requestStatusMessage": "unmatched access code"
}

Values you may see (retrieval)

requestStatusCategoryrequestStatusMessage
success—
error—
pendingpending
successdelivered
successFile is ready for download
pendingawaiting off response
errordocument awaiting security clearance
errordocument number not available
errordocument incomplete
errorunmatched document date
errorunmatched access code
errorunmatched document date and access code
errorinvalid document details

Values you may see (registration)

requestStatusCategoryrequestStatusMessage
document registereddocument registered successfully
document not registereddocument not registered
registration - recordedregistration - recorded
successsuccess
pending—
registration - withdrawnregistration - withdrawn

Retrieval failures from a hosted OFF: legacy TDA/PDX code vs. the message you will actually receive

When the failure comes from a hosted Office of First Filing, the requestStatusMessage you see on this poll depends on which protocol that office uses to answer. The table below matches each legacy TDA/PDX code to the message you receive today (office still on TDA/PDX) and the message you can expect once that office migrates to the newer REST interface (see 5.1.1.- Responses from OFF to DAS (TDA/PDX codes) for the full legacy-code reference, and 5.1.2.- Responses from DAS to OSF via notification endpoint for the equivalent on the push-notification channel).

TDA/PDX codeLegacy meaningrequestStatusMessage today (office on TDA/PDX)requestStatusMessage after the office migrates to REST
0 / 14 / 15Successful / Registered / Updated(none — requestStatusCategory: success)ready for download → delivered
1Application number provided was not foundAPPLICATION NUMBER NOT FOUNDdocument number not available
2File is not available (security clearance not granted)FILE WAS NOT AVAILABLE (REQUESTED APPLICATION EXISTS BUT IS NOT CLEARED FOR DISSEMINATION, e.g. security)document awaiting security clearance
3Documents was not found (incomplete set)DOCUMENT(S) WAS NOT AVAILABLE (COMPLETE SET OF REQUIRED DOCUMENTS FOR CERTIFIED COPY IS NOT AVAILABLE)document incomplete
5Not published, no authorization to permit access filedACCESS NOT AUTHORIZEDdocument awaiting security clearance
7Oversize document, CD will be mailed(no message available today)(no longer applicable — large files use presigned-URL upload/download)
11Das Access Code invalidINVALID DATAunmatched access code
12Request under processing, response sent later(no message available today)awaiting off response
16Das Access Code and Priority Date did not matchMISMATCH ACCESS CODE AND PRIORITY FILING DATEunmatched document date and access code
17Priority Date did not matchMISMATCH PRIORITY FILING DATE OR ACCESS CODEunmatched document date
18Das Access Code did not matchMISMATCH ACCESS CODEunmatched access code
19Priority Date was not provided by OFFMISSING PRIORITY FILING DATEinvalid document details
-1System not available, scheduled downtime(no message available today)Reported as a system error rather than a status message
-2System not available, back-end problem(no message available today)Reported as a system error rather than a status message

Quick reference

Field you seeWhere it's documented
code, details[].code, details[].message (HTTP 4xx on submission)This page, section A
requestStatusCategory, requestStatusMessage (HTTP 200 on poll)This page, section B
errorCode, statusMessage (push notification body)5.1.2.- Responses from DAS to OSF via notification endpoint
Legacy TDA/PDX numeric code, and its REST migration mapping5.1.1.- Responses from OFF to DAS (TDA/PDX codes)