REST /api/v1/expense-attestations 7 endpoints
GET /api/v1/expense-attestations/api/v1/expense-attestations

Get pending attestation queue for coordinator

Public

Response Example

{
  "data": [
    {
      "attestation_id": "att_2b9e4c",
      "expense_id": "exp_9c2d7e",
      "claimant_name": "Kari Nordmann",
      "activity_name": "Youth Football Camp",
      "total_amount": 247.5,
      "status": "pending",
      "submitted_at": "2026-03-18T09:14:00Z"
    },
    {
      "attestation_id": "att_5d1f7a",
      "expense_id": "exp_1a4f8b",
      "claimant_name": "Ola Hansen",
      "activity_name": "Regional Swim Meet",
      "total_amount": 89,
      "status": "pending",
      "submitted_at": "2026-03-19T11:30:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 2
  }
}
GET /api/v1/expense-attestations/api/v1/expense-attestations/:id

Get attestation record details

Public

Response Example

{
  "attestation_id": "att_2b9e4c",
  "expense_id": "exp_9c2d7e",
  "organization_id": "org_4729bc",
  "coordinator_id": null,
  "status": "pending",
  "comment": null,
  "decided_at": null,
  "created_at": "2026-03-18T09:14:00Z"
}
POST /api/v1/expense-attestations/api/v1/expense-attestations

Create attestation record when expense is submitted

Public

Request Example

{
  "expense_id": "exp_9c2d7e",
  "organization_id": "org_4729bc"
}

Response Example

{
  "attestation_id": "att_2b9e4c",
  "expense_id": "exp_9c2d7e",
  "organization_id": "org_4729bc",
  "status": "pending",
  "created_at": "2026-03-18T09:14:00Z"
}
PUT /api/v1/expense-attestations/api/v1/expense-attestations/:id

Update attestation record (coordinator decision)

Public

Request Example

{
  "coordinator_id": "usr_c00rd1",
  "status": "approved",
  "comment": "All receipts verified"
}

Response Example

{
  "attestation_id": "att_2b9e4c",
  "expense_id": "exp_9c2d7e",
  "coordinator_id": "usr_c00rd1",
  "status": "approved",
  "comment": "All receipts verified",
  "decided_at": "2026-03-20T14:22:00Z"
}
DELETE /api/v1/expense-attestations/api/v1/expense-attestations/:id

Cancel an attestation record (admin only)

Public

Response Example

{
  "deleted": true,
  "attestation_id": "att_2b9e4c"
}
POST /api/v1/expense-attestations/api/v1/expense-attestations/:id/approve

Approve an expense

Public

Request Example

{
  "coordinator_id": "usr_c00rd1",
  "comment": "All receipts verified, distance confirmed"
}

Response Example

{
  "attestation_id": "att_2b9e4c",
  "expense_id": "exp_9c2d7e",
  "status": "approved",
  "coordinator_id": "usr_c00rd1",
  "comment": "All receipts verified, distance confirmed",
  "decided_at": "2026-03-20T14:22:00Z"
}
POST /api/v1/expense-attestations/api/v1/expense-attestations/:id/reject

Reject an expense with mandatory comment

Public

Request Example

{
  "coordinator_id": "usr_c00rd1",
  "comment": "Receipt missing for parking claim over 200 NOK"
}

Response Example

{
  "attestation_id": "att_2b9e4c",
  "expense_id": "exp_9c2d7e",
  "status": "rejected",
  "coordinator_id": "usr_c00rd1",
  "comment": "Receipt missing for parking claim over 200 NOK",
  "decided_at": "2026-03-20T14:25:00Z"
}

Additional Metadata

{
  "contract_summary": {
    "total_contracts": 410,
    "total_endpoints": 2416,
    "api_styles_used": [
      "rest"
    ]
  },
  "generated_at": "2026-03-26T06:55:53.316Z"
}