Cobalt Docs
Api referenceTransactions

Create transaction

Add a manual transaction. The target `accountId` must reference a manual (not bank-synced) account. **Note:** `amount` is signed — positive = money in (credit/refund/income), negative = money out (debit/spending).

POST
/transactions

Authorization

bearerAuth
AuthorizationBearer <token>

Cobalt API key (prefix ck_live_). Issue from dashboard → Settings → API keys.

In: header

Request Body

application/json

Transaction to create

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/transactions" \  -H "Content-Type: application/json" \  -d '{    "accountId": "01HX8N7K5Q3M2P9R4V6Y8Z1A2B",    "amount": -24.5,    "date": "2026-05-22",    "name": "Blue Bottle Coffee — Mission"  }'
{
  "accountId": "string",
  "amount": 0,
  "category": "string",
  "date": "string",
  "id": "string",
  "location": {
    "address": "string",
    "city": "string",
    "country": "string",
    "lat": 0,
    "lon": 0,
    "postal_code": "string",
    "region": "string",
    "store_number": "string"
  },
  "merchant": "string",
  "name": "string",
  "notes": "**Reimbursable** — paid for team lunch, expense via Expensify",
  "pending": true,
  "tagIds": [
    "string"
  ]
}
{
  "code": "string",
  "error": "string"
}
{
  "code": "string",
  "error": "string"
}
{
  "error": {
    "issues": [
      {
        "code": "string",
        "message": "string",
        "path": [
          "string"
        ]
      }
    ],
    "name": "string"
  },
  "success": true
}