---
updatedAt: 2026-06-04T23:05:11.000Z
agentTools:
  projectIndex: https://docs.qwist.com/llms.txt
---

# Getting your Verification Report

Fetch the account verification report and interpret the name-match affinity result.

# Authorization

Use the `access_token` from step 2 and the `id` from step 1 (or `flow_id` from the callback) to fetch the report.

***

## Fetch the report

**GET** `https://api.finx-s.qwist.cloud/rest/account-verifications/{id}`

```
Authorization: Bearer {access_token}
```

**Response:**

```json
{
  "id": "a9c2e4f8-1b3d-4e7a-9f2c-8d1e3b5a7c9e",
  "provided": {
    "name": "Maria Müller",
    "iban": "DE89370400440532013000"
  },
  "matched": {
    "name": "Maria Müller",
    "affinity": "VERY_HIGH"
  },
  "account": {
    "name": "Girokonto",
    "type": "Giro account",
    "owners": ["Maria Müller"],
    "iban": "DE89370400440532013000",
    "currency": "EUR"
  }
}
```

***

## Understanding the affinity score

The `affinity` field indicates how closely the `provided.name` matches the best account holder name found at the bank.

| Affinity    | Meaning                        | Example                                                                     |
| ----------- | ------------------------------ | --------------------------------------------------------------------------- |
| `VERY_HIGH` | Exact match (case-insensitive) | `"Maria Müller"` vs `"Maria Müller"`                                        |
| `HIGH`      | Minor deviations only          | `"Müller, Maria"` vs `"Maria Müller"` or `"Hans Muller"` vs `"Hans Müller"` |
| `MEDIUM`    | Partial similarity             | `"Maria Schmidt"` vs `"Maria Müller"`                                       |
| `LOW`       | No meaningful match            | `"Thomas Wagner"` vs `"Maria Müller"`                                       |

> ✅ **Recommended decision logic**
>
> * `VERY_HIGH` or `HIGH` → Accept as verified.
> * `MEDIUM` → Flag for manual review.
> * `LOW` → Reject or require alternative identification.

***

## Using readout data

If you passed `"ACCOUNTS"` or `"TRANSACTIONS"` in the `readout` parameter during step 1, you can also fetch account and transaction data using the same access token via the standard `/rest/accounts/` and `/rest/transactions` endpoints.

***

***

## Error handling

The nrich API uses standard HTTP status codes and returns a structured error object in the response body.

### Error response structure

```json
{
  "error": {
    "code": 1000,
    "group": "client",
    "description": "Request body doesn't match input schema.",
    "data": {
      "redirect_uri": ["Not a valid URL."]
    }
  }
}
```

| Field         | Description                                                             |
| ------------- | ----------------------------------------------------------------------- |
| `code`        | nrich-specific numeric error code.                                      |
| `group`       | Error category: `client`, `user`, `bank`, `general`, or `connectivity`. |
| `description` | Short human-readable summary.                                           |
| `data`        | Field-level validation details (on `400` errors).                       |

### HTTP status codes

| Code                        | Meaning                                       | What to do                                                                              |
| --------------------------- | --------------------------------------------- | --------------------------------------------------------------------------------------- |
| `200 OK`                    | Success.                                      | Parse the response body.                                                                |
| `400 Bad Request`           | Invalid or missing parameters.                | Check `error.data` for the specific field.                                              |
| `401 Unauthorized`          | Token missing or expired.                     | Refresh using your `refresh_token` and retry.                                           |
| `403 Forbidden`             | Valid token, insufficient scope.              | Verify your credentials have the required scopes.                                       |
| `404 Not Found`             | Resource not found or not yet created.        | Confirm the ID is correct; some resources only exist after the user completes the flow. |
| `423 Resource Locked`       | Resource temporarily locked during migration. | Retry with exponential backoff (seconds → minutes).                                     |
| `500 Internal Server Error` | Unexpected server error.                      | Retry with backoff; contact support if it persists.                                     |

> 🚧 **Implement 423 retry logic**
>
> `423` can occur after system updates. Your application must handle it with incremental backoff - do not surface it directly to users.

<Accordion title="Common nrich error codes">

<table>
  <thead><tr><th>Code</th><th>Group</th><th>Description</th></tr></thead>
  <tbody>
    <tr><td><code>1000</code></td><td>client</td><td>Invalid request - check <code>data</code> for field details</td></tr>
    <tr><td><code>1002</code></td><td>client</td><td>Entity not found</td></tr>
    <tr><td><code>1008</code></td><td>client</td><td>Resource busy - implement retry with backoff</td></tr>
    <tr><td><code>10000</code></td><td>user</td><td>Login credentials are invalid</td></tr>
    <tr><td><code>10001</code></td><td>user</td><td>PIN is invalid</td></tr>
    <tr><td><code>10004</code></td><td>user</td><td>TAN is invalid</td></tr>
    <tr><td><code>10007</code></td><td>user</td><td>PIN change required at the bank</td></tr>
    <tr><td><code>20000</code></td><td>bank</td><td>Processing at the bank not possible</td></tr>
    <tr><td><code>20003</code></td><td>bank</td><td>Bank under maintenance</td></tr>
    <tr><td><code>30000</code></td><td>general</td><td>Processing at nrich not possible</td></tr>
    <tr><td><code>30005</code></td><td>general</td><td>Task has expired</td></tr>
    <tr><td><code>40000</code></td><td>connectivity</td><td>Bank not supported</td></tr>
  </tbody>
</table>

</Accordion>

<br />

***

<br />