Initiate a Credit Payment

Initiate a domestic or international credit payment (on-time or recurring). The v4 version of this API includes enhanced error handling, returning all relevant error messages and error codes to provide clearer insights into any issues encountered during processing.

SecurityoAuth2
Request
header Parameters
Idempotent-Key
string <uuid>

Optional idempotency key to ensure the payment is processed only once.

Example: 123e4567-e89b-12d3-a456-426614174000
Request Body schema: application/json
required

Credit Payment Request fields

externalReferenceId
required
string <= 50 characters ^(?!.*[!<>/]).*$

Unique reference ID assigned by the originator system. For Fedwire payments, this maps to Tag {3320}, which supports up to 16 characters.

paymentAmount
required
number <double>

Payment amount. The payment amount is validated as per the limits set by the payment rails or by the bank for the customer. For the Fedwire payment, this will be mapped to the {2000} tag.

Zero (0) is only allowed for ENR (Automated Enrollment Entry) payments. For all other payment types, the amount must be greater than zero.

⚠️ FX Trade Validation:

  • The drawdown feature is currently not supported via OpenAPI.
  • Therefore, when using FX Trade-based payments, the paymentAmount must exactly match the FX Trade amount.
  • If paymentAmount differs from the associated trade amount, the request will be rejected with the error code CREDIT_AMOUNT_NOFXMATCH.

Payment rail limits per transaction:

  • RTP: up to $1,000,000
  • FedNow: up to $500,000
  • Fedwire: up to $9,999,999,999.99
  • Same Day ACH: up to $1,000,000
paymentCurrency
required
string = 3 characters ^[a-zA-Z]+$

Receiver payment currency code as per ISO 4217 (e.g., USD, EUR). The currency must exist in the system.

  • For international payments, non-USD payment currency must match the receiver currency.
  • Payment currency must match either sender or receiver currency.
  • For FX trades, payment currency must match the trade currency.
paymentDate
string

Format: String with valid format as: MM-DD-YYYY

This is an optional field and signifies the date on which the Finzly system will settle the payment. If the paymentDate is not provided by the API user BankOS will derive it for the earliest available settlement date (not prior to the current business date), based on the configuration.

ACH Payments are typically settled two days after the current date.

The ACH, SWIFT, and Wire systems do not allow users to initiate payments on holidays or weekends.

Payment requests via API can be submitted using the following example guidelines:

Examples:

  1. For Payment speed = Express (Wires), if the payment is submitted/created today* before cut-off, it will be sent to beneficiary today itself.
  2. For Payment speed = Instant (FedNow, RTP), if the payment is submitted/created today before, it will be sent to beneficiary today itself.
  3. For Payment speed = Economy Plus, if the payment is submitted/created today before cut-off, it will be sent to beneficiary today itself.
  4. For Payment speed = Economy and if submitted/created for today before cut-off time, then the transaction shall have effective entry date of two days or one day after submission (T+2 or T+1) depending on your bank’s configuration. For Payment speed = Economy and if submitted on (12th Aug) for delivery date (on 16th Aug) before cut-off time, then the transaction shall be sent to beneficiary on 14th Aug assuming the configuration is two days prior to paymentDate.
  • today being business day
speed
required
string <= 20 characters ^[a-zA-Z]+( [a-zA-Z]+)*$

Specifies the delivery speed of the payment, which determines how quickly the funds will be delivered and the associated fee. Valid values are predefined and mapped to specific payment rails, as configured by the bank or financial institution.

Supported Speed Names and Rails (default configuration in FinzlyOS):

  • Economy: ACH (Regular)
  • Economy Plus: ACH (Same Day)
  • Express: Fedwire
  • Instant: FedNow or RTP
  • ON, TN, SPOT: SWIFT

Validation Rules:

  • If the provided speed value is not recognized or not configured for the given currency/payment type, the payment cannot proceed.
  • If the speed value is missing, invalid, or not supported for the contact or currency pair, payment initiation will fail.
paymentNotes
string [ 1 .. 140 ] characters

Notes added by the payment originator. These are passed to the payment network according to rail-specific limits:

  • ACH: up to 10 characters
  • Fedwire: up to 140 characters (Tag 6400 - Beneficiary Info)
  • SWIFT: up to 140 characters (Tag 70)
  • RTP/FedNow: up to 140 characters (ISO 20022 - RmtInf tag)

If the provided value exceeds the network limit, it will be automatically truncated.

required
Sender not in CRM (object) or Sender in CRM (object)

Payment sender and account details from which the money will be deducted.

Beneficiary not in CRM (object) or Beneficiary in CRM (object)

Contains the payment receiver’s personal and account details, where the funds will be deposited.

This field is required for all payment types except ENR payment (Automated Enrollment Entry).

object (CreditPaymentInstruction_fee)

Fee to be charged for the payment transaction. Currency is fixed to USD. This is an optional field.

Recurring Until End Date (object) or Recurring for a Number of Payments (object) (CreditPaymentInstruction_recurrence)

Set the payment recurrence based on the available options.

ACH-specific (object) or RTP-specific (object) or FEDNOW-specific (object) or FEDWIRE-specific (object) or SWIFT-specific (object)
Responses
200

search results matching criteria

400

bad input parameter environment

401

Unauthorized

403

Forbidden

404

Not Found

405

bad input parameter environment

500

Internal server error

503

Service unavailable

default

Payment response

post/v4/payments/credit
Request samples
application/json
{
  • "externalReferenceId": "pymtref10012 or 123e4567-e89b-12d3-a456-426614174000 etc.",
  • "paymentAmount": 175,
  • "paymentCurrency": "USD",
  • "paymentDate": "05-08-2024",
  • "speed": "Economy",
  • "paymentNotes": "Notes",
  • "sender": {
    },
  • "receiver": {
    },
  • "fee": {
    },
  • "recurrence": {
    },
  • "additionalInfo": {
    }
}
Response samples
application/json
{
  • "data": {
    },
  • "errors": [
    ]
}