---
updatedAt: 2026-07-22T13:00:17.000Z
agentTools:
  siteIndex: https://docs.alpaca.markets/llms.txt
  projectIndex: https://docs.alpaca.markets/us/llms.txt
---

# Journals API

Journals API allows you to move cash or securities from one account to another.

For more on creating and retrieving journals please check out our [API reference section on journals](https://docs.alpaca.markets/reference/createjournal).

The most common use case is [cash pooling](https://docs.alpaca.markets/docs/funding-accounts#cash-pooling), a funding model where you can send bulk wires into your firm account and then move the money into each individual user account.

<Image src="https://files.readme.io/c5b61f3-image.png" alt="Cash pooling funds flow" align="center" caption="Cash pooling funds flow" />

There are two types of journals:

**JNLC**<br />Journal cash between accounts. You can simulate instant funding in both sandbox and production by journaling funds between your pre-funded sweep accounts and a user’s account.

You can only journal cash from a firm account to a user account and vice-versa but not from customer to customer.

**JNLS**<br />Journal securities between accounts. Reward your users upon signing up or referring others by journaling small quantities of shares into their portfolios.

You can only journal securities from a firm account to a user account and not vice-versa or customer-to-customer.

## Journals Status

The most common status flow for journals is quite simple:

1. Upon creation, the journal will be created in a `queued` state.
2. Then, the journal will be `sent_to_clearing` meaning that the request has been submitted to our books and records system. \[For JNLC v2, this status can only be reached via the manual approval flow, when journal limits are reached.]
3. If there are no issues the journal will be `executed`, meaning that the cash or securities have been successfully moved into the receiving account.
4. \[JNLC v2 only] Finally, the journal will move to `activity_created`, to indicate the the non-trade activity has been successfully created. It is not needed to wait for this step to utilize the updated buying power; this is informational-only.

Still, there are other cases in which the journal is `rejected`, `refused` or requires manual intervention from Alpaca's cashiering team.

| Status             | Description                                                                                                                                                                                                                                                    |
| :----------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `queued`           | This is the initial status when the journal is still in the queue to be processed.                                                                                                                                                                             |
| `sent_to_clearing` | The journal has been sent to be processed by Alpaca’s booking system.                                                                                                                                                                                          |
| `executed`         | The balances have been updated for the accounts involved in the transaction. In some rare cases, journals can be reversed from this status by Alpaca's cashiering team if the transaction is not permitted.                                                    |
| `activity_created` | The non-trade activity for the journal has been created. In some rare cases, journals can be reversed from this status by Alpaca's cashiering team if the transaction is not permitted. \[JNLC v2-only status]                                                 |
| `pending`          | The journal is pending to be processed as it requires manual approval from Alpaca operations, for example, this can be caused by hitting the [journal limits](https://docs.alpaca.markets/edit/broker-api-faq).                                                |
| `rejected`         | The journal has been manually rejected.                                                                                                                                                                                                                        |
| `canceled`         | The journal has been canceled, either via an API request or by Alpaca's operations team.                                                                                                                                                                       |
| `refused`          | The journal was never posted in Alpaca's ledger, probably because some of the preliminary checks failed. A common example would be a replayed request in close succession, where the first request is executed and the second request fails the balance check. |
| `correct`          | The journal has been manually corrected. The previously executed journal is cancelled and a new journal with the correct amount is created.                                                                                                                    |
| `deleted`          | The journal has been deleted from our ledger system.                                                                                                                                                                                                           |

<Image src="https://files.readme.io/8b024b3-image.png" alt="Journal statuses flowchart" align="center" caption="Journal status flowchart: JNLS, JNLC v1" />

<br />

<br />

<Image src="https://files.readme.io/5924800e8fc3c36e89ee69d6ee9f614731be48905c195efbb94b3baa9c1c8360-jnlcv2_flow.png" align="center" caption="Journal status flowchart: JNLC v2" />

<br />

## Upgrading from JNLC v1 to v2

As long as your code is prepared to accept the new `activity_created` status, and does not depend on receiving the `queued` or `sent_to_clearing` status, there are no other changes required to upgrade to v2. JNLC version is configured by Alpaca; if you would like to upgrade, please speak with your customer success manager.

However, you can achieve extra performance gains by immediately noting that the users' buying power is updated if the journal is in `executed` status when you receive it in the API response. In v1, the journal is in `queued` status at this stage, and in v2, if all is successful, it will already be `executed`.

*Note*: JNLC v2 is currently only available for single cash journal creation. Batch cash journals are still created using the v1 flow. Additionally, JNLCs which are over your daily limits and require manual review will currently still flow through the v1 flow; therefore, please continue to gracefully accept all possible statuses. (In all cases, the `executed` status is what is relevant for your buying power updates.)