curl --request POST \
--url https://api.meow.com/v1/webhooks/global/subscriptions \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"url": "<string>",
"event_types": [],
"payload_mode": "snapshot"
}
'import requests
url = "https://api.meow.com/v1/webhooks/global/subscriptions"
payload = {
"name": "<string>",
"url": "<string>",
"event_types": [],
"payload_mode": "snapshot"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"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: {
'Idempotency-Key': '<idempotency-key>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({name: '<string>', url: '<string>', event_types: [], payload_mode: 'snapshot'})
};
fetch('https://api.meow.com/v1/webhooks/global/subscriptions', 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/webhooks/global/subscriptions"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"event_types\": [],\n \"payload_mode\": \"snapshot\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
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/webhooks/global/subscriptions")
.header("Idempotency-Key", "<idempotency-key>")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"event_types\": [],\n \"payload_mode\": \"snapshot\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meow.com/v1/webhooks/global/subscriptions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"event_types\": [],\n \"payload_mode\": \"snapshot\"\n}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meow.com/v1/webhooks/global/subscriptions",
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([
'name' => '<string>',
'url' => '<string>',
'event_types' => [
],
'payload_mode' => 'snapshot'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>",
"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/webhooks/global/subscriptions';
const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({name: '<string>', url: '<string>', event_types: [], payload_mode: 'snapshot'})
};
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/webhooks/global/subscriptions");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Idempotency-Key", "<idempotency-key>");
request.AddHeader("x-api-key", "<api-key>");
request.AddJsonBody("{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"event_types\": [],\n \"payload_mode\": \"snapshot\"\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 \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"event_types\": [],\n \"payload_mode\": \"snapshot\"\n}")
val request = Request.Builder()
.url("https://api.meow.com/v1/webhooks/global/subscriptions")
.post(body)
.addHeader("Idempotency-Key", "<idempotency-key>")
.addHeader("x-api-key", "<api-key>")
.addHeader("Content-Type", "application/json")
.build()
val response = client.newCall(request).execute()import Foundation
let parameters = [
"name": "<string>",
"url": "<string>",
"event_types": [],
"payload_mode": "snapshot"
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.meow.com/v1/webhooks/global/subscriptions")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
"Idempotency-Key": "<idempotency-key>",
"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("Idempotency-Key", "<idempotency-key>")
$headers.Add("x-api-key", "<api-key>")
$headers.Add("Content-Type", "application/json")
$response = Invoke-WebRequest -Uri 'https://api.meow.com/v1/webhooks/global/subscriptions' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
"name": "<string>",
"url": "<string>",
"event_types": [],
"payload_mode": "snapshot"
}'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"url": "<string>",
"is_enabled": true,
"event_types": [
"ach_transfer.created"
],
"payload_mode": "snapshot",
"created_time": "2023-11-07T05:31:56Z",
"updated_time": "2023-11-07T05:31:56Z",
"secret": "<string>"
}{
"code": 123,
"message": "<string>",
"debug_message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}Create Global Webhook Subscription
Creates a webhook subscription for every entity your global API key’s user administers, including entities added later. New global API keys with business-specific write access cannot use this route. Use the entity-scoped webhook route with x-entity-id for an approved business. Existing global API keys keep their current behavior.
curl --request POST \
--url https://api.meow.com/v1/webhooks/global/subscriptions \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"url": "<string>",
"event_types": [],
"payload_mode": "snapshot"
}
'import requests
url = "https://api.meow.com/v1/webhooks/global/subscriptions"
payload = {
"name": "<string>",
"url": "<string>",
"event_types": [],
"payload_mode": "snapshot"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"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: {
'Idempotency-Key': '<idempotency-key>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({name: '<string>', url: '<string>', event_types: [], payload_mode: 'snapshot'})
};
fetch('https://api.meow.com/v1/webhooks/global/subscriptions', 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/webhooks/global/subscriptions"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"event_types\": [],\n \"payload_mode\": \"snapshot\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
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/webhooks/global/subscriptions")
.header("Idempotency-Key", "<idempotency-key>")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"event_types\": [],\n \"payload_mode\": \"snapshot\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meow.com/v1/webhooks/global/subscriptions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"event_types\": [],\n \"payload_mode\": \"snapshot\"\n}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meow.com/v1/webhooks/global/subscriptions",
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([
'name' => '<string>',
'url' => '<string>',
'event_types' => [
],
'payload_mode' => 'snapshot'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>",
"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/webhooks/global/subscriptions';
const options = {
method: 'POST',
headers: {
'Idempotency-Key': '<idempotency-key>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({name: '<string>', url: '<string>', event_types: [], payload_mode: 'snapshot'})
};
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/webhooks/global/subscriptions");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Idempotency-Key", "<idempotency-key>");
request.AddHeader("x-api-key", "<api-key>");
request.AddJsonBody("{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"event_types\": [],\n \"payload_mode\": \"snapshot\"\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 \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"event_types\": [],\n \"payload_mode\": \"snapshot\"\n}")
val request = Request.Builder()
.url("https://api.meow.com/v1/webhooks/global/subscriptions")
.post(body)
.addHeader("Idempotency-Key", "<idempotency-key>")
.addHeader("x-api-key", "<api-key>")
.addHeader("Content-Type", "application/json")
.build()
val response = client.newCall(request).execute()import Foundation
let parameters = [
"name": "<string>",
"url": "<string>",
"event_types": [],
"payload_mode": "snapshot"
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.meow.com/v1/webhooks/global/subscriptions")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
"Idempotency-Key": "<idempotency-key>",
"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("Idempotency-Key", "<idempotency-key>")
$headers.Add("x-api-key", "<api-key>")
$headers.Add("Content-Type", "application/json")
$response = Invoke-WebRequest -Uri 'https://api.meow.com/v1/webhooks/global/subscriptions' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
"name": "<string>",
"url": "<string>",
"event_types": [],
"payload_mode": "snapshot"
}'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"url": "<string>",
"is_enabled": true,
"event_types": [
"ach_transfer.created"
],
"payload_mode": "snapshot",
"created_time": "2023-11-07T05:31:56Z",
"updated_time": "2023-11-07T05:31:56Z",
"secret": "<string>"
}{
"code": 123,
"message": "<string>",
"debug_message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}entity_id so you can route it
to the right tenant.Authorizations
Your Meow API key, sent in the x-api-key header for authentication.
Headers
A unique key you generate (1-50 printable ASCII characters, no spaces) so retrying this request never creates a duplicate. Reusing a key is rejected.
1 - 50^[!-~]+$Body
Label for the subscription, for your own reference. Must not be blank.
255HTTPS endpoint Meow POSTs each event to.
1 - 2048Event types to deliver. Omit or send null to receive every event. An empty list is rejected, since it would match nothing.
ach_transfer.created, ach_transfer.updated, wire_transfer.created, wire_transfer.updated, book_transfer.created, book_transfer.updated, international_payment.created, international_payment.updated, inbound_ach_transfer.created, inbound_ach_transfer.updated, inbound_wire_transfer.created, inbound_wire_transfer.updated, check_deposit.created, check_deposit.updated, global_account_transfer.created, crypto_transfer.created, crypto_transfer.updated, account.created, account.updated, card.created, card.updated, onboarding_consent.updated, info_request.created, info_request.updated, application.created, application.under_review, application.submitted, application.approved, application.rejected, identity_verification.action_required, identity_verification.approved, identity_verification.rejected, message.attempt.exhausted, webhook.test How much of the resource each delivery carries. snapshot (the default) sends the full resource in data.object; thin sends only its id and object type, and you fetch the current state yourself.
snapshot, thin Response
Successful Response
Unique identifier for the subscription.
Label for the subscription.
Endpoint Meow POSTs each event to.
Whether the subscription is currently receiving deliveries. Meow sets this to false after repeated delivery failures, a 410 Gone response, or an unsafe URL; re-enable it with a PATCH.
Event types this subscription receives. null means every event.
ach_transfer.created, ach_transfer.updated, wire_transfer.created, wire_transfer.updated, book_transfer.created, book_transfer.updated, international_payment.created, international_payment.updated, inbound_ach_transfer.created, inbound_ach_transfer.updated, inbound_wire_transfer.created, inbound_wire_transfer.updated, check_deposit.created, check_deposit.updated, global_account_transfer.created, crypto_transfer.created, crypto_transfer.updated, account.created, account.updated, card.created, card.updated, onboarding_consent.updated, info_request.created, info_request.updated, application.created, application.under_review, application.submitted, application.approved, application.rejected, identity_verification.action_required, identity_verification.approved, identity_verification.rejected, message.attempt.exhausted, webhook.test How much of the resource each delivery carries: snapshot for the full resource, thin for its id and object type only.
snapshot, thin When the subscription was created.
When the subscription was last modified.
Signing secret for verifying delivery signatures. Returned only when the subscription is created and when you rotate the secret — Meow cannot show it again, so store it now.