Payment Orders

A payment_order is an instruction to move money to or from your bank account via payment types such as ACH, wire, RTP, and check. When a new payment order is created on Modern Treasury, we communicate with your bank to move the amount of money you specified.

Related Guides:

Attribute

Description

id
string

Unique identifier for the payment order

type
string

One of ach, eft, wire, check, sen, book, rtp, sepa, bacs, au_becs, interac, signet, provexchange.

subtype
string

An additional layer of classification for the type of payment order you are doing. This field 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.

amount
int32

Value in specified currency's smallest unit. e.g. $10 would be represented as 1000.

For RTP, the maximum amount allowed by the network is $100,000

direction
string

One of credit, debit

Describes the direction money is flowing in the transaction. A credit moves money from your account to someone else's. A debit pulls money from someone else's account to your own.

Note that wire, rtp, and check payments will always be credit.

status
string

The current status of the payment order. See the webhooks section for more on the different statuses.

priority
string

Either normal or high. For ACH and EFT payments, high represents a same-day ACH or EFT transfer, respectively. For check payments, high can mean an overnight check rather than standard mail.

originating_account_id
string

The ID of one of your organization's internal accounts

receiving_account_id
string

The receiving account ID. Can be an external account or internal account

receiving_account_type
string

The receiving account type. Can be one of external_account or internal_account.

ledger_transaction_id
string

The ID of the ledger transaction linked to the payment order. See Linking to other Modern Treasury objects.

accounting_category_id
string

The ID of one of your accounting categories. Note that these will only be accessible if your accounting system has been connected.

accounting_ledger_class_id
string

The ID of one of your accounting ledger classes. Note that these will only be accessible if your accounting system has been connected.

currency
string

Must conform to ISO 4217. Defaults to the currency of the originating account.

effective_date
date

Date transactions are to be posted to the participants’ account. Defaults to the current business day or the next business day if the current day is a bank holiday or weekend.

Format: yyyy-mm-dd

description
string

An optional description for internal use.

statement_descriptor
string

An optional descriptor which will appear in the receiver's statement. For check payments this field will be used as the memo line. For ach the maximum length is 10 characters. Note that for ACH payments, the name on your bank account will be included automatically by the bank, so you can use the characters for other useful information. For eft the maximum length is 15 characters.

remittance_information
string

For ach, this field will be passed through on an addenda record. For wire payments the field will be passed through as the "Originator to Beneficiary Information", also known as OBI or Fedwire tag 6000.

purpose
string

For wire, this is usually the purpose which is transmitted via the "InstrForDbtrAgt" field in the ISO20022 file. If you are using Currencycloud, this is the payment.purpose_code field.
For eft, this field is the 3 digit CPA Code that will be attached to the payment.

metadata
object

Additional data represented as key-value pairs. Both the key and value must be strings. See Metadata.

counterparty_id
string

If the payment order is tied to a specific Counterparty, their id will appear, otherwise null.

transaction_ids
array

The IDs of all the transactions associated to this payment order. Usually, you will only have a single transaction ID. However, if a payment order initially results in a Return, but gets redrafted and is later successfully completed, it can have many transactions.

current_return
object

If the payment order's status is returned, this will include the return object's data.

charge_bearer
string

The party that will pay the fees for the payment order. Only applies to wire payment orders. Can be one of shared, sender, or receiver, which correspond respectively with the SWIFT 71A values SHA, OUR, BEN.

foreign_exchange_indicator
string

Indicates the type of FX transfer to initiate, can be either variable_to_fixed, fixed_to_variable, or null if the payment order currency matches the originating account currency.

foreign_exchange_contract
string

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

originating_party_name
string

If present, this will replace your default company name on receiver's bank statement. This field can only be used for ACH payments currently.
For ACH, only the first 16 characters of this string will be used. Any additional characters will be truncated.

transaction_monitoring_enabled
boolean

A boolean that indicates whether Transaction Monitoring is enabled for this Payment Order. Note that you must have purchased Compliance to use this feature.

decision_id
string

If Transaction Monitoring is enabled and this payment order is tied to a specific Decision, the id will appear, otherwise null.

ultimate_originating_party_name
string

Name of the ultimate originator of the payment order.

ultimate_originating_party_identifier
string

Identifier of the ultimate originator of the payment order.

ultimate_receiving_party_name
string

Name of the ultimate funds recipient.

ultimate_receiving_party_identifier
string

Identifier of the ultimate funds recipient.

live_mode
boolean

This field will be true if this object was created with a production API key or false if created with a test API key.

nsf_protected
boolean

A boolean to determine if NSF Protection is enabled for this payment order. Note that this setting must also be turned on in your organization settings page.

reference_numbers
array

An array of Payment Reference objects.

vendor_failure_reason
string

This field will be populated if a vendor (e.g. Currencycloud) failure occurs. Logic shouldn't be built on its value as it is free-form.

send_remittance_advice
boolean

Send an email to the counterparty when the payment order is sent to the bank. If null, send_remittance_advice on the Counterparty is used.

{
  "id": "c5f4009c-bdd6-4cc1-84b2-17974ac9e77a",
  "type": "ach",
  "amount": 20000,
  "direction": "credit",
  "originating_account_id": "0f8e3719-3dfd-4613-9bbf-c0333781b59f",
  "receiving_account_id": "5acec2ef-987b-4260-aa97-b719eeb0a8d5",
  "receiving_account_type": "external_account",
  "accounting_category_id": "45ac4565-2302-41c9-962a-1a9d7e85db99",
  "accounting_ledger_class_id": "d59c3d5c-bcf9-4efb-8a0a-46a5f4394028",
  "currency": "USD",
  "effective_date": "2018-11-08",
  "priority": "normal",
  "description": "Repellendus deleniti atque quod.",
  "statement_descriptor": "Rerum del.",
  "remittance_information": "Accusamus tempore molestiae laboriosam.",
  "metadata": {},
  "status": "approved",
  "counterparty_id": "37ba4454-dd33-4aa0-8906-0e2e4103e45c",
  "send_remittance_advice": true,
  "transactions_ids": [],
  "current_return": null,
  "charge_bearer": null,
  "foreign_exchange_indicator": null,
  "foreign_exchange_contract": null,
  "subtype": null,
  "purpose": null,
  "nsf_protected": false,
  "originating_party_name": "Acme Company",
  "ultimate_originating_party_name": "Jane Doe",
  "ultimate_originating_party_identifier": "A1823N",
  "ultimate_receiving_party_name": "Jane Doe",
  "ultimate_receiving_party_identifier": "A1823N",
  "transaction_monitoring_enabled": false,
  "decision_id": null,
  "live_mode": true,
  "created_at": "2019-11-09T00:11:07Z",
  "updated_at": "2019-11-09T00:11:07Z"
}