A multi-leg transaction (MLT) schedule is used to automatically execute multi-leg transactions at a future date and time. You can use an MLT schedule to execute a one-time transaction or a series of recurring transactions.
The MLT Schedule object represents information for an MLT schedule. This includes information for the schedule (such as the ID, name, start date, recurrence rule, and status) and the transaction(s) that will be created by the schedule (such as the Financial Accounts, currency, and transaction amount).
createdBy
object
Entity that created the MLT schedule.
id
string (UUID)
ID of the entity. Will be blank if createdBy.type is internal.
type
string enum, values: employee, internal, kor_employee, service-account
Type of entity. The following values are supported:
createdAt
string (date-time), format: yyyy-MM-dd’T’HH:mm:ss.SSSz
Date and time the MLT schedule was created.
updatedBy
object
Entity that last updated the MLT schedule.
id
string (UUID)
ID of the entity. Will be blank if updatedBy.type is internal.
type
string enum, values: employee, internal, kor_employee, service-account
Type of entity. The following values are supported:
updatedAt
string (date-time), format: yyyy-MM-dd’T’HH:mm:ss.SSSz
Date and time the MLT schedule was last updated.
startDateTime
string, pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])(\.[0-9]{1,6})?$
Date and time to initiate the MLT schedule. Must be provided in the following ISO 8601 format without the time zone designator:
year-month-dayThours:minutes:seconds[.fractions-of-second]
where:
Example: 2023‐08‐31T15:53:00.123
The date will be interpreted using the timeZone parameter, and UTC format will be used if timeZone is not provided.
For recurring transactions, this is the date and time when the recurrenceRule will take effect. For example, let’s say a request has the following parameters:
"startDateTime": "2023-08-31T12:00:00",
"recurrenceRule: "FREQ=WEEKLY;BYDAY=MO"
In this example, the start date is on a Thursday and the recurrence rule is weekly executions each Monday. Therefore the first transaction will be created on Monday, September 4th, at 12:00 pm in the specified time zone.
timeZone
string
Time zone for startDateTime. The following values are supported:
calendarType
string enum, values: BANKING, DEFAULT
Type of calendar to use for the MLT schedule.
recurrenceRule
string
Rule used to schedule transactions on a recurring basis. Must be specified using the IETF iCalendar RFC 5545 RRULE property.
For example, let’s say a request has the following parameters:
"timeZone": "America/New_York",
"startDateTime": "1997-09-02T09:00:00",
"recurrenceRule": "FREQ=DAILY;UNTIL=19971224T000000"
This request will create transactions at the following times:
September 2, 1997 to October 25, 1997 (inclusive) at 9:00 AM EDT
October 26, 1997 to December 23, 1997 (inclusive) at 9:00 AM EST
name
string, max length: 60
Name of the MLT schedule. Required if recurrenceRule is provided.
originatingChannel
string enum, values: EXTERNAL, INTERNAL, PORTAL
Channel used to create the MLT schedule. Possible values are:
status
string enum, values: SCHEDULED, ACTIVE, SUSPENDED, DELETED, FINISHED
Status of the MLT schedule.
id
string (UUID)
ID of the MLT schedule.
schedulerId
string (UUID)
ID of the scheduling system for the MLT schedule.
maskedDebitAccountNumber
string
Masked account number of the debit Financial Account. This account is used in the MLT funding leg.
maskedCreditAccountNumber
string
Masked account number of the credit Financial Account. This account is used in the MLT disbursement leg.
multiLegSpec
object
Details for the debit and credit transactions created by the MLT schedule.
currency
string
Currency for the debit (funding leg ) and credit (disbursement leg) transactions. Must be an ISO 4217 alpha 3-character currency code.
totalAmount
string (decimal)
Total amount of all transactions defined in the MLT.
metadata
string, max items: 6, value max length: 1024
Key/value pairs used to store additional information with the MLT.
name
string, max length: 60
Descriptive name for the MLT.
description
string
Description of the MLT.
memo
string
Brief note about the MLT.
initiatorAccountHolderId
string (UUID)
ID of the RocketKOR account that initiated the MLT. This can be a Business Account or a Customer Account.
id
string (UUID)
ID of the MLT.
businessAccountId
string (UUID)
ID of the Business Account that contains the debit and credit Financial Accounts for the MLT.
stage
string enum, values: FUNDING, DISBURSING, CANCELLING
Current stage of the MLT. The following values are supported:
status
string enum, values: PENDING, PROCESSING, FAILED, CANCELLED, COMPLETE
Current status of the MLT. The following values are supported:
debitAmountPending
string (decimal)
Total amount of debit (funding leg) transactions that have not yet been completed.
debitAmountCleared
string (decimal)
Total amount of debit (funding leg) transactions that have been cleared.
creditAmountPending
string (decimal)
Total amount of credit (disbursement leg) transactions that have not yet been completed.
creditAmountSettled
string (decimal)
Total amount of credit (disbursement leg) transactions that have been settled.
debits
array
Debit transaction for the MLT funding leg. This transaction is used to obtain funds from the debit Financial Account.
sequence
integer
Sequence number. Indicates the transaction’s position in the debits array.
financialAccountId
string (UUID)
ID of the Financial Account used as the debit account (source of funds) for the transaction.
maskedAccountNumber
string
Masked account number for the Financial Account (bank account number or card number).
paymentReasonId
string
ID representing the payment reason for the transaction. For the MLT debit transaction, paymentReasonId uses a fixed value of funds_transfer.
amount
string (decimal)
Transaction amount. The amount must conform to any transaction limits.
amountPercentage
string (decimal)
Percentage of the debit Financial Account balance to use as the transaction amount. The amount must conform to any transaction limits.
settlementPriority
string enum, values: IMMEDIATE, SAME_DAY, NEXT_DAY, SCHEDULED
Expected priority for settling the transaction. The following values are supported:
This parameter is configurable for some RocketKOR solutions, such as ACH and Wire.
Notes:
transactionId
string (UUID)
ID of the debit transaction.
solution
string
Name of the RocketKOR solution used for the transaction. MLT debit transactions currently use the ACH solution.
latestStatus
object
Current status of the transaction.
status
string enum, values: NEW, PENDING, PROCESSING, APPROVED, SETTLED, CLEARED, CANCELLED, DECLINED, REVERSED, ERROR
Transaction status. The following values are supported:
message
string
Description of the status change.
createdBy
object
Entity that created the transaction status.
id
string (UUID)
ID of the entity. Will be blank if createdBy.type is internal.
type
string enum, values: employee, internal, kor_employee, service-account
Type of entity. The following values are supported:
createdAt
string (date-time), format: yyyy-MM-dd’T’HH:mm:ss.SSSz
Date and time the status was assigned to the transaction.
_embedded
object
Embedded subresources for the debit transaction. Includes details for the Financial Account and account holder.
financialAccount
object
Details for the Financial Account used in the transaction.
name
string, min length: 1, max length: 100
Name for the Financial Account. This is an informal name used for the account in RocketKOR.
category
string enum, values: EXTERNAL, INTEGRATED, INTERNAL
Financial Account category. The following values are supported:
accountHolderType
string enum, values: CUSTOMER
Type of entity that owns the Financial Account. Returned if the account holder is a Customer. Omitted if the account holder is a Business Account.
type
string enum, values: BANK, CARD
Type of Financial Account. The following values are supported:
subtype
string enum; values for BANK Financial Accounts: CHECKING, SAVING; values for CARD Financial Accounts: CREDIT, DEBIT, PREPAID
Financial Account subtype.
bankAccount
object
Returned if a bank account is attached to the Financial Account. Note that either the bankAccount or card object is returned.
bankName
string
Name of the financial institution.
nameOnAccount
string, min length: 1, max length: 40
Name of the bank account owner.
card
object
Returned if a card is attached to the Financial Account. Note that either the bankAccount or card object is returned.
firstName
string, min length: 1, max length: 40
Customer’s first name as it appears on the card.
middleName
string, min length: 1, max length: 40
Customer’s middle name as it appears on the card.
lastName
string, min length: 1, max length: 40
Customer’s last name as it appears on the card.
maskedAccountNumber
string
Masked account number for the Financial Account (bank account number or card number).
accountHolderId
string (UUID)
ID of the entity that owns the Financial Account. Returned if the account holder is a Customer. This field is not returned if the account holder is a Business Account.
credits
array
Credit transaction for the MLT disbursement leg. This transaction is used to disburse funds to the credit Financial Account.
sequence
integer
Sequence number. Indicates the transaction’s position in the credits array.
financialAccountId
string (UUID)
ID of the Financial Account used as the credit account (receiver of funds) for the transaction.
maskedAccountNumber
string
Masked account number for the Financial Account (bank account number or card number).
paymentReasonId
string
ID representing the payment reason for the transaction. Use the Payment Reasons API to retrieve a list of available IDs.
amount
string (decimal)
Transaction amount. The amount must conform to any transaction limits.
amountPercentage
string (decimal)
Percentage of the debit Financial Account balance to use as the transaction amount. The amount must conform to any transaction limits.
settlementPriority
string enum, values: IMMEDIATE, SAME_DAY, NEXT_DAY, SCHEDULED
Expected priority for settling the transaction. The following values are supported:
This parameter is configurable for some RocketKOR solutions, such as ACH and Wire.
Notes:
transactionId
string (UUID)
ID of the credit transaction.
solution
string
Name of the RocketKOR solution used for the transaction.
latestStatus
object
Current status of the transaction.
status
string enum, values: NEW, PENDING, PROCESSING, APPROVED, SETTLED, CLEARED, CANCELLED, DECLINED, REVERSED, ERROR
Transaction status. The following values are supported:
message
string
Description of the status change.
createdBy
object
Entity that created the transaction status.
id
string (UUID)
ID of the entity. Will be blank if createdBy.type is internal.
type
string enum, values: employee, internal, kor_employee, service-account
Type of entity. The following values are supported:
createdAt
string (date-time), format: yyyy-MM-dd’T’HH:mm:ss.SSSz
Date and time the status was assigned to the transaction.
_embedded
object
Embedded subresources for the credit transaction. Includes details for the Financial Account and account holder.
financialAccount
object
Details for the Financial Account used in the transaction.
name
string, min length: 1, max length: 100
Name for the Financial Account. This is an informal name used for the account in RocketKOR.
category
string enum, values: EXTERNAL, INTEGRATED, INTERNAL
Financial Account category. The following values are supported:
accountHolderType
string enum, values: CUSTOMER, RECIPIENT
Type of entity that owns the Financial Account. Returned if the account holder is a Customer or Recipient. Omitted if the account holder is a Business Account.
type
string enum, values: BANK, CARD
Type of Financial Account. The following values are supported:
subtype
string enum; values for BANK Financial Accounts: CHECKING, SAVING; values for CARD Financial Accounts: CREDIT, DEBIT, PREPAID
Financial Account subtype.
bankAccount
object
Returned if a bank account is attached to the Financial Account. Note that either the bankAccount or card object is returned.
bankName
string
Name of the financial institution.
nameOnAccount
string, min length: 1, max length: 40
Name of the bank account owner.
card
object
Returned if a card is attached to the Financial Account. Note that either the bankAccount or card object is returned.
firstName
string, min length: 1, max length: 40
First name of the Customer or Recipient, as it appears on the card.
middleName
string, min length: 1, max length: 40
Middle name of the Customer or Recipient, as it appears on the card.
lastName
string, min length: 1, max length: 40
Last name of the Customer or Recipient, as it appears on the card.
maskedAccountNumber
string
Masked account number for the Financial Account (bank account number or card number).
accountHolderId
string (UUID)
ID of the entity that owns the Financial Account. Returned if the account holder is a Customer or Recipient. This field is not returned if the account holder is a Business Account.
createdBy
object
Entity that created the MLT.
id
string (UUID)
ID of the entity. Will be blank if createdBy.type is internal.
type
string enum, values: employee, internal, kor_employee, service-account
Type of entity. The following values are supported:
createdAt
string (date-time), format: yyyy-MM-dd’T’HH:mm:ss.SSSz
Date and time the MLT was created in the RocketKOR system.
updatedBy
object
Entity that last updated the MLT.
id
string (UUID)
ID of the entity. Will be blank if updatedBy.type is internal.
type
string enum, values: employee, internal, kor_employee, service-account
Type of entity. The following values are supported:
updatedAt
string (date-time), format: yyyy-MM-dd’T’HH:mm:ss.SSSz
Date and time the MLT was last updated.
version
integer
Current version of MLT.
parentId
string (UUID)
ID of the schedule that created the MLT.
MLT Schedule Object
{
"createdBy": {
"id": "string(UUID)",
"type": "employee | internal | kor_employee | service-account"
},
"createdAt": "string(date-time)",
"updatedBy": {
"id": "string(UUID)",
"type": "employee | internal | kor_employee | service-account"
},
"updatedAt": "string(date-time)",
"startDateTime": "string(date-time)",
"timeZone": "string",
"calendarType": "BANKING | DEFAULT",
"recurrenceRule": "string",
"name": "string",
"originatingChannel": "EXTERNAL | INTERNAL | PORTAL",
"status": "SCHEDULED | ACTIVE | SUSPENDED | DELETED | FINISHED",
"id": "string(UUID)",
"schedulerId": "string(UUID)",
"maskedDebitAccountNumber": "string",
"maskedCreditAccountNumber": "string",
"multiLegSpec": {
"currency": "string",
"totalAmount": "string(decimal)",
"metadata": {
"key": "value"
},
"name": "string",
"description": "string",
"memo": "string",
"initiatorAccountHolderId": "string(UUID)",
"id": "string(UUID)",
"businessAccountId": "string(UUID)",
"stage": "FUNDING | DISBURSING | CANCELLING",
"status": "PENDING | PROCESSING | FAILED | CANCELLED | COMPLETE",
"debitAmountPending": "string(decimal)",
"debitAmountCleared": "string(decimal)",
"creditAmountPending": "string(decimal)",
"creditAmountSettled": "string(decimal)",
"debits": [
{
"sequence": integer,
"financialAccountId": "string(UUID)",
"maskedAccountNumber": "string",
"paymentReasonId": "string",
"amount": "string(decimal)", // amount or amountPercentage is returned
"amountPercentage": "string(decimal)", // amount or amountPercentage is returned
"settlementPriority": "IMMEDIATE | SAME_DAY | NEXT_DAY | SCHEDULED",
"transactionId": "string(UUID)",
"solution": "string",
"latestStatus": {
"status": "NEW | PENDING | PROCESSING | APPROVED | SETTLED | CLEARED | CANCELLED | DECLINED | REVERSED | ERROR",
"message": "string(date-time)",
"createdBy": {
"id": "string(UUID)",
"type": "employee | internal | kor_employee | service-account"
},
"createdAt": "string(date-time)"
},
"_embedded": {
"financialAccount": {
"name": "string",
"category": "EXTERNAL | INTEGRATED | INTERNAL",
"accountHolderType": "CUSTOMER", // omitted if the account holder is a Business Account
"type": "BANK | CARD",
"subtype": "CHECKING | SAVING | CREDIT | DEBIT | PREPAID",
"bankAccount": { // bankAccount or card is returned
"bankName": "string",
"nameOnAccount": "string"
},
"card": { // bankAccount or card is returned
"firstName": "string",
"middleName": "string",
"lastName": "string"
},
"maskedAccountNumber": "string"
},
"accountHolderId": "string(UUID)" // omitted if the account holder is a Business Account
}
}
],
"credits": [
{
"sequence": integer,
"financialAccountId": "string(UUID)",
"maskedAccountNumber": "string",
"paymentReasonId": "string",
"amount": "string(decimal)", // amount or amountPercentage is returned
"amountPercentage": "string(decimal)", // amount or amountPercentage is returned
"settlementPriority": "IMMEDIATE | SAME_DAY | NEXT_DAY | SCHEDULED",
"transactionId": "string(UUID)",
"solution": "string",
"latestStatus": {
"status": "NEW | PENDING | PROCESSING | APPROVED | SETTLED | CLEARED | CANCELLED | DECLINED | REVERSED | ERROR",
"message": "string(date-time)",
"createdBy": {
"id": "string(UUID)",
"type": "employee | internal | kor_employee | service-account"
},
"createdAt": "string(date-time)"
},
"_embedded": {
"financialAccount": {
"name": "string",
"category": "EXTERNAL | INTEGRATED | INTERNAL",
"accountHolderType": "CUSTOMER | RECIPIENT", // omitted if the account holder is a Business Account
"type": "BANK | CARD",
"subtype": "CHECKING | SAVING | CREDIT | DEBIT | PREPAID",
"bankAccount": { // bankAccount or card is returned
"bankName": "string",
"nameOnAccount": "string"
},
"card": { // bankAccount or card is returned
"firstName": "string",
"middleName": "string",
"lastName": "string"
},
"maskedAccountNumber": "string"
},
"accountHolderId": "string(UUID)" // omitted if the account holder is a Business Account
}
}
],
"createdBy": {
"id": "string(UUID)",
"type": "employee | internal | kor_employee | service-account"
},
"createdAt": "string(date-time)",
"updatedBy": {
"id": "string(UUID)",
"type": "employee | internal | kor_employee | service-account"
},
"updatedAt": "string(date-time)",
"version": integer,
"parentId": "string(UUID)"
}
}
Step into the future of Finance with RocketKOR! Simplify payments, banking, lending, and data analytics using our versatile KOR Platform.
A Rocket Financial Inc. company
@ 2024 RocketKOR, Inc. All rights reserved.