curl --request POST \
--url https://api.meow.com/v1/partner/webhooks/subscriptions \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"url": "<string>",
"event_types": [],
"payload_mode": "snapshot"
}
'import requests
url = "https://api.meow.com/v1/partner/webhooks/subscriptions"
payload = {
"name": "<string>",
"url": "<string>",
"event_types": [],
"payload_mode": "snapshot"
}
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({name: '<string>', url: '<string>', event_types: [], payload_mode: 'snapshot'})
};
fetch('https://api.meow.com/v1/partner/webhooks/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/partner/webhooks/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("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/partner/webhooks/subscriptions")
.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/partner/webhooks/subscriptions")
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 \"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/partner/webhooks/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",
"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/partner/webhooks/subscriptions';
const options = {
method: 'POST',
headers: {'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/partner/webhooks/subscriptions");
var client = new RestClient(options);
var request = new RestRequest("");
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/partner/webhooks/subscriptions")
.post(body)
.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/partner/webhooks/subscriptions")!
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/partner/webhooks/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 Partner Webhook Subscription
Creates a partner webhook subscription and returns it along with the signing secret. The secret is returned only once, so store it now to verify delivery signatures.
curl --request POST \
--url https://api.meow.com/v1/partner/webhooks/subscriptions \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"url": "<string>",
"event_types": [],
"payload_mode": "snapshot"
}
'import requests
url = "https://api.meow.com/v1/partner/webhooks/subscriptions"
payload = {
"name": "<string>",
"url": "<string>",
"event_types": [],
"payload_mode": "snapshot"
}
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({name: '<string>', url: '<string>', event_types: [], payload_mode: 'snapshot'})
};
fetch('https://api.meow.com/v1/partner/webhooks/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/partner/webhooks/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("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/partner/webhooks/subscriptions")
.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/partner/webhooks/subscriptions")
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 \"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/partner/webhooks/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",
"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/partner/webhooks/subscriptions';
const options = {
method: 'POST',
headers: {'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/partner/webhooks/subscriptions");
var client = new RestClient(options);
var request = new RestRequest("");
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/partner/webhooks/subscriptions")
.post(body)
.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/partner/webhooks/subscriptions")!
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/partner/webhooks/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>"
}Authorizations
Your Meow API key, sent in the x-api-key header for authentication.
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.