---
title: "Create a Reverse Batch Journal Transaction (Many-to-One)"
method: POST
path: "/v1/journals/reverse_batch"
tags: ["Journals"]
---

# Create a Reverse Batch Journal Transaction (Many-to-One)

`POST /v1/journals/reverse_batch`

You can also create a batch journal request by using the following endpoint. This is enabled on JNLC for now only.

Note that if there is an invalid account_id the whole batch operation will be canceled.
Every single request must be valid for the entire batch operation to succeed.

In the case of a successful request, the response will contain an array of journal objects with an extra attribute error_message in the case when a specific account fails to submit a journal.

## Request body

- ReverseBatchJournalRequest
  - `entries` object[]
    - `amount` string — Journal amount in USD
    - `description` string — Journal description, gets returned in the response
    - `from_account` string — The ID of the from_account that you want to journal from
  - `entry_type` 'JNLC' — Only supports `JNLC` for now
  - `to_account` string — The destination of funds. Most likely is your Sweep Firm Account

## Response `200`

OK

- BatchJournalResponse[]
  - union
    - object — A Journal object with an extra attribute error_message in the case when a specific account fails to receive a journal.
      - `created_at` string, date-time
      - `entry_type` 'JNLC' | 'JNLS', required — JNLS
      - `from_account` string, uuid, required — The account ID that initiates the journal - account_status must equal to ACTIVE or CLOSE
      - `id` string, uuid, required — The journal ID
      - `settle_date` string, date, nullable — Date string in "%Y-%m-%d" format
      - `status` 'pending' | 'canceled' | 'executed' | 'activity_created' | 'queued' | 'rejected' | 'deleted' | 'refused' | 'sent_to_clearing' | 'correct' — Represents the status that a Journal instance can be in. **Current Values** queued Journal in queue to be processed. Journal is not processed yet. sent_to_clearing Journal sent to be processed by Alpaca's booking system. The journal is not processed yet. pending Journal pending to be processed as it requires manual approval from Alpaca operations (for example due to hitting JNLC daily limits). executed Journal executed and balances updated for both sides of the journal transaction. This is not a final status, journals can be reversed if there is an error. activity_created Non-trade activity has been created for journal (JNLC v2-only). rejected Journal rejected. Please try again. canceled Journal canceled. This is a **FINAL** status. refused Journal refused. Please try again. deleted Journal deleted. This is a **FINAL** status. correct Journal is corrected. Previously executed journal is cancelled and a new journal is corrected amount is created. This is a **FINAL** status.
      - `to_account` string, uuid, required — The account ID that received the journal - account_status must equal to ACTIVE
      - `transmitter_info` TransmitterInfo — Information about the transmitter to satisfy travel rule requirements. Required if the requesting correspondent qualifies as a financial institution
        - `originator_bank_account_number` string — Required if the requesting correspondent qualifies as a financial institution
        - `originator_bank_name` string — Required if the requesting correspondent qualifies as a financial institution
        - `originator_city` string
        - `originator_country` string — Required if the requesting correspondent qualifies as a financial institution
        - `originator_full_name` string — Required if the requesting correspondent qualifies as a financial institution
        - `originator_postal_code` string
        - `originator_state` string
        - `originator_street_address` string
        - `other_identifying_information` string — Used to facilitate transfer lookup in the event it is required. Recommended to be the originating bank's reference number for the transfer
      - `currency` string — Currency denomination of the journal. USD by default.
      - `description` string
      - `price` string — The price of the security journaled
      - `qty` string — The quantity of the securities journaled
      - `symbol` string — The symbol of the security journaled
      - `system_date` string — Date string in "%Y-%m-%d" format
      - `error_message` string, required — Description of why this journal transaction failed
    - object — A Journal object with an extra attribute error_message in the case when a specific account fails to receive a journal.
      - `created_at` string, date-time
      - `entry_type` 'JNLC' | 'JNLS', required — JNLC
      - `from_account` string, uuid, required — account ID the shares go from
      - `id` string, uuid, required — journal ID
      - `settle_date` string, date, nullable — Settlement date for the journal. Absent or `null` until the journal settles (for example, while `status` is `queued` or `pending`).
      - `status` 'pending' | 'canceled' | 'executed' | 'activity_created' | 'queued' | 'rejected' | 'deleted' | 'refused' | 'sent_to_clearing' | 'correct' — Represents the status that a Journal instance can be in. **Current Values** queued Journal in queue to be processed. Journal is not processed yet. sent_to_clearing Journal sent to be processed by Alpaca's booking system. The journal is not processed yet. pending Journal pending to be processed as it requires manual approval from Alpaca operations (for example due to hitting JNLC daily limits). executed Journal executed and balances updated for both sides of the journal transaction. This is not a final status, journals can be reversed if there is an error. activity_created Non-trade activity has been created for journal (JNLC v2-only). rejected Journal rejected. Please try again. canceled Journal canceled. This is a **FINAL** status. refused Journal refused. Please try again. deleted Journal deleted. This is a **FINAL** status. correct Journal is corrected. Previously executed journal is cancelled and a new journal is corrected amount is created. This is a **FINAL** status.
      - `to_account` string, uuid, required — account ID the shares go to
      - `transmitter_info` TransmitterInfo — Information about the transmitter to satisfy travel rule requirements. Required if the requesting correspondent qualifies as a financial institution
        - `originator_bank_account_number` string — Required if the requesting correspondent qualifies as a financial institution
        - `originator_bank_name` string — Required if the requesting correspondent qualifies as a financial institution
        - `originator_city` string
        - `originator_country` string — Required if the requesting correspondent qualifies as a financial institution
        - `originator_full_name` string — Required if the requesting correspondent qualifies as a financial institution
        - `originator_postal_code` string
        - `originator_state` string
        - `originator_street_address` string
        - `other_identifying_information` string — Used to facilitate transfer lookup in the event it is required. Recommended to be the originating bank's reference number for the transfer
      - `currency` string — Currency denomination of the journal. USD by default.
      - `description` string — ID the amount goes to. Only valid for JNLC journals. Null for JNLS.
      - `net_amount` string, decimal, required — Only valid for JNLC journals. Null for JNLS.
      - `transmitter_account_number` string — Only valid for JNLC journals. Null for JNLS.max 255 characters
      - `transmitter_address` string — Only valid for JNLC journals. Null for JNLS.max 255 characters
      - `transmitter_financial_institution` string — Only valid for JNLC journals. Null for JNLS.max 255 characters
      - `transmitter_name` string — Only valid for JNLC journals. Null for JNLS. Max 255 characters.
      - `transmitter_timestamp` string, date-time — Only valid for JNLC journals. Null for JNLS.
      - `error_message` string, required — Description of why this journal transaction failed

## Other responses

- `400` — Invalid Request Body
- `403` — Insufficient Balance (JNLC) or Insufficient Assets (JNLS)
- `404` — Account not found

---

[API](https://skmtc.net/alpacahq/apis/gift-city-extensions-api.md) · [All operations](https://skmtc.net/alpacahq/apis/gift-city-extensions-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/alpacahq/gift-city-extensions-api/revisions/62e3378bb273/schema)
