Skip to content

Aiwyn API (1.0.0)

Welcome to Aiwyn API

The Aiwyn API provides programmatic access to our comprehensive suite of financial automation tools. Build powerful integrations and automate your accounting workflows with our RESTful APIs.

Key Features

  • 🔐 Secure Authentication - Industry-standard OAuth 2.0 and API key authentication
  • 📊 Real-time Data - Access up-to-date financial information
  • 🚀 High Performance - Low latency, high throughput API infrastructure
  • 📚 Comprehensive Coverage - Full access to clients, engagements, expenses, and more
  • 🛠️ Developer-Friendly - Extensive documentation, SDKs, and code examples

API Versioning

We use URL versioning for our APIs. The current version is v1. All endpoints are prefixed with the version number.

Download OpenAPI description
Overview
Languages
Servers
Mock server
https://api.doc.aiwyn.ai/_mock/bundle/
Staging Environment (Test Data)
https://demo.api.aiwyn.ai/

🔐 Authentication

Authentication endpoints for obtaining access tokens and managing API keys.

Operations

👤 Client

Manage client records, profiles, and related operations.

Operations

📇 Contact

Manage contact information and relationships for clients.

Operations

🧑‍💼 Staff

Manage staff accounts, roles, and permissions.

Operations

💳 Payments

Handle incoming and outgoing payments.

Operations

🧾 Billing

Manage billing cycles, statements, and billing configurations.

Operations

📄 Invoices

Create, send, and manage invoices.

Operations

📋 Projects

Handle engagements, projects, and workflow tracking.

Operations

List projects

Request

Retrieve all projects with basic pagination support

Projects are represented via vw_job. Default ordering by updatedAt desc.

Real Example:

curl --location 'https://{{host}}/v1/projects' \
--header 'Authorization: bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
  "pageSize": 25,
  "page": 0
}'
Security
BearerAuth
Bodyapplication/json
pageSizeinteger[ 1 .. 1000 ]

Maximum number of projects to return

Default 50
pageinteger>= 0

Number of records to skip for pagination

Default 0
curl -i -X POST \
  https://api.doc.aiwyn.ai/_mock/bundle/gql/v1/projects \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "pageSize": 25,
    "page": 0
  }'

Responses

Successfully retrieved projects

Search projects

Request

Advanced project filtering with custom GraphQL where clauses and dynamic ordering

Projects are stored in the Jobs table (vw_job view). Supports manager, dates, and flags.

Real Example:

curl --location 'https://{{host}}/v1/projects/search' \
--header 'Authorization: bearer {{token}}' \
--header 'Content-Type: application/json' \
--data '{
  "pageSize": 1,
  "where": {
    "_and": [
      {
        "_or": [
          {
            "name": {
              "_ilike": "%migration%"
            }
          },
          {
            "serviceDescription": {
              "_ilike": "%review%"
            }
          }
        ]
      },
      {
        "active": {
          "_eq": true
        }
      },
      {
        "updatedAt": {
          "_gte": "1900-01-01T00:00:00Z"
        }
      },
      {
        "partnerId": {
          "_in": [
            101,
            102,
            103
          ]
        }
      }
    ]
  },
  "orderBy": [
    {
      "updatedAt": "desc"
    },
    {
      "name": "asc"
    }
  ]
}'
Security
BearerAuth
Bodyapplication/json
pageSizeinteger[ 1 .. 1000 ]
Default 1
whereobject

GraphQL-style where clause for complex project filtering

Example: {"_and":[{"_or":[{"name":{"_ilike":"%migration%"}},{"serviceDescription":{"_ilike":"%review%"}}]},{"active":{"_eq":true}},{"updatedAt":{"_gte":"1900-01-01T00:00:00Z"}},{"partnerId":{"_in":[101,102,103]}}]}
orderByArray of objects

Dynamic ordering specifications

Example: [{"updatedAt":"desc"},{"name":"asc"}]
curl -i -X POST \
  https://api.doc.aiwyn.ai/_mock/bundle/gql/v1/projects/search \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "pageSize": 1,
    "where": {
      "_and": [
        {
          "_or": [
            {
              "name": {
                "_ilike": "%migration%"
              }
            },
            {
              "serviceDescription": {
                "_ilike": "%review%"
              }
            }
          ]
        },
        {
          "active": {
            "_eq": true
          }
        },
        {
          "updatedAt": {
            "_gte": "1900-01-01T00:00:00Z"
          }
        },
        {
          "partnerId": {
            "_in": [
              101,
              102,
              103
            ]
          }
        }
      ]
    },
    "orderBy": [
      {
        "updatedAt": "desc"
      },
      {
        "name": "asc"
      }
    ]
  }'

Responses

Successfully retrieved filtered projects

Get project by ID

Request

Retrieve a specific project by its unique identifier

