Skip to main content
An originator is the company name and ACH company ID your program sends ACH as. Both go in the batch header of every entry sent under it. The originator also sets the SEC codes it can use, the entities it can originate for, and the amount limits on its activity. Every outgoing entry settles to the originator’s core balance. Lead sets up one originator for your program at onboarding. Some programs originate ACH under more than one company ID, for example for third-party sending. In that case you create the extra originators with the Originators API. Ask Lead for access.

How an originator takes effect

An originator does nothing on its own. It takes effect through the account numbers that send ACH under it. After an originator is active, set ach_controls.originator_id on each sending account number. Outgoing entries from those account numbers then include the originator’s company_id and company_name, subject to its allowed_sec_codes and limits. An originator settles to exactly one core balance, named by core_balance_id. An account number can send under an originator only if the account number’s balance is that same core balance.

How originators relate to the rest of the model

An originator connects to these objects:
  • Core balance. core_balance_id is the core balance outgoing entries settle to. It must be active and on a direct core account. See Core Balances.
  • Entity. entity_id is the entity whose identity the originator represents. It must be an account holder or allowed actor on the account behind the core balance. See Entity.
  • Account numbers. An account number names its originator in ach_controls.originator_id. See Payment controls.
  • ACH. Entries sent under the originator show its company_name and company_id in record_details. See The ACH Object.

What you can do

You can use these endpoints:
  • POST /v2/originators: Create an originator. Requires an Idempotency-Key header. The originator starts in pending.
  • GET /v2/originators/{originator_id}: Retrieve an originator.
  • GET /v2/originators: List originators on a core balance. The core_balance_id filter is required.
  • PATCH /v2/originators/{originator_id}: Update company_name, the ach block, or metadata.
  • POST /v2/originators/{originator_id}/activate: Return an inactive originator to active.
  • POST /v2/originators/{originator_id}/deactivate: Move an active originator to inactive.
  • POST /v2/originators/{originator_id}/cancel: Permanently cancel an originator.
The activate, deactivate, and cancel endpoints take no request body but require an Idempotency-Key. See Idempotency.

What you can’t do

These actions aren’t available:
  • Originate under a pending, inactive, rejected, suspended, or canceled originator. Only an active originator sends. See Originator Statuses.
  • Set your own company_id. Lead assigns it.
  • Use an FBO, a shadow account, or a balance you can’t read as an originator’s core balance. The request returns 422 or 404.
  • Link an account number to an originator on a different balance. The account number update returns 422.
  • Change core_balance_id or entity_id after creation. Cancel the originator and create a new one.
  • Reference an account_id. It isn’t accepted on requests, returned on responses, or available as a filter.

In this section

These are the pages in this section: