Record the letter
Use the workspace filing ID, not its regulatory catalog ID. Letter numbers (seq)
are positive integers, unique within the filing. The default status is open.
201 response returns the objection, including its id, filingId, seq, and
status. Location points to /api/v2/objections/{id}. Save that ID as
OBJECTION_ID for the following requests.
List recorded letters when discovering IDs or reconciling an uncertain create:
objections and nextCursor. Letters are ordered by number,
then ID. Read one at /objections/{id}. Continue with the same limit and the
returned cursor until nextCursor is null. Lists are live; renumbering or deleting
records while paging can change the results.
Creation is not idempotent. After a timeout, inspect the list by letter number
before retrying. A duplicate number returns 409 conflict.
Add the regulator requests
Add each point as an item. Item numbers are unique within an objection; their default status isopen. Triage uses text as the regulator’s request.
201 response includes the item id, objectionId, text, responseText, and
status; responseText is initially null. Save the ID as ITEM_ID. Location
points to /api/v2/objections/{id}/items/{itemId}.
items and nextCursor, ordered by item number then ID.
Use the same pagination and create-recovery approach as letters. Read an item’s
current state at /objections/{id}/items/{itemId}. An item cannot be moved to
another objection; a wrong-parent ID returns 404 not_found.
Once the requests and filing evidence are ready, run triage.
Read recommendations and reply
Triage saves recommendations in the item discussion. Use theitemId from triage
progress to list its comments:
comments and nextCursor. Entries are oldest first and
include messages, replies, and events. Group by threadId; a discussion can span
pages. A single entry is available at
/objections/{id}/items/{itemId}/comments/{commentId}. Add status=open or
status=resolved to filter discussions, keeping the same filter on later pages.
Set ROOT_COMMENT_ID to a top-level recommendation message’s id, not its
threadId, then reply:
parentCommentId to start a new discussion. Replies must address a root
message in this item. A saved reply does not notify the filing agent or start a
fix. Comment creation is not idempotent: inspect the timeline before retrying
an uncertain request.
PATCH the comment URL with either body to edit your own message, or status
(open or resolved) to change the discussion state. Do not send both.
Save a response draft
Update the item after preparing and verifying a response:open, in_progress, or resolved. Saving responseText alone
leaves status unchanged. Resolving a discussion does not resolve an item, and
resolving an item does not mean the regulator accepted the response.
PATCH /objections/{id} to edit letter metadata. The letter has its own open
or answered status: marking it answered requires answeredBySubmissionId from
the same filing. Reopening requires setting that reference to null. Letter and
item status changes do not submit anything to SERFF.
PATCH updates supplied fields; omitted fields stay unchanged and null clears
nullable fields. Read current values before retrying an uncertain PATCH, since
another editor may have changed them.
DELETE /objections/{id}/items/{itemId} or /objections/{id} removes that workspace
record. Deletion requires manage permission and managed filing edit access;
dependent records return 409, and an already removed record returns 404.
SERFF records are unaffected.