This endpoint provides detailed project information including:

  • Complete project details and specifications
  • Project status and lifecycle information
  • Client and engagement relationships
  • Team assignments and resource allocation
  • Budget and financial tracking data
  • Timeline and milestone information

Project Management Features:

  • Project lifecycle tracking
  • Resource allocation and team management
  • Budget and financial oversight
  • Timeline and milestone management
  • Client relationship integration

Project Details Include:

  • Project name and description
  • Project status and phase
  • Client and engagement references
  • Team member assignments
  • Budget and financial data
  • Timeline and milestone tracking

Business Applications:

  • Project status monitoring
  • Resource allocation analysis
  • Budget tracking and reporting
  • Client project portfolio management
  • Team performance analysis

Real Example:

curl --location 'https://{{host}}/v1/project/67890' \
--header 'Authorization: bearer {{token}}' \
--header 'Content-Type: application/json'

Response Example:

{
  "id": 67890,
  "name": "Q4 Financial Audit",
  "description": "Comprehensive financial audit for Q4 2024 including tax preparation and compliance review",
  "status": "IN_PROGRESS",
  "phase": "EXECUTION",
  "clientId": 789,
  "clientName": "Acme Corporation",
  "engagementId": 456,
  "engagementName": "Annual Audit Engagement",
  "startDate": "2024-10-01T00:00:00Z",
  "endDate": "2024-12-31T23:59:59Z",
  "budget": 25000.00,
  "currency": "USD",
  "actualCost": 18500.00,
  "teamMembers": [
    {
      "staffId": 123,
      "name": "John Smith",
      "role": "SENIOR_AUDITOR",
      "allocation": 0.8
    },
    {
      "staffId": 124,
      "name": "Jane Doe",
      "role": "AUDITOR",
      "allocation": 0.6
    }
  ],
  "milestones": [
    {
      "id": 1,
      "name": "Planning Phase Complete",
      "dueDate": "2024-10-15T00:00:00Z",
      "status": "COMPLETED"
    },
    {
      "id": 2,
      "name": "Fieldwork Complete",
      "dueDate": "2024-12-15T00:00:00Z",
      "status": "IN_PROGRESS"
    }
  ],
  "createdAt": "2024-09-15T10:00:00Z",
  "updatedAt": "2024-11-20T14:30:00Z"
}
Security
BearerAuth
Path
idinteger>= 1required

Unique identifier of the project

Example: 67890
curl -i -X GET \
  https://api.doc.aiwyn.ai/_mock/bundle/gql/v1/project/67890 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Project details retrieved successfully

Bodyapplication/json
idinteger

Unique project identifier

Example: 67890
namestring

Project name

Example: "Q4 Financial Audit"
descriptionstring

Detailed project description

Example: "Comprehensive financial audit for Q4 2024 including tax preparation and compliance review"
statusstring

Current project status

Enum"PLANNING""IN_PROGRESS""ON_HOLD""COMPLETED""CANCELLED"
Example: "IN_PROGRESS"
phasestring

Current project phase

Enum"PLANNING""EXECUTION""REVIEW""DELIVERY""CLOSED"
Example: "EXECUTION"
clientIdinteger

Associated client identifier

Example: 789
clientNamestring

Name of the client

Example: "Acme Corporation"
engagementIdinteger

Associated engagement identifier

Example: 456
engagementNamestring

Name of the engagement

Example: "Annual Audit Engagement"
startDatestring(date-time)

Project start date

Example: "2024-10-01T00:00:00Z"
endDatestring(date-time)

Project end date

Example: "2024-12-31T23:59:59Z"
budgetnumber(decimal)

Project budget amount

Example: 25000
currencystring

Budget currency code

Example: "USD"
actualCostnumber(decimal)

Actual cost incurred to date

Example: 18500
teamMembersArray of objects

Team members assigned to the project

milestonesArray of objects

Project milestones

createdAtstring(date-time)

Project creation timestamp

Example: "2024-09-15T10:00:00Z"
updatedAtstring(date-time)

Last update timestamp

Example: "2024-11-20T14:30:00Z"
Response
application/json
{ "id": 67890, "name": "Q4 Financial Audit", "description": "Comprehensive financial audit for Q4 2024 including tax preparation and compliance review", "status": "IN_PROGRESS", "phase": "EXECUTION", "clientId": 789, "clientName": "Acme Corporation", "engagementId": 456, "engagementName": "Annual Audit Engagement", "startDate": "2024-10-01T00:00:00Z", "endDate": "2024-12-31T23:59:59Z", "budget": 25000, "currency": "USD", "actualCost": 18500, "teamMembers": [ {} ], "milestones": [ {} ], "createdAt": "2024-09-15T10:00:00Z", "updatedAt": "2024-11-20T14:30:00Z" }

⏱ Time

Track and manage billable and non-billable time entries.

Operations

✉️ Engagement

Create, send, and track engagement.

Operations

🛤 Last Mile

Handle the final delivery stage and client closing processes.