Receive ACH and Wire Payments with VRNs
Use Virtual Reference Numbers (VRNs) to route incoming ACH and domestic wire payments to a mapped Synthetic Account and associate receipts with your internal ledger.
Overview
A VRN is a receiving identifier that routes incoming payments to a mapped Synthetic Account. Multiple VRNs can map to the same Synthetic Account, allowing you to assign separate receiving identifiers for customers, payment types, business units, or other internal use cases without creating additional accounts.
This guide covers receiving ACH and domestic wire payments through VRNs. For Instant Payments (RTP), see Receive RTP Payments with Virtual Reference Numbers.
International ACH Transactions (IAT) are outside the scope of this guide.
VRNs have the following limitations:
- They can receive payments but cannot originate payments.
- They do not hold balances.
- They do not provide balance reporting.
- They map to Synthetic Accounts and should not be treated as balance-bearing accounts.
For background information, see Virtual Reference Numbers (VRNs).
Supported Receiving Methods
VRNs can be used to receive:
- ACH payments
- Domestic wire transfers
- Instant Payments (RTP), when your Client or Customer has Instant Payments rail access and the VRN's Instant Payment rail registration status is
registered
VRNs cannot be used to:
- Originate ACH payments
- Originate wire transfers
- Hold balances
- Provide balance reporting
Prerequisites
Before you begin:
- Identify the target Synthetic Account and record its
synthetic_account_uid. - Obtain the ABA routing number associated with your VRN configuration.
- Determine how you will associate VRNs with customers, payment purposes, or internal ledger records.
- Review the Create Virtual Reference Number API Reference for current request requirements and validation rules.
Receiving Workflow
1. Create a VRN
Create a Virtual Reference Number and map it to the target Synthetic Account.
POST /api/v1/virtual_reference_numbersInclude the required x-trace-id request header and use a unique value for every request.
For request parameters, field definitions, validation requirements, and response examples, see the API reference.
After successful creation, record the VRN details for use in receiving and reconciliation workflows.
2. Store the VRN Mapping
Maintain a record of the relationship between:
- The VRN
- The mapped Synthetic Account
- The associated customer, business process, or ledger record
- Your
external_uid, if used
Multiple VRNs can map to the same Synthetic Account. Your internal systems should maintain the mapping required to identify the intended recipient or purpose of each incoming payment.
3. Provide Receiving Instructions
Provide the sender with the appropriate routing information, including:
- The VRN
- The associated routing number
Payments sent to the VRN are routed to the mapped Synthetic Account.
Do not use a VRN to originate payments.
4. Monitor Incoming Transactions
Monitor incoming payment activity through your configured notification channel.
Newline supports notifications through:
- Webhooks
- Message Queue delivery
Use transaction notifications to:
- Identify newly received payments
- Track payment status changes
- Support reconciliation processes
For more information, see Notifications.
5. Reconcile Received Payments
Match incoming transaction activity to your VRN-to-customer or VRN-to-ledger mapping.
A typical workflow is:
Sender
↓
ACH Payment or Domestic Wire
↓
VRN
↓
Mapped Synthetic Account
↓
Transaction Notification
↓
Customer or Ledger ReconciliationUse the VRN to identify the intended recipient, customer, or payment purpose. Use transaction activity to track individual payments, and use your internal ledgering processes to maintain balances and allocations.
For bring-your-own-ledger implementations, see Bring Your Own Ledger (BYOL) with EDAS.
Troubleshooting
Review the VRN Error Reference for common errors and remediation guidance.
Common examples include:
| Error Code | Meaning | Recommended Action |
|---|---|---|
30000 | VRN not found | Verify the VRN uid. |
30002 | Synthetic Account is ineligible | Confirm the account is eligible for VRN mapping. |
30005 | VRN is archived | Review the VRN lifecycle state before proceeding. |
30016 | External UID already exists | Check whether the identifier is already associated with an existing VRN. |
If a request fails, review the API response and returned error details before retrying.
Related Documentation
Updated 8 days ago

