COUNTCOUNT
Sign Up
Journal EntriesUpdate journal entry

Update journal entry

PATCH/partners/journal-entries/{uuid}

Updates a manually-created journal entry by UUID.

Same body shape as create: `descriptionEntry`, `date`, optional `refNumber`, and the full replacement `lines` array. System-generated entries return 400.

HMAC signature + Bearer access token
Try this request

Path parameters

uuiduuidrequired

UUID of any line in the posting (anchor line).

Request body

descriptionEntrystring

Updated posting memo.

datedate

Updated posting date.

refNumberstring

Updated reference number.

withCautionboolean

Skip book-closeness checks when true.

linesarray

Full replacement lines array.

accountUuiduuidrequired

Chart-of-accounts UUID.

amountDebitstring

Debit amount.

amountCreditstring

Credit amount.

descriptionLinestring

Per-line description.

Responses

200Journal entry updated successfully.
400System-generated entry, validation error, or unbalanced lines.
404Journal entry not found.
401Missing or invalid HMAC signature, expired timestamp, or invalid Bearer token. Troubleshoot
403The credential does not have access to this workspace or resource. Troubleshoot
429Rate limit exceeded (100 requests per minute per clientId). Retry after the Retry-After header. Troubleshoot
PATCHhttps://api.getcount.com/partners/journal-entries/{uuid}
Request
import crypto from 'node:crypto';

const BASE_URL = 'https://api.getcount.com';
const CLIENT_ID = process.env.COUNT_CLIENT_ID;
const CLIENT_SECRET = process.env.COUNT_CLIENT_SECRET;
const ACCESS_TOKEN = process.env.COUNT_ACCESS_TOKEN;

const method = 'PATCH';
const signingPath = '/journal-entries/3fa85f64-5717-4562-b3fc-2c963f66afa6';
const timestamp = Math.floor(Date.now() / 1000).toString();
const body = {
  "descriptionEntry": "Accrue March rent — revised",
  "date": "2026-03-01",
  "lines": [
    {
      "accountUuid": "c8d9e0f1-a2b3-4567-cdef-789012345678",
      "amountDebit": "2500.00",
      "descriptionLine": "Rent expense"
    },
    {
      "accountUuid": "c3d4e5f6-a7b8-9012-cdef-123456789012",
      "amountCredit": "2500.00",
      "descriptionLine": "Accrued rent payable"
    }
  ]
};
const bodyString = JSON.stringify(body);

const bodyHash = crypto.createHash('sha256').update(bodyString).digest('hex');
const baseString = `${method}:${signingPath}:${timestamp}:${bodyHash}`;
const signature = crypto.createHmac('sha256', CLIENT_SECRET).update(baseString).digest('hex');

const response = await fetch(`${BASE_URL}/partners/journal-entries/3fa85f64-5717-4562-b3fc-2c963f66afa6`, {
  method,
  headers: {
    'x-client-id': CLIENT_ID,
    'x-timestamp': timestamp,
    'x-signature': signature,
    'Content-Type': 'application/json',
    Authorization: `Bearer ${ACCESS_TOKEN}`,
  },
  body: bodyString,
});

console.log(await response.json());
Response · 200
{
  "status": "success",
  "message": "Successfully updated journal entry",
  "data": {
    "results": [
      {
        "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890",
        "descriptionEntry": "Accrue March rent",
        "descriptionLine": "Rent expense",
        "date": "2026-03-01",
        "refNumber": "JE-2026-003",
        "amountDebit": "2500.00",
        "amountCredit": null,
        "accountUuid": "c8d9e0f1-a2b3-4567-cdef-789012345678",
        "account": {
          "id": "c8d9e0f1-a2b3-4567-cdef-789012345678",
          "name": "Rent Expense",
          "type": "Expenses"
        },
        "journalLinkUuid": "a9b8c7d6-e5f4-3210-abcd-ef9876543210",
        "createdAt": "2026-01-15T10:30:00.000Z",
        "updatedAt": "2026-01-28T14:22:30.000Z"
      }
    ]
  }
}