curl --request POST \
--url https://api.meow.com/v1/simulations/inbound_transfers \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"account_id": "<string>",
"amount": 10000000,
"memo": "<string>"
}
'import requests
url = "https://api.meow.com/v1/simulations/inbound_transfers"
payload = {
"account_id": "<string>",
"amount": 10000000,
"memo": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({account_id: '<string>', amount: 10000000, memo: '<string>'})
};
fetch('https://api.meow.com/v1/simulations/inbound_transfers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.meow.com/v1/simulations/inbound_transfers"
payload := strings.NewReader("{\n \"account_id\": \"<string>\",\n \"amount\": 10000000,\n \"memo\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.meow.com/v1/simulations/inbound_transfers")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"<string>\",\n \"amount\": 10000000,\n \"memo\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meow.com/v1/simulations/inbound_transfers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_id\": \"<string>\",\n \"amount\": 10000000,\n \"memo\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meow.com/v1/simulations/inbound_transfers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'account_id' => '<string>',
'amount' => 10000000,
'memo' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}const url = 'https://api.meow.com/v1/simulations/inbound_transfers';
const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({account_id: '<string>', amount: 10000000, memo: '<string>'})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));using RestSharp;
var options = new RestClientOptions("https://api.meow.com/v1/simulations/inbound_transfers");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("x-api-key", "<api-key>");
request.AddJsonBody("{\n \"account_id\": \"<string>\",\n \"amount\": 10000000,\n \"memo\": \"<string>\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
val client = OkHttpClient()
val mediaType = MediaType.parse("application/json")
val body = RequestBody.create(mediaType, "{\n \"account_id\": \"<string>\",\n \"amount\": 10000000,\n \"memo\": \"<string>\"\n}")
val request = Request.Builder()
.url("https://api.meow.com/v1/simulations/inbound_transfers")
.post(body)
.addHeader("x-api-key", "<api-key>")
.addHeader("Content-Type", "application/json")
.build()
val response = client.newCall(request).execute()import Foundation
let parameters = [
"account_id": "<string>",
"amount": 10000000,
"memo": "<string>"
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.meow.com/v1/simulations/inbound_transfers")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
"x-api-key": "<api-key>",
"Content-Type": "application/json"
]
request.httpBody = postData
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))falsefalse$headers=@{}
$headers.Add("x-api-key", "<api-key>")
$headers.Add("Content-Type", "application/json")
$response = Invoke-WebRequest -Uri 'https://api.meow.com/v1/simulations/inbound_transfers' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
"account_id": "<string>",
"amount": 10000000,
"memo": "<string>"
}'{
"account_id": "<string>",
"amount": "<string>",
"rail": "ach",
"status": "submitted",
"created_at": "2023-11-07T05:31:56Z",
"sender_name": "<string>"
}{
"code": 123,
"message": "<string>",
"debug_message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}Simulate Inbound Transfer
⚠️ Sandbox & development only. Simulation endpoints are not available in production and return
404 Not Foundthere.
Simulates an inbound ACH, wire, RTP, or FedNow transfer into a cash account in the sandbox. Only cash accounts support this simulation.
curl --request POST \
--url https://api.meow.com/v1/simulations/inbound_transfers \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"account_id": "<string>",
"amount": 10000000,
"memo": "<string>"
}
'import requests
url = "https://api.meow.com/v1/simulations/inbound_transfers"
payload = {
"account_id": "<string>",
"amount": 10000000,
"memo": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({account_id: '<string>', amount: 10000000, memo: '<string>'})
};
fetch('https://api.meow.com/v1/simulations/inbound_transfers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.meow.com/v1/simulations/inbound_transfers"
payload := strings.NewReader("{\n \"account_id\": \"<string>\",\n \"amount\": 10000000,\n \"memo\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.meow.com/v1/simulations/inbound_transfers")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"account_id\": \"<string>\",\n \"amount\": 10000000,\n \"memo\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meow.com/v1/simulations/inbound_transfers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_id\": \"<string>\",\n \"amount\": 10000000,\n \"memo\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meow.com/v1/simulations/inbound_transfers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'account_id' => '<string>',
'amount' => 10000000,
'memo' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}const url = 'https://api.meow.com/v1/simulations/inbound_transfers';
const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({account_id: '<string>', amount: 10000000, memo: '<string>'})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));using RestSharp;
var options = new RestClientOptions("https://api.meow.com/v1/simulations/inbound_transfers");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("x-api-key", "<api-key>");
request.AddJsonBody("{\n \"account_id\": \"<string>\",\n \"amount\": 10000000,\n \"memo\": \"<string>\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
val client = OkHttpClient()
val mediaType = MediaType.parse("application/json")
val body = RequestBody.create(mediaType, "{\n \"account_id\": \"<string>\",\n \"amount\": 10000000,\n \"memo\": \"<string>\"\n}")
val request = Request.Builder()
.url("https://api.meow.com/v1/simulations/inbound_transfers")
.post(body)
.addHeader("x-api-key", "<api-key>")
.addHeader("Content-Type", "application/json")
.build()
val response = client.newCall(request).execute()import Foundation
let parameters = [
"account_id": "<string>",
"amount": 10000000,
"memo": "<string>"
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.meow.com/v1/simulations/inbound_transfers")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
"x-api-key": "<api-key>",
"Content-Type": "application/json"
]
request.httpBody = postData
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))falsefalse$headers=@{}
$headers.Add("x-api-key", "<api-key>")
$headers.Add("Content-Type", "application/json")
$response = Invoke-WebRequest -Uri 'https://api.meow.com/v1/simulations/inbound_transfers' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
"account_id": "<string>",
"amount": 10000000,
"memo": "<string>"
}'{
"account_id": "<string>",
"amount": "<string>",
"rail": "ach",
"status": "submitted",
"created_at": "2023-11-07T05:31:56Z",
"sender_name": "<string>"
}{
"code": 123,
"message": "<string>",
"debug_message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}memo to include a payment reference in the simulated transfer. Omit it or
send null to keep the default simulation text.
{
"account_id": "cash_account_<uuid>",
"rail": "wire",
"amount": "100.00",
"memo": "invoice-123"
}
400 without creating a transfer.
After a wire settles, read its memo from instructions on
Get Wire Transfer. Wire instructions
can contain separators between the payment network’s 35-character lines.
ACH memos appear in description or payment_related_info when the cash
account supports them.
The memo does not replace the generated sender_name used to track settlement.Authorizations
Your Meow API key, sent in the x-api-key header for authentication.
Headers
Optional entity_id to scope requests to a specific entity.
Body
The cash account ID, exactly as returned by the list accounts endpoint (for example, cash_account_<uuid>).
The payment rail to simulate the inbound transfer over.
ach, wire, rtp, fednow The transfer amount, in dollars.
0 < x <= 20000000Optional payment memo or reference. The maximum length depends on the rail and the cash account's bank, and some combinations carry no memo. A memo that the simulator cannot carry returns 400 without creating a transfer. Omit or send null to keep the default simulation text.
1 - 140Response
Successful Response
The cash account the simulated funds were credited to.
The simulated transfer amount, in dollars.
^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$The payment rail the transfer was simulated over.
ach, wire, rtp, fednow The status of the simulated transfer.
submitted When the simulation was submitted.
The simulated sender name stamped on this transfer. It appears as the transaction's counterparty name once the transfer settles, and as originator_name on the resulting inbound_ach_transfer.* / inbound_wire_transfer.* webhook — use it to correlate this simulation with the transaction and webhook it produces. Poll GET /simulations/inbound_transfers/{sender_name} to check whether it has settled yet. Null for fednow, whose simulation has no sender-name field.