Penny Docs
Recurring transactions

Update Recurring Transaction

PUT
/v1/households/{household_id}/recurring-transactions/{recurring_transaction_id}

Replaces a recurring series' editable details and returns the updated series. Supply its complete definition, including currency, status, and notes. Twice-monthly frequencies require a null or omitted start_date; other frequencies require an anchor date.

Changing status to cancelled records today in the household's timezone as the end date, preserving an existing end date on later edits. Reactivating clears the end date. These changes affect expected occurrences in Penny; they do not cancel or modify payments at the merchant.

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
recurring_transaction_id*Recurring Transaction Id

Request Body

application/json

Replaces recurring details. Omitted start_date clears it; all other fields are required.

merchant_id*Merchant Id
name*Name
amount*Amount
currency*Currency

Required on PUT; send the desired currency explicitly.

Value in

  • "AED"
  • "AFN"
  • "ALL"
  • "AMD"
  • "AOA"
  • "ARS"
  • "AUD"
  • "AWG"
  • "AZN"
  • "BAM"
  • "BBD"
  • "BDT"
  • "BHD"
  • "BIF"
  • "BMD"
  • "BND"
  • "BOB"
  • "BOV"
  • "BRL"
  • "BSD"
  • "BTN"
  • "BWP"
  • "BYN"
  • "BZD"
  • "CAD"
  • "CDF"
  • "CHE"
  • "CHF"
  • "CHW"
  • "CLF"
  • "CLP"
  • "CNY"
  • "COP"
  • "COU"
  • "CRC"
  • "CUP"
  • "CVE"
  • "CZK"
  • "DJF"
  • "DKK"
  • "DOP"
  • "DZD"
  • "EGP"
  • "ERN"
  • "ETB"
  • "EUR"
  • "FJD"
  • "FKP"
  • "GBP"
  • "GEL"
  • "GHS"
  • "GIP"
  • "GMD"
  • "GNF"
  • "GTQ"
  • "GYD"
  • "HKD"
  • "HNL"
  • "HTG"
  • "HUF"
  • "IDR"
  • "ILS"
  • "INR"
  • "IQD"
  • "IRR"
  • "ISK"
  • "JMD"
  • "JOD"
  • "JPY"
  • "KES"
  • "KGS"
  • "KHR"
  • "KMF"
  • "KPW"
  • "KRW"
  • "KWD"
  • "KYD"
  • "KZT"
  • "LAK"
  • "LBP"
  • "LKR"
  • "LRD"
  • "LSL"
  • "LYD"
  • "MAD"
  • "MDL"
  • "MGA"
  • "MKD"
  • "MMK"
  • "MNT"
  • "MOP"
  • "MRU"
  • "MUR"
  • "MVR"
  • "MWK"
  • "MXN"
  • "MXV"
  • "MYR"
  • "MZN"
  • "NAD"
  • "NGN"
  • "NIO"
  • "NOK"
  • "NPR"
  • "NZD"
  • "OMR"
  • "PAB"
  • "PEN"
  • "PGK"
  • "PHP"
  • "PKR"
  • "PLN"
  • "PYG"
  • "QAR"
  • "RON"
  • "RSD"
  • "RUB"
  • "RWF"
  • "SAR"
  • "SBD"
  • "SCR"
  • "SDG"
  • "SEK"
  • "SGD"
  • "SHP"
  • "SLE"
  • "SOS"
  • "SRD"
  • "SSP"
  • "STN"
  • "SVC"
  • "SYP"
  • "SZL"
  • "THB"
  • "TJS"
  • "TMT"
  • "TND"
  • "TOP"
  • "TRY"
  • "TTD"
  • "TWD"
  • "TZS"
  • "UAH"
  • "UGX"
  • "USD"
  • "USN"
  • "UYI"
  • "UYU"
  • "UYW"
  • "UZS"
  • "VED"
  • "VES"
  • "VND"
  • "VUV"
  • "WST"
  • "XAD"
  • "XAF"
  • "XAG"
  • "XAU"
  • "XBA"
  • "XBB"
  • "XBC"
  • "XBD"
  • "XCD"
  • "XCG"
  • "XDR"
  • "XOF"
  • "XPD"
  • "XPF"
  • "XPT"
  • "XSU"
  • "XTS"
  • "XUA"
  • "XXX"
  • "YER"
  • "ZAR"
  • "ZMW"
  • "ZWG"
type*TransactionDirection

Which side of the ledger an amount falls on.

Shared by categorization-rule amount filters and recurring-transaction types, which are the same income/expense distinction under two names.

Value in

  • "income"
  • "expense"
frequency*RecurringFrequency

Value in

  • "every_week"
  • "every_2_weeks"
  • "every_4_weeks"
  • "twice_monthly_1st_15th"
  • "twice_monthly_15th_last"
  • "every_month"
  • "every_2_months"
  • "every_3_months"
  • "every_4_months"
  • "every_6_months"
  • "every_year"
start_date?|null
status*RecurringTransactionStatus

Value in

  • "active"
  • "cancelled"
notes*Notes

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/recurring-transactions/string" \  -H "Content-Type: application/json" \  -d '{    "merchant_id": "Mr9dL3xT6bQa",    "name": "Netflix",    "amount": "68.42",    "currency": "USD",    "type": "income",    "frequency": "every_week",    "status": "active",    "notes": "Standard monthly plan"  }'
{  "id": "Rt6wP4dM8xNc",  "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"  },  "name": "Netflix",  "amount": {    "amount": "68.42",    "currency": "USD"  },  "type": "income",  "frequency": "every_week",  "start_date": "2019-08-24",  "status": "active",  "end_date": "2019-08-24",  "notes": "Standard monthly plan"}