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).
Authorization
bearerAuth 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
}