Create Payment Orders in Bulk

Within Modern Treasury, you have the option to create individual Payment Orders or create Payment Orders in bulk with CSV uploads.

🚧

Case-sensitive values

Values are case-sensitive and should match the guidance shown below.

🚧

Record limit

You can upload a maximum of 1,000 Payment Orders with one CSV.

Create Payment Orders in bulk

  1. Login to Modern Treasury.

  2. Navigate to the Payment Orders page.

  3. From the Create New dropdown menu, select Bulk Payment Order to go to the bulk import page.

    • From here, you can click the Download Template CSV button to obtain a template CSV that includes all possible header fields. See the "Bulk Counterparty CSV Guidance" section in this guide for more information about each column.
  4. If you have a file ready, click Import Payment Orders to open the import modal.

  5. Click Upload file in the modal and select the CSV you wish to upload.

  6. Once uploaded, the tool maps your columns to the accepted fields needed to create the Payment Orders. Verify the mapped columns and click Continue.

  7. The tool will identify any cells that need to be reviewed by highlighting them in red. Make your edits as necessary.

  8. Once you are ready to submit, click on the Submit uploaded data button in the top right.

    1. If there are no errors, you will see a success modal. Click on View Bulk Import to open a new tab to the resulting bulk import.

    2. If there are data errors, you will see a submission failure message:

      The tool will highlight any cells with remaining errors in red along with an error message. Make your corrections and re-attempt the upload as necessary.

Bulk Payment Order CSV Guidance

Payment Order Attributes

Attribute

Required

Data Type

Description

originating_account_id

Yes

string

The ID of one of your organization's originating accounts.

This attribute can be located underneath the on the Payment Order upload screen. Your internal account will always be the originating account.

type

Yes

string

Designates the payment type you would like to request for the payment orders (e.g. ach, wire, book, etc). Case sensitive.

subtype

No

string

An additional layer of classification for the type of payment order you are doing. This attribute is only used for ach payment orders currently.

For ach payment orders, the subtype represents the SEC code. We currently support CCD, PPD, IAT, CTX, WEB, CIE, and TEL.

When Modern Treasury initiates an ACH payment on your behalf, the SEC Code is set automatically. When the receiving account's party_type is individual, the PPD code is used. When party_type is business or isn't set, CCD is used.

priority

No Default: normal

string

high priority is only available for ach, eft, and check payment types. For ACH and EFT payments, high represents a same-day transfer. For check payments, high can mean an overnight check rather than standard mail. For all other payment types, high priority payments are treated the same as normal priority payments.

process_after

No

string

  • Format*: ISO 8601 timestamp

If present, Modern Treasury will not process the payment until after this time. If process_after is past the cutoff for effective_date, process_after will take precedence and effective_date will automatically update to reflect the earliest possible sending date after process_after.

purpose

No

string

This attribute means different things depending on the payment type:

For wire, this is usually the purpose which is transmitted via the InstrForDbtrAgt attribute in the ISO20022 file.

For CurrencyCloud, this is the payment.purpose_code attribute.

For eft, this attribute is the 3 digit CPA Code that will be attached to the payment.

amount

Yes or dollar_amount

integer

  • *Format: **cents

This attribute needs to be filled in if you want to designate the value in cents. Examples:

10 = $0.10 1000 = $10.00 1234 = $12.34

If you use this attribute, do not use the dollar_amount attribute.

dollar_amount

Yes or amount

float(2)
  • Format:* dollars without symbol

This attribute needs to be filled in if you want to designate the value in cents. Examples:

10 = $0.10 10.00 = $10.00 1234 = $12.34

If you use this attribute, do not use the amount attribute.

direction

Yes

string

A credit moves money from your account to someone else's. A debit pulls money from someone else's account to your own. Case sensitive.

  • Note:* wire and check payment types will always be credit.

effective_date

No

string

  • *Format: **YYYY-MM-DD

The effective date is the date transactions are to be posted to the counterparty's account. If you wish to future date a payment order, you will want to fill in this attribute. If this attribute is not filled, it will default to the next business date.

description

No

string

This attribute is solely for internal use anything included within this attribute will not be visible to the Counterparty.

statement_descriptor

No

string

The bank statement description should be used for your Counterparties to see more detail within their bank statement. This oftentimes defaults to including your company name, but there is room to include at least 10 more characters.

remittance_information

No

string

Remittance information is typically another attribute that can be utilized to describe the money that is being sent. For ACH, this field will be passed through on an addenda record and can include up to 80 characters.

If this field is left blank then an addenda record would not be created.

For wire payments the field will be passed through as the Originator to Beneficiary Informationand can include up to 140 characters.

metadata

No

string

Additional data represented as key-value pairs separated by a | (pipe character).

Note: do not include special characters, outside of : and |

charge_bearer

No

string

The party that will pay the fees for the payment order. Only applies to wire payment orders.

The values correspond to the SWIFT 71A values as follows:

Shared: SHA (SHAred) Sender: OUR Receiver: BEN (BENeficiary)

foreign_exchange_contract

No

string

If present, indicates a specific foreign exchange contract number that has been generated by your financial institution.

foreign_exchange_indicator

No

string

Indicates the type of FX transfer to initiate if the payment order currency matches the originating account currency.

Counterparty Attributes

The following attributes referring to counterparties will be dependent on whether a counterparty has or has not already been created within Modern Treasury.

If the Counterparty exists in Modern Treasury

AttributeRequiredData TypeDescription
counterparty_account_idYesstringSupports both Internal Accounts and External Accounts.

If the Counterparty does not exist in Modern Treasury

Attribute

Required

Data Type

Description

counterparty_name

Yes

string

Supports both Internal Accounts and External Accounts.

counterparty_routing_number

Yes

string

Routing number of the counterparty.

counterparty_routing_type

Yes

string

Either aba, swift or ca_cpa. Case sensitive.

counterparty_account_number

Yes

integer

Account number of the counterparty.

counterparty_account_number_type

No if domestic Payment Order

string

Supports iban and clabe. Otherwise null if the bank account number is in a generic format. Case sensitive.

counterparty_account_type

No

string

Can be checking, savings or other.

counterparty_party_type

No

string

Either individual or business.

counterparty_address_line_1

No

string

Street address of the Counterparty.

Required for Wire Payment Orders.

counterparty_address_line_2

No

string

Street address extended of the Counterparty.

Required for Wire Payment Orders.

counterparty_address_locality

No

string

City of the Counterparty.

Required for Wire Payment Orders.

counterparty_address_region

No

string

State of the Counterparty.

Required for Wire Payment Orders.

counterparty_address_postal_code

No

string

Postal/region code of the Counterparty.

Required for Wire Payment Orders.

counterparty_address_country

No

string

Country of the Counterparty.

Required for Wire Payment Orders.

Continuous Accounting Attributes

Attribute

Required

Data Type

Description

accounting_class_id

No

string

These IDs can be found in your organization settings page. You should only use accounting_class_id or accounting_class_name (not both).

accounting_class_name

No

string

These names can be found in your organization settings page. You should only use accounting_class_id or accounting_class_name (not both).

accounting_account_id

No

string

These IDs can be found in your organization settings page. You should only use accounting_account_id or accounting_account_name (not both).

accounting_account_name

No

string

These names can be found in your organization settings page. You should only use accounting_account_id or accounting_account_name (not both).