> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pazy.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Vendor Audit Trail API

> Retrieve audit trail for a specific vendor by its identifier

## Authentication

All requests require an API key in the request headers.

**Headers:**

```
Authorization: Api-Key YOUR_API_KEY
```

## Request

**Content-Type:** `application/json`

### Path Parameters

| Parameter | Type   | Required | Description                                     |
| --------- | ------ | -------- | ----------------------------------------------- |
| `id`      | string | Yes      | The unique identifier of the Vendor to retrieve |

## Code Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET https://api.pazy.io/v1.0/vendor/vendor_identifier/audit-trail \
    -H "Authorization: Api-Key YOUR_API_KEY"
  ```

  ```javascript JavaScript (Fetch API) theme={null}
  const response = await fetch(
    "https://api.pazy.io/v1.0/vendor/vendor_identifier/audit-trail",
    {
      method: "GET",
      headers: {
        Authorization: "Api-Key YOUR_API_KEY",
      },
    },
  );

  const result = await response.json();
  ```

  ```python Python (requests) theme={null}
  import requests

  url = "https://api.pazy.io/v1.0/vendor/vendor_identifier/audit-trail"
  headers = {
      "Authorization": "Api-Key YOUR_API_KEY"
  }

  response = requests.get(url, headers=headers)
  result = response.json()
  ```
</CodeGroup>

## Success Response

**HTTP Status:** `200 OK`

**Response Fields:**

| Field                               | Type    | Description                                                                                      |
| ----------------------------------- | ------- | ------------------------------------------------------------------------------------------------ |
| `ok`                                | boolean | Indicates whether the request was successful                                                     |
| `data`                              | object  | Contains the vendor audit trail response data                                                    |
| `data.auditTrail`                   | array   | List of audit trail entries associated with the vendor                                           |
| `data.auditTrail[].createdOn`       | string  | The date when the audit trail entry was created (ISO 8601 format)                                |
| `data.auditTrail[].fieldType`       | string  | The field of the audit where the data experience change. Like: `ADDRESS`, `BANK`, `PAN`, `STATE` |
| `data.auditTrail[].type`            | string  | The type of the audit trail entry. Like: `CREATE`, `UPDATE`, `DELETE`                            |
| `data.auditTrail[].actionBy`        | string  | Give who performed the action: `USER`, or `PLATFORM`                                             |
| `data.auditTrail[].user`            | object  | Information about the user who made the comment                                                  |
| `data.auditTrail[].user.id`         | string  | Unique identifier for the user                                                                   |
| `data.auditTrail[].user.name`       | string  | Name of the user                                                                                 |
| `data.auditTrail[].activity`        | object  | Details about the audit trail entry                                                              |
| `data.auditTrail[].activity.before` | object  | Gives the old state                                                                              |
| `data.auditTrail[].activity.after`  | object  | Gives the new state                                                                              |
| `data.context`                      | object  | Additional context for the audit trail                                                           |
| `data.context.count`                | number  | The total number of audit trail                                                                  |

### Response Example

```json theme={null}
{
  "ok": true,
  "data": {
    "auditTrail": [
      {
        "fieldType": "GSTIN",
        "type": "UPDATE",
        "actionBy": "USER",
        "createdOn": "2024-07-14T15:31:58.024Z",
        "user": {
          "id": "<userId>",
          "name": "John Doe"
        },
        "activity": {
          "before": {
            "value": "29ABCDE1234F1Z5"
          },
          "after": {
            "value": "29ABCDE1234F2Z5"
          }
        }
      },
      {
        "fieldType": "BANK",
        "type": "DELETE",
        "actionBy": "USER",
        "createdOn": "2024-07-14T19:55:41.879Z",
        "user": {
          "id": "<userId>",
          "name": "John Doe"
        },
        "activity": {
          "before": {
            "value": {
              "ifsc": "ABCD0123456",
              "accountNumber": "<accountNumber>"
            }
          }
        }
      }
    ],
    "context": {
      "count": 2
    }
  }
}
```

## Error Responses

### Missing Vendor ID

**HTTP Status:** `400 Bad Request`

```json theme={null}
{
  "ok": false,
  "error": {
    "code": "MISSING_REQUIRED_FIELD",
    "message": "Vendor ID is required"
  }
}
```

### Vendor Not Found

**HTTP Status:** `404 Not Found`

```json theme={null}
{
  "ok": false,
  "error": {
    "code": "VENDOR_NOT_FOUND",
    "message": "Vendor not found"
  }
}
```

### Access Denied

**HTTP Status:** `403 Forbidden`

```json theme={null}
{
  "ok": false,
  "error": {
    "code": "ACCESS_DENIED",
    "message": "Access denied: You can only view your own vendors or vendors where you are the vendor owner"
  }
}
```

### Authentication Errors

**HTTP Status:** `401 Unauthorized`

```json theme={null}
{
  "ok": false,
  "error": {
    "code": "MISSING_CREDENTIALS",
    "message": "Missing Credentials"
  }
}
```

```json theme={null}
{
  "ok": false,
  "error": {
    "code": "INVALID_API_KEY",
    "message": "Invalid API Key"
  }
}
```

### Permission Errors

**HTTP Status:** `403 Forbidden`

```json theme={null}
{
  "ok": false,
  "error": {
    "code": "INSUFFICIENT_PERMISSIONS",
    "message": "Permission check failed - PERMISSION_CHECK_FAILED"
  }
}
```

## Best Practices

### Access Control

* Only vendors you created or where you are the vendor owner are accessible (unless you have admin or auditor role)
* Use the vendor `id` returned from the vendor creation endpoint to retrieve audit trail
