> For the complete documentation index, see [llms.txt](https://legacy-docs.usesmileid.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://legacy-docs.usesmileid.com/further-reading/job-status.md).

# Job status

The job status API returns information about a job, including its completion status, whether or not it was successful, optionally the complete history (all jobs performed on that user)**,** and also optionally, a signed link to the images captured during that job.Unlike the callback, where results are asynchronous and we POST to your server, the job status API is implemented on our servers and you make POST requests to it. Just like any other call to our servers, we use an encrypted signature to verify that you are the sender of the request, and the response will include a signature created by us for verification. You can find instructions on how to sign the request in our [documentation](/integration-options/rest-api/signing-your-api-request/generate-signature.md).

**Request Type**: POST

| Environment | URL                                               |
| ----------- | ------------------------------------------------- |
| Sandbox     | <https://testapi.smileidentity.com/v1/job_status> |
| Production  | <https://api.smileidentity.com/v1/job_status>     |

## Request Body

```json
{
    "timestamp": "<Put timestamp here>",
    "signature": "<Put calculated sec_key here>",
    "user_id": "<Put your generated user_id here, this must be the same one you sent with the job>",
    "job_id": "<Put your generated job_id here, this must be the same one you sent with the job>",
    "partner_id": "<Put your partner ID here>",
    "image_links": <true || false>,
    "history": <true || false>
}
```

## Return Values

| Name                       | Description                                                                                                        |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| timestamp                  | The timestamp used to create the signature.                                                                        |
| signature                  | The signature for this response.                                                                                   |
| user\_id                   | The unique user\_id that was either assigned, or passed in to this job.                                            |
| job\_id                    | The unique job\_id that was either assigned, or passed in to this job.                                             |
| job\_complete              | Whether or not we have reported a final status for this job.                                                       |
| job\_success               | Whether or not we were able to achieve a successful match and have enrolled or authenticated this user.            |
| result                     | This object will include the details of the final status.                                                          |
| result.ResultText          | Textual value of the job outcome. A human readable result.                                                         |
| result.SmileJobID          | Our internal job id. Should be supplied when raising support ticket for a job                                      |
| result.PartnerParams       | This should include the same user\_id and job\_id that you used to make the request.                               |
| result.ConfidenceValue     | A number representing our confidence in the final determination.                                                   |
| image\_links               | This object will contain the image captured during that job if the optional flag was passed in during the request. |
| image\_links.selfie\_image | An expiring link to the selfie image.                                                                              |
| code                       | A code that maps to an error condition or success for the job\_status call.                                        |

### Example JSON Response

```json
{
  "timestamp": "2018-03-13T21:04:11.193Z",
  "signature": "5445722f5af1791eb434949cce9a88dd321e5959fd24a8562ecb12bb00c33fe",
  "job_complete": true,
  "job_success": true,
  "result": {
    "ResultText": "Enroll User",
    "SmileJobID": "0000001897",
    "PartnerParams": {
      "job_id": "52d0de86-be3b-4219-9e96-8195b0018944",
      "user_id": "e54e0e98-8b8c-4215-89f5-7f9ea42bf650",
      "job_type": 4
    },
    "ConfidenceValue": "100"
  },
  "image_links": {
    "selfie_image": "https://smile-fr-results.s3.us-west-2.amazonaws.com/test/000000/023/023-0000001897-LoRSpxJUzmYgYS2R00XpaHJYLOiNXN/SID_Preview_FULL.jpg"
  },
  "code": "2302",
  "history": [
    {
      "ResultCode": "1210",
      "ResultText": "Enroll User",
      "SmileJobID": "0000000857",
      "PartnerParams": {
        "job_id": "52d0de86-be3b-4219-9e96-8195b0018944",
        "user_id": "1511bf02-801a-4b57-ac8e-ef17e26bfeb4",
        "job_type": "1",
        "optional_info": "Partner can put whatever they want as long as it is a string",
        "more_optional_info": "There can be as much or as little or no optional info"
      }
    },
    {
      "ResultCode": "0814",
      "ResultText": "Provisional Enroll - Under Review",
      "SmileJobID": "0000000857",
      "ConfidenceValue": "97",
      "PartnerParams": {
        "job_id": "52d0de86-be3b-4219-9e96-8195b0018944",
        "user_id": "1511bf02-801a-4b57-ac8e-ef17e26bfeb4",
        "job_type": "1",
        "optional_info": "Partner can put whatever they want as long as it is a string",
        "more_optional_info": "There can be as much or as little or no optional info"
      }
    },
    {
      "DOB": "1990-01-01",
      "IDType": "BVN",
      "Country": "Nigeria",
      "FullName": "Peter Parker",
      "ExpirationDate": "Not Available",
      "IDNumber": "A01234567",
      "ResultCode": "1012",
      "ResultText": "ID Validated",
      "SmileJobID": "0000000857",
      "PartnerParams": {
        "job_id": "52d0de86-be3b-4219-9e96-8195b0018944",
        "user_id": "1511bf02-801a-4b57-ac8e-ef17e26bfeb4",
        "job_type": "1",
        "optional_info": "Partner can put whatever they want as long as it is a string",
        "more_optional_info": "There can be as much or as little or no optional info",
        "ExpirationDate": "Not Available"
      }
    }
  ]
}
```

## Job Status Codes

Depending on the outcome of the job\_status call, there is a status code that will be returned. The status `code` is different from the `result code` which is the numerical value of the result of the job that was processed.

| Code | Description                 |
| ---- | --------------------------- |
| 2301 | System error                |
| 2302 | Success                     |
| 2303 | Invalid JSON                |
| 2304 | Job not found               |
| 2305 | Invalid sec\_key            |
| 2307 | Enrolled user is disabled   |
| 2310 | No enrolled user found      |
| 2313 | Missing required parameters |
| 2314 | No zip file received        |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://legacy-docs.usesmileid.com/further-reading/job-status.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
