# Posted Employee Payments _(Realtime-enabled)_

`GET` _(Table: EONE Posted Ledger Doc)_

```
eOne/core/v1.0/postedEmployeePayments
```

Read-only posted employee payments, a **webhook source** for reimbursement status: subscribe to be pushed the moment a reimbursement posts to the employee ledger. The `applications` child reports which employee balances the payment settled and each one's resulting balance.

## The reimbursement round trip

An [expense](https://eonesolutions.github.io/eone-bc-integration/core-expenses.md) posts what the company owes an employee, which raises that employee's ledger balance. An [employeePayments](https://eonesolutions.github.io/eone-bc-integration/core-employeePayments.md) document pays the balance back down. This feed is the third step, and it tells SmartConnect that the money actually reached the employee.

Two measures fall straight out of it. Compare `postingDate` here with the posting date of the expense it settled to get days-to-reimburse. Sum `remainingAmount` over the open rows for an employee to get the balance still owed to them.

## The settlement-truth feed

Reimbursement status lives here. When a reimbursement posts, in full or in part, SmartConnect is pushed one notification on **postedEmployeePayments**. Use `$expand=applications` (or GET `postedEmployeePayments({id})/postedDocApplications`) to see, per settled balance, the `appliedAmount`, the balance's **resulting** `appliedRemainingAmount`, and `appliedOpen`. A $30 reimbursement against a $100 expense balance reports "still $70 owed", and the next $70 reports "paid in full".

Late application, where a reimbursement posts unapplied and is applied later through Apply Entries, re-fires this payment rather than the expense side.

## Subscribing

Register a subscription against the entity set; Business Central notifies your endpoint when a row changes. The notification carries the record id. GET it to read the current values.

```
POST /subscriptions
{
  "resource": "/postedEmployeePayments",
  "notificationUrl": "https://your-endpoint",
  "clientState": "<secret>"
}
```

## Status

`status` is the human-readable settlement state (**Open**, **Partially Settled**, or **Settled**) computed from the ledger entry, so you write status back without interpreting raw open/remaining-amount semantics. `remainingAmount` and `settledAmount` carry the figures behind it.

> **Note:** These feeds are projected from the customer, vendor and employee ledgers by a background job (enable **Posted Document Events** on the eOne Integration Setup page). The base ledger tables are not change-tracked, so posting stays fast; notifications arrive on the next projection run.

> **Info:** Business Central's employee ledger records no external document number, document date or due date, so this feed carries three columns fewer than its customer and vendor siblings.

## Retention

The projection is a short-lived event feed, not a store. The background job purges a row once its posting date falls outside the retention window, **7 days by default**. The options are 7, 14 and 28 on the setup page, or via the `integrationSetup` API. The backfill only seeds documents within that window, and a purge sends subscribers a delete notification. Consume and reconcile within the window.

## Posted Employee Payments fields

_API column → BC field._

**Legend**

- _(req)_ required on create
- _(res)_ resolver
- _(cur)_ currency-translated
- _(ro)_ read-only
- _(ext)_ added to this endpoint by another extension (BC field name shown; its API column name is not known here)

| API | BC field | Notes |
| --- | --- | --- |
| `id` | SystemId | BC record GUID. _(ro)_ |
| `bcCompanyId` | bcCompanyId | The company this row belongs to - the same GUID that appears in the request URL. Present on every endpoint so a store pooling several companies can keep them apart without relying on which URL it called. _(ro)_ |
| `bcCompanyName` | bcCompanyName | The name of the company this row belongs to. _(ro)_ |
| `integrationId` | Integration Id | Originating employee payment's eOne integration key. _(ro)_ |
| `documentNumber` | Document No. | Posted reimbursement document number. _(ro)_ |
| `employeeNumber` | Party No. | Employee the reimbursement posted against. _(ro)_ |
| `employeeIntegrationId` | Party Integration Id | The employee's eOne integration key. _(ro)_ |
| `postingDate` | Posting Date | _(ro)_ |
| `currencyCode` | currencyCode | ISO code; blank is LCY. _(cur)_ |
| `originalAmount` | Original Amount | Full reimbursement amount. _(ro)_ |
| `amount` | Amount | _(ro)_ |
| `remainingAmount` | Remaining Amount | Unapplied balance of the reimbursement. _(ro)_ |
| `settledAmount` | Settled Amount | Amount of the reimbursement that has been applied. _(ro)_ |
| `status` | Status | Open, Partially Settled or Settled. _(ro)_ |
| `closedDate` | Closed Date | _(ro)_ |
| `transactionNumber` | Transaction No. | _(ro)_ |
| `createdDateTime` | SystemCreatedAt | _(ro)_ |
| `lastModifiedDateTime` | SystemModifiedAt | Changes here fire the webhook. _(ro)_ |

## Related pages

Collections nested under this endpoint:

- [Posted Document Applications](https://eonesolutions.github.io/eone-bc-integration/core-postedDocApplications.md)
