Payment transactions
What is a transaction
In Cross River COS, a transaction is the action of funds being deposited into or withdrawn from a bank account. If funds are transferred between two Cross River accounts, a transaction in COS always involves a debit of one account and a credit of another account, completed as a single simple operation. A completed transaction may be referred to as posted, cleared or settled.
Transaction completed webhook event
Cross River COS ensures you know when the funds are debited or credited using the Core.Transaction.Completed webhook. The exact timing of when the webhook event is triggered depends on the payment rail and other factors.
For outbound payments, the Core.Transaction.Completed webhook event fires as soon as the transaction posts to the account, and regardless of whether the payment has already arrived successfully at the receiver's account or not.
Instant payments
As seen in the Instant Payments outbound flow, the Core.Transaction.Completed webhook event fires at the end of the flow, together with the Instant Payments Rtp.Payment.Sent webhook event. Because Instant Payments happen almost immediately, payment sent and transaction completed happen more or less together when the payment settles.
International payments
The Core.Transaction.Completed webhook event fires at the end of the flow, together with the International Payments International.Payment.Returned webhook event. The transaction completed and payment returned happen more or less together when the payment settles.
ACH
In ACH, settlement happens at different times in the flow, depending on several factors.
- Direction: is it an inbound or outbound payment?
- Transaction Type: is it a push (credit) or pull (debit)?
- Payment Type: is it an origination, return, or notification of change (NOC)?
- Effective Date: is it dated for today or sometime in the future?
- Contractual Cutoff Time: was the outbound payment request received by CRB before the cutoff time?
There is a single scenario where an outbound payment will not settle on your account the same day it is originated. This occurs when:
- The payment transactionType is Pull, and
- The serviceType is SameDay, and
- The effectiveDate of the payment is equal to the current date, and
- The payment is released to the Fed after 4:45pm
"Individual" posting type
When your configuration with Cross River causes COS to treat each ACH transaction you send as an individual payment, the response to the payment API includes the postingType Individual. In this case, settlement always happens after the payment is acknowledged by Fed. The Core.Transaction.Completed webhook event is triggered when the payment settles in the Cross River account.
"Aggregate" posting type
When you send multiple ACH payments, your configuration may cause the system to transact many payments sent from the same originating account payments as a single sum. The response to a payment call includes the postingType Aggregate.
Payments are aggregated with similar payments. All payments in an aggregate settle together as a single amount. SameDay and Standard payments are aggregated in two separate groups, and pull payments are aggregated separately from push payments.
In general, aggregated push payments settle when the payments are batched for sending to the Fed, not after they are sent and acknowledged. The Core.Transaction.Completed webhook event is triggered at that point in the flow.
Aggregated pull payments settle like individual pull payments and the Core.Transaction.Completed webhook event is triggered when the payment is acknowledged by the Fed or just after.
Wires
As seen in the Wires payment flow, in outbound payments, the Core.Transaction.Completed webhook event is triggered when the payment message is ready to be sent to FedWire. At this point, Cross River settles the payment in the originating account.
For inbound payments, the Core.Transaction.Completed webhook event is triggered when the payment passes compliance validation. You won't know about inbound payments until they are posted.