Skip to content

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.

Testing Enviornments

  • Sandbox runs the latest development branch.
  • Staging mirrors production behavior and stability.
Download OpenAPI description
Overview
Languages
Servers
Mock server
https://api.doc.aiwyn.ai/_mock/bundle
Sandbox
https://demo.api.aiwyn.ai
Staging
https://staging.api.aiwyn.app

🔐 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

🧩 Client Business Entity

Manage client business entities used for client categorization and structure.

Operations

🔗 Contact Client

Manage contact ↔ client relationship records.

Operations

🪪 Contact Info

Manage contact information records (address, email, phone, etc.).

Operations

🏢 Department

Manage departments and organizational units.

Operations

🏭 Industry

Manage industry classifications.

Operations
Operations

🧩 Job Template

Manage job templates.

Operations

🏬 Office

Manage office locations.

Operations
Operations

🧷 Service Line

Manage service line classifications.

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

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

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

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.

🗃️ Records

Create, update, and manage entity records across standard and custom record types.

The Records API provides:

  • Record Operations - Create, update, and delete records for any entity type
  • Schema Discovery - Query available entity types and their field definitions
  • Custom Record Types - Define and manage custom record type schemas
Operations

🔔 Event Subscriptions

Create and manage webhook subscriptions for entity events.

The Event Subscriptions API provides:

  • Webhook Management - Create, update, and deactivate webhook subscriptions
  • Event Filtering - Subscribe to specific entity types and operations (CREATE, UPDATE, DELETE)
  • Security - Retrieve webhook signing secrets for payload verification
Operations

📁 File

Download and access files associated with records and documents.

Operations