# Work Request Status
source: https://developer.mastercard.com/rpps-biller-maintenance-service/documentation/use-cases/work-request-status/index.md

## Getting Work Request Status {#getting-work-request-status}

After a Concentrator creates a work request with an Add, Edit, or Deactivate action, it can poll the Work Request Status API to check the current approval state. To do this, call GET `/biller-request/{work_request_id}/status`.

**Preconditions:** You have a `workRequestId` from a successful POST `/biller-request` response, and your Client ID is linked to the RPPS ID that submitted the work request.

### Step-by-Step Workflow {#step-by-step-workflow}

1. Capture the `workRequestId` returned by the Add, Edit, or Deactivate request.
2. Call GET `/biller-request/{work_request_id}/status` with that work request ID.
3. Check the returned `workRequestStatus`:
   * `SAVED`: the work request is saved.
   * `PENDING APPROVAL`: the work request is waiting for approval.
   * `APPROVED`: the work request is approved and waiting for its effective date.
   * `IMPLEMENTED`: the effective date has passed and the changes are live.
   * `CANCEL`: the work request was canceled or rejected.
   * `INVALID`: the work request is in an invalid state or has an error.
4. If the status is `CANCEL` or `INVALID`, review the work request in the RPPS UI to find the reason, correct the Biller data, and submit a new request.
5. Poll at a fixed interval, such as hourly, until the status is `IMPLEMENTED`, `CANCEL`, or `INVALID`.

If the call returns HTTP `400` with `BPBMSAPI_ERR_0075`, correct the format of the work request ID. If it returns HTTP `403` with `BPBMSAPI_ERR_0076`, your Client ID cannot view this work request. For resolutions, see [Code and Formats](https://developer.mastercard.com/rpps-biller-maintenance-service/documentation/code-and-formats/index.md).

#### Rationale {#rationale}

Use this endpoint because approval is a multi-day process. RPPS runs background validations after it accepts the initial request, so polling is the only way for your system to learn when a Biller is approved and when its changes take effect. Polling at a fixed interval keeps you informed without making excessive API calls.
Diagram getworkrequest

#### API Reference {#api-reference}


API Reference: `GET /biller-request/{work_request_id}/status`

## Example {#example}

### Request {#request}

The following request retrieves the status of work request `100001`:

    GET /biller-request/100001/status

### Response: Success {#response-success}

```json
{
  "workRequestId": 100001,
  "workRequestStatus": "APPROVED"
}
```

### Response: Error {#response-error}

The following example shows the error returned when the work request ID has an invalid format:

```json
{
  "Errors": {
    "Error": [
      {
        "Source": "RPPS Biller Maintenance Service",
        "ReasonCode": "BPBMSAPI_ERR_0075",
        "Description": "User Error",
        "Recoverable": true,
        "Details": "workRequestId must be a number between 1 and 19 characters"
      }
    ]
  }
}
```

## Next Steps {#next-steps}

* For response fields, see [Work Request Status Parameters](https://developer.mastercard.com/rpps-biller-maintenance-service/documentation/parameters/wr-status-parameters/index.md).
* For related onboarding steps, see [Add Biller](https://developer.mastercard.com/rpps-biller-maintenance-service/documentation/use-cases/add-biller/index.md).
* For the full API description, see [API Reference](https://developer.mastercard.com/rpps-biller-maintenance-service/documentation/api-reference/index.md).
