{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-products/class/apis/actuarial provider/sidebars.yaml","current-catalog-info":"current-catalog-info-/products/class/apis/actuarial-provider/actuarial-certificate"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Actuarial Certificate — Workflow","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"actuarial-certificate--workflow","__idx":0},"children":["Actuarial Certificate — Workflow"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This page describes how a certificate request progresses once Class has sent it to you and you begin calling back. Each callback creates or updates a ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["status record"]},", and the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Status"]}," value you send (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Interim"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Final"]},") is stored as a label on that record."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"the-status-label","__idx":1},"children":["The status label"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Every status you create or update carries a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Status"]}," of either ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Interim"]}]}," or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Final"]}]},":"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Value"},"children":["Value"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Meaning"},"children":["Meaning"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Interim"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A draft or in-progress result. Use this while the percentage is still provisional. This is the default if ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Status"]}," is omitted."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Final"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The completed result. Class users treat a Final status (with the certificate document) as the finished certificate."]}]}]}]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Interim"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Final"]}," are labels recorded against each status. You can post as many updates as you need."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"the-three-callback-endpoints","__idx":2},"children":["The three callback endpoints"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Your interaction with Class after the initial request uses three endpoints (see ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/class/apis/actuarial-provider/provider-to-class"},"children":["Provider-to-Class Updates"]}," and the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/products/class/apis/actuarial-provider/actuarial-certificate"},"children":["API Reference"]},"):"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Ref"},"children":["Ref"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Purpose"},"children":["Purpose"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Endpoint (relative)"},"children":["Endpoint (relative)"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["A"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Create a new status"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["POST ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".../certificate-request/{requestId}/status"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["B"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Update an existing status"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["POST ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".../status/{statusId}"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["C"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Upload the certificate document"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["POST ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".../status/{statusId}/doc"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"ordering-rules","__idx":3},"children":["Ordering rules"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["A must come first."]}," Creating a status (A) returns a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["StatusId"]},". You need that ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["StatusId"]}," to update the status (B) or attach a document (C)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["You cannot skip straight to C."]}," A document is always attached to an existing status, so a status must exist before you upload."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["B is optional."]}," You only need it if you want to revise a status you already created (for example, to replace a draft percentage with a final one)."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"what-each-endpoint-changes","__idx":4},"children":["What each endpoint changes"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create (A)"]}," — records a new status with the percentage (from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ExemptPercentage"]},") and the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UseDeemedSegregation"]}," flag. Returns the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["StatusId"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Update (B)"]}," — overwrites the existing status's percentage, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["UseDeemedSegregation"]}," flag, stored body and timestamp. Requires a valid ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ExemptPercentage"]}," (an empty or unparseable value returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["400 Bad Request"]},")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Upload document (C)"]}," — attaches the certificate PDF to the status. Returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200 OK"]}," on success, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["500"]}," on error."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"typical-sequences","__idx":5},"children":["Typical sequences"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Both of the following are valid:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Standard path:"]}," create a status (A) → upload the certificate document (C)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Staged path:"]}," create a status (A) → update the status (B), e.g. to move from a draft to a final percentage → upload the certificate document (C)."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["There is no limit on the number of updates — each records a status against the certificate request. Class users consider the process complete once a Final status with the certificate document is present."]}]},"headings":[{"value":"Actuarial Certificate — Workflow","id":"actuarial-certificate--workflow","depth":2},{"value":"The status label","id":"the-status-label","depth":3},{"value":"The three callback endpoints","id":"the-three-callback-endpoints","depth":3},{"value":"Ordering rules","id":"ordering-rules","depth":3},{"value":"What each endpoint changes","id":"what-each-endpoint-changes","depth":3},{"value":"Typical sequences","id":"typical-sequences","depth":3}],"frontmatter":{"seo":{"title":"Actuarial Certificate — Workflow"}},"lastModified":"2026-08-03T06:39:46.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/products/class/apis/actuarial-provider/workflow","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}