# Audit

## Overview

The Veratad Audit API is designed to retrieve an audit trail of all transactions processed on a specific day. Please note that data for a particular day is available only on the next calendar day after 7 am EST.

**Base URL**: `https://reporting.veratad.app`

## Authentication

To authenticate, you'll need the `user` and `pass` for the audit trail you want to inquire about.

***

## Audit Trail Endpoint

### POST `/api/audit`

Fetches an audit trail of transactions for a specified day.

#### Request Parameters

| Parameter | Type   | Description       |
| --------- | ------ | ----------------- |
| `user`    | string | Your API username |
| `pass`    | string | Your API password |
| `day`     | string | Date (YYYY-MM-DD) |

#### Request Example

```json
{
  "user": "yourUsername",
  "pass": "yourPassword",
  "day": "YYYY-MM-DD"
}
```

#### Response

The response is a JSON object containing a data field, which is an array of transaction objects.

#### Response Fields

* data: An array of transaction objects
* id: Transaction ID
* timestamp: Timestamp of the transaction
* service: Service utilized
* reference: Reference code
* user: User who initiated the transaction
* company: Company name
* origin: Origin IP
* path: API path
* flags: Flags (e.g., test, error)
* action: Resulting action
* detail: Additional details
* issues: Any issues encountered (array)
* inputs: Extra input fields

```json
{
  "data": [
    {
      "id": 157929511,
      "timestamp": "2023-09-09T23:59:54",
      // additional fields here
    },
    // additional transactions here
  ]
}
```

#### Error Handling&#x20;

The API could return various errors depending on the situation. Below are the types of errors and their corresponding JSON bodies and HTTP status codes:

Bad Credentials - HTTP Status Code: 401 Unauthorized

```json
{
      "error": "Unauthorized",
      "message": "Invalid username or password."
}
```

Data Not Ready - HTTP Status Code: 404 Not Found

```json
{
      "error": "Data Not Ready",
      "message": "Data for the requested day is not yet available."
}
```

Day Not Available - HTTP Status Code: 404 Not Found

```json
{
      "error": "Day Not Available",
      "message": "Data for the specified day is not available."
}
```

Invalid Date Format - HTTP Status Code: 400 Bad Request

```json
{
      "error": "Invalid Date Format",
      "message": "Date should be in YYYY-MM-DD format."
}
```

Server Error - HTTP Status Code: 500 Internal Server Error

```json
{
      "error": "Server Error",
      "message": "An internal server error occurred."
}
```
