Skip to main content

ACH Transactions

Overview

You can create ACH transactions via POST /v1/customer/id/{customerId}/transaction.
The examples below demonstrate common collect, send, and refund scenarios.

Resource Access

Production (api.ahrvo.network)

POST https://api.ahrvo.network/banking/us2/v1/customer/id/{customerId}/transaction

Staging (gateway.ahrvo.network)

POST https://gateway.ahrvo.network/banking/us2/v1/customer/id/{customerId}/transaction
Scenarios Covered

• Collect — pre-existing External Account → Ahrvo
• Collect — one-time External Account → Ahrvo
• Collect — Contact (External) → Ahrvo
• Send — Ahrvo → pre-existing External Account
• Send — Ahrvo → one-time External Account
• Refund — ACH (pre-existing parent transaction)


Collect — External Account (pre-existing) → Ahrvo

POST /banking/us2/v1/customer/id/{placeholder}/transaction
Host: <hostname>
Authorization: Bearer <JWT token>
x-api-key: {apiKey}
Content-Type: application/json
{
"amount": "{placeholder}",
"allowDuplicate": true,
"method": "ACH",
"purpose": "{placeholder}",
"source": {
"externalAccount": { "id": "{placeholder}" }
},
"destination": {
"account": { "id": "{placeholder}" }
},
"type": "REGULAR",
"processingDetail": {
"processingMode": "FORWARD",
"companyName": "{placeholder}",
"location": { "id": "{placeholder}" },
"companyDescription": "{placeholder}"
},
"comment": "{placeholder}"
}

Collect — External Account (one-time) → Ahrvo

POST /banking/us2/v1/customer/id/{placeholder}/transaction
Host: <hostname>
Authorization: Bearer <JWT token>
x-api-key: {apiKey}
Content-Type: application/json
{
"amount": "{placeholder}",
"allowDuplicate": true,
"method": "ACH",
"type": "REGULAR",
"purpose": "{placeholder}",
"source": {
"externalAccount": {
"holderName": "{placeholder}",
"accountNumber": "{placeholder}",
"routingNumber": "{placeholder}",
"type": "SAVINGS",
"holderType": "CONSUMER"
}
},
"destination": {
"account": { "id": "{placeholder}" }
},
"processingDetail": {
"processingMode": "FORWARD",
"companyName": "{placeholder}",
"location": { "id": "{placeholder}" },
"companyDescription": "{placeholder}"
},
"comment": "{placeholder}"
}
note

An OFAC verification is triggered on the source prior to processing.


Collect — Contact (External) → Ahrvo

POST /banking/us2/v1/customer/id/{placeholder}/transaction
Host: <hostname>
Authorization: Bearer <JWT token>
x-api-key: {apiKey}
Content-Type: application/json
{
"method": "ACH",
"type": "REGULAR",
"amount": "{placeholder}",
"allowDuplicate": true,
"purpose": "{placeholder}",
"source": {
"contact": {
"id": "{placeholder}",
"externalAccount": { "id": "{placeholder}" }
}
},
"destination": {
"account": { "id": "{placeholder}" }
},
"processingDetail": {
"processingMode": "FORWARD",
"companyName": "{placeholder}",
"location": { "id": "{placeholder}" },
"companyDescription": "{placeholder}"
}
}

Send — Ahrvo → External Account (pre-existing)

POST /banking/us2/v1/customer/id/{placeholder}/transaction
Host: <hostname>
Authorization: Bearer <JWT token>
x-api-key: {apiKey}
Content-Type: application/json
{
"method": "ACH",
"amount": "{placeholder}",
"allowDuplicate": true,
"purpose": "{placeholder}",
"source": {
"account": { "id": "{placeholder}" }
},
"destination": {
"externalAccount": { "id": "{placeholder}" }
},
"type": "REGULAR",
"processingDetail": {
"processingMode": "FORWARD",
"companyName": "{placeholder}",
"companyDescription": "{placeholder}",
"location": { "id": "{placeholder}" },
"authType": "WRITTEN"
},
"scheduleDate": "{placeholder}",
"comment": "{placeholder}",
"txp_addenda":"TXP addenda information to tax authorities"
}

Send — Ahrvo → External Account (one-time)

POST /banking/us2/v1/customer/id/{placeholder}/transaction
Host: <hostname>
Authorization: Bearer <JWT token>
x-api-key: {apiKey}
Content-Type: application/json
{
"amount": "{placeholder}",
"allowDuplicate": true,
"method": "ACH",
"type": "REGULAR",
"purpose": "{placeholder}",
"source": {
"account": { "id": "{placeholder}" }
},
"destination": {
"externalAccount": {
"holderName": "{placeholder}",
"accountNumber": "{placeholder}",
"routingNumber": "{placeholder}",
"type": "SAVINGS",
"holderType": "CONSUMER"
}
},
"processingDetail": {
"processingMode": "FORWARD",
"companyName": "{placeholder}",
"companyDescription": "{placeholder}",
"location": { "id": "{placeholder}" },
"authType": "WRITTEN"
},
"comment": "{placeholder}",
"txp_addenda":"TXP addenda information to tax authorities"
}

Refund — ACH (pre-existing parent)

POST /banking/us2/v1/customer/id/{placeholder}/transaction
Host: <hostname>
Authorization: Bearer <JWT token>
x-api-key: {apiKey}
Content-Type: application/json
{
"method": "ACH",
"type": "REFUND",
"processingDetail": {
"achRefundCompanyName": "{placeholder}",
"achRefundCompanyDescription": "{placeholder}",
"parent": { "id": "{placeholder}" }
},
"amount": "{placeholder}",
"purpose": "{placeholder}",
"reason": "ON_CUSTOMER_REQUEST"
}

OpenAPI Specification