Penny Docs
Transactions

Update Transaction

PUT
/v1/households/{household_id}/transactions/{transaction_id}

Replaces a transaction's editable details, including its display name, date, notes, category, merchant, tags, and hidden state. Supply every required field, including nulls for nullable fields; tags replaces the existing tag set. The amount and account are not editable through this endpoint.

Changes to the date, merchant, and category are protected from later automatic overrides. When rule-matching inputs change, household rules run again and may add tags or apply other unlocked actions. Returns the resulting transaction.

Authorization

PersonalApiToken
AuthorizationBearer <token>

Use your personal API token (penny_pat_…) as the bearer credential. Enter the token only; the client adds the Bearer prefix. Read-only tokens permit read requests. Read/write tokens remain limited by your current household membership and role. See https://penny.finance/docs/api#authentication for setup.

In: header

Path Parameters

household_id*Household Id
transaction_id*Transaction Id

Request Body

application/json

Replaces editable details. Omitted nullable fields are cleared; date, tags and is_hidden are required.

name?|null
household_finance_category_id?string|null
merchant_id?string|null
notes?string|null
date*Date
Formatdate
tags*array<string>
is_hidden*Is Hidden

Required on PUT; send the desired visibility explicitly.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/households/string/transactions/string" \  -H "Content-Type: application/json" \  -d '{    "date": "2019-08-24",    "tags": [      "Tg8qN1cK5rWd"    ],    "is_hidden": false  }'
{  "id": "Tx3fJ9mS6vBa",  "original_name": "BLUE BOTTLE COFFEE #047",  "user_name": "Morning coffee",  "amount": {    "amount": "68.42",    "currency": "USD"  },  "native_amount": {    "amount": "68.42",    "currency": "USD"  },  "lat": 37.7764,  "lon": -122.4231,  "pending": false,  "penny_taxonomy": "FOOD_AND_DRINK_COFFEE",  "account": {    "id": "Ac7kP2mN9qRs",    "mask": "4821",    "name": "Everyday Checking",    "type": "depository",    "current_balance": {      "amount": "68.42",      "currency": "USD"    },    "currency": "USD",    "household_id": "Hh4vK8pQ2sLm",    "user_name": "Daily spending"  },  "household_finance_category": {    "id": "Ct5nR8wY1jFu",    "name": "Coffee & Dining",    "emoji": "☕️",    "category_type": "income",    "group_id": "Cg2mV7pL4zXe"  },  "merchant": {    "id": "Mr9dL3xT6bQa",    "name": "Blue Bottle Coffee",    "website": "https://www.bluebottlecoffee.com/",    "image_url": "https://cdn.penny.finance/merchants/blue-bottle-coffee.png",    "default_image_url": "https://cdn.penny.finance/merchants/default-coffee.png",    "transaction_count": 18  },  "image_url": "https://cdn.penny.finance/merchants/blue-bottle-coffee.png",  "image_kind": "merchant",  "tags": [    {      "id": "Tg8qN1cK5rWd",      "name": "Work meals",      "color": "#6D5BD0"    }  ],  "is_deleted": false,  "is_hidden": false,  "pending_transaction_id": "Tx3fJ9mS6vBa",  "date": "2019-08-24",  "need_review": false,  "possible_duplicate_ids": [    "Tx3fJ9mS6vBa"  ],  "notes": "Coffee with Sam before work",  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z",  "name": "Morning coffee",  "split_from_transaction_id": "Tx3fJ9mS6vBa",  "split_child_ids": [    "Tx3fJ9mS6vBa"  ],  "is_recurring": false}