List inbound ACH transfers
curl --request GET \
--url https://api.getlemma.com/v0/inbound-ach-transfers \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getlemma.com/v0/inbound-ach-transfers"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getlemma.com/v0/inbound-ach-transfers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getlemma.com/v0/inbound-ach-transfers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getlemma.com/v0/inbound-ach-transfers"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getlemma.com/v0/inbound-ach-transfers")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getlemma.com/v0/inbound-ach-transfers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "inbound_ach_transfer_Wp5mRx3nKv8bTh2d",
"account_id": "account_Rv4nBt8xKw2pMh6s",
"amount": 12500,
"status": "accepted",
"standard_entry_class_code": "corporate_credit_or_debit",
"effective_date": "2026-05-01",
"automatically_resolves_at": "2026-05-02T00:00:00Z",
"originator_company_name": "Acme Insurance",
"originator_company_entry_description": "HCCLAIMPMT",
"trace_number": "021000021000001",
"transaction_id": "transaction_Ab5cDx3nKv8bTh2d",
"settled_at": "2026-05-01T12:00:00Z",
"accepted_at": "2026-05-01T12:00:00Z",
"declined": null,
"returned": null,
"addenda": ["TRN*1*048621930571284*1742615093\\"]
}
],
"has_next": false,
"cursor": null
}
Inbound ACH transfers
List inbound ACH transfers
Retrieve a paginated list of inbound ACH transfers, optionally filtered by account.
GET
/
v0
/
inbound-ach-transfers
List inbound ACH transfers
curl --request GET \
--url https://api.getlemma.com/v0/inbound-ach-transfers \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getlemma.com/v0/inbound-ach-transfers"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getlemma.com/v0/inbound-ach-transfers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getlemma.com/v0/inbound-ach-transfers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getlemma.com/v0/inbound-ach-transfers"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getlemma.com/v0/inbound-ach-transfers")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getlemma.com/v0/inbound-ach-transfers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "inbound_ach_transfer_Wp5mRx3nKv8bTh2d",
"account_id": "account_Rv4nBt8xKw2pMh6s",
"amount": 12500,
"status": "accepted",
"standard_entry_class_code": "corporate_credit_or_debit",
"effective_date": "2026-05-01",
"automatically_resolves_at": "2026-05-02T00:00:00Z",
"originator_company_name": "Acme Insurance",
"originator_company_entry_description": "HCCLAIMPMT",
"trace_number": "021000021000001",
"transaction_id": "transaction_Ab5cDx3nKv8bTh2d",
"settled_at": "2026-05-01T12:00:00Z",
"accepted_at": "2026-05-01T12:00:00Z",
"declined": null,
"returned": null,
"addenda": ["TRN*1*048621930571284*1742615093\\"]
}
],
"has_next": false,
"cursor": null
}
Returns inbound ACH transfers ordered by most recent first. Results are paginated. For ACHs initiated inside Lemma, see list outbound ACH transfers.
Query parameters
string
Filter inbound ACH transfers to a specific bank account, prefixed with
account_. You can find account IDs using the List bank
accounts endpoint. Omit to list inbound
ACH transfers across every account you can access.integer
default:"10"
The number of inbound ACH transfers to return. Maximum is 100.
string
Cursor from the previous response. Omit to fetch from the beginning.
Response
object[]
The list of inbound ACH transfer objects for the requested page.
Show Inbound ACH transfer object
Show Inbound ACH transfer object
string
Unique identifier for the inbound ACH transfer.
string
The Lemma account the transfer moves money into or out of.
integer
The transfer amount in cents. A positive amount indicates a credit pushed
into the account. A negative amount indicates a debit pulled from the
account.
string
Current status of the inbound ACH transfer.
Show possible values
Show possible values
-
pending— awaiting action, will resolve automatically if none is taken. -
declined— we declined the transfer. -
accepted— the transfer was accepted. -
returned— the transfer was returned.
string
The Standard Entry Class code for the transfer.
string
The date the transfer is effective.
string
The name of the company or person that sent the transfer.
string
A description of the transfer set by the originator.
string
A 15 digit number set by the sending bank; used with the amount and date to
identify the transfer.
string | null
The settled transaction, once the transfer posts.
object | null
object | null
Return details, if the transfer was returned.
Show Return object
Show Return object
string | null
The three-character ACH return reason code. Limited to the codes a
receiving bank may use to return an entry it accepted, so this is a
narrower set than the one on outbound ACH transfers.
Show Inbound ACH return reason codes
Show Inbound ACH return reason codes
| Code | Description |
|---|---|
R01 | Insufficient Funds |
R06 | Returned per ODFI’s Request |
R07 | Authorization Revoked by Customer |
R08 | Payment Stopped |
R10 | Customer Advises Unauthorized, Improper, Ineligible, or Incomplete |
R14 | Representative Payee Deceased or Unable to Continue in That Capacity |
R15 | Beneficiary or Account Holder Deceased |
R23 | Credit Entry Refused by Receiver |
R24 | Duplicate Entry |
R29 | Corporate Customer Advises Not Authorized |
string | null
The transaction created when the transfer was returned.
string[]
The raw freeform addenda lines carried by the transfer (for example the
835/837
TRN and REF claim-payment segments), in the order the payer sent
them. To reconcile a healthcare claim payment, match the TRN carried here
against the TRN in your 835 ERA. Empty when the transfer carries no
addenda.boolean
Whether more inbound ACH transfers exist after this page.
string | null
Pass this value as
cursor on the next request to fetch the following page.
null when this is the last page.{
"data": [
{
"id": "inbound_ach_transfer_Wp5mRx3nKv8bTh2d",
"account_id": "account_Rv4nBt8xKw2pMh6s",
"amount": 12500,
"status": "accepted",
"standard_entry_class_code": "corporate_credit_or_debit",
"effective_date": "2026-05-01",
"automatically_resolves_at": "2026-05-02T00:00:00Z",
"originator_company_name": "Acme Insurance",
"originator_company_entry_description": "HCCLAIMPMT",
"trace_number": "021000021000001",
"transaction_id": "transaction_Ab5cDx3nKv8bTh2d",
"settled_at": "2026-05-01T12:00:00Z",
"accepted_at": "2026-05-01T12:00:00Z",
"declined": null,
"returned": null,
"addenda": ["TRN*1*048621930571284*1742615093\\"]
}
],
"has_next": false,
"cursor": null
}