Get ACH transfer
curl --request GET \
--url https://api.getlemma.com/v0/ach-transfer/{ach_transfer_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getlemma.com/v0/ach-transfer/{ach_transfer_id}"
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/ach-transfer/{ach_transfer_id}', 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/ach-transfer/{ach_transfer_id}",
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/ach-transfer/{ach_transfer_id}"
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/ach-transfer/{ach_transfer_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getlemma.com/v0/ach-transfer/{ach_transfer_id}")
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{
"id": "ach_transfer_Lk7nQx4mVp9bRt3d",
"account_id": "account_Rv4nBt8xKw2pMh6s",
"external_account_id": "external_account_Bx5nTm8hKw3pVd7c",
"amount": -150000,
"status": "submitted",
"statement_descriptor": "Acme payroll",
"transaction_id": null,
"settled_at": null,
"submission": {
"submitted_at": "2026-03-15T14:30:00Z",
"expected_funds_settlement_at": "2026-03-17T14:30:00Z"
},
"return": null
}
{
"statusCode": 404,
"error": "Not Found",
"message": "ACH transfer not found"
}
Outbound ACH transfers
Get ACH transfer
Retrieve a single ACH transfer by its ID.
GET
/
v0
/
ach-transfer
/
{ach_transfer_id}
Get ACH transfer
curl --request GET \
--url https://api.getlemma.com/v0/ach-transfer/{ach_transfer_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getlemma.com/v0/ach-transfer/{ach_transfer_id}"
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/ach-transfer/{ach_transfer_id}', 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/ach-transfer/{ach_transfer_id}",
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/ach-transfer/{ach_transfer_id}"
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/ach-transfer/{ach_transfer_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getlemma.com/v0/ach-transfer/{ach_transfer_id}")
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{
"id": "ach_transfer_Lk7nQx4mVp9bRt3d",
"account_id": "account_Rv4nBt8xKw2pMh6s",
"external_account_id": "external_account_Bx5nTm8hKw3pVd7c",
"amount": -150000,
"status": "submitted",
"statement_descriptor": "Acme payroll",
"transaction_id": null,
"settled_at": null,
"submission": {
"submitted_at": "2026-03-15T14:30:00Z",
"expected_funds_settlement_at": "2026-03-17T14:30:00Z"
},
"return": null
}
{
"statusCode": 404,
"error": "Not Found",
"message": "ACH transfer not found"
}
Returns a single ACH transfer object.
Path parameters
string
required
The unique identifier of the ACH transfer to retrieve.
Response
string
Unique identifier for the ACH transfer.
string
The Lemma account the transfer moves money from or to.
string | null
The external account on the other side of
the transfer.
integer
The transfer amount in cents. A positive amount indicates a credit transfer
pushing funds to the receiving account. A negative amount indicates a debit
transfer pulling funds from the receiving account (an ACH pull).
string
Current status of the ACH transfer.
Show possible values
Show possible values
-
pending— in flight. -
submitted— sent to the ACH network. When the Federal Reserve settles the transfer, the status stayssubmittedandsettled_atis populated. -
canceled— we canceled the transfer after holding it for manual review. -
rejected— the ACH network rejected the transfer. -
returned— the transfer was returned.
string
The statement descriptor shown to the counterparty.
string | null
The settled transaction, once the transfer posts.
object | null
object | null
{
"id": "ach_transfer_Lk7nQx4mVp9bRt3d",
"account_id": "account_Rv4nBt8xKw2pMh6s",
"external_account_id": "external_account_Bx5nTm8hKw3pVd7c",
"amount": -150000,
"status": "submitted",
"statement_descriptor": "Acme payroll",
"transaction_id": null,
"settled_at": null,
"submission": {
"submitted_at": "2026-03-15T14:30:00Z",
"expected_funds_settlement_at": "2026-03-17T14:30:00Z"
},
"return": null
}
{
"statusCode": 404,
"error": "Not Found",
"message": "ACH transfer not found"
}
⌘I