curl --request POST \
--url https://api.meow.com/v1/cards \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"spending_controls": {
"per_transaction_limit": 123,
"daily_limit": 500000000,
"weekly_limit": 500000000,
"monthly_limit": 500000000,
"yearly_limit": 500000000,
"all_time_limit": 500000000
},
"nickname": "<string>",
"spending_restriction": {
"merchants": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
},
"allowed_categories": [],
"debit_account": "cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2",
"purpose": "Q3 ad spend for the Catnip Coffee Co launch",
"expires_at": "2023-11-07T05:31:56Z",
"single_use": true
}
'import requests
url = "https://api.meow.com/v1/cards"
payload = {
"spending_controls": {
"per_transaction_limit": 123,
"daily_limit": 500000000,
"weekly_limit": 500000000,
"monthly_limit": 500000000,
"yearly_limit": 500000000,
"all_time_limit": 500000000
},
"nickname": "<string>",
"spending_restriction": { "merchants": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"] },
"allowed_categories": [],
"debit_account": "cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2",
"purpose": "Q3 ad spend for the Catnip Coffee Co launch",
"expires_at": "2023-11-07T05:31:56Z",
"single_use": True
}
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({
spending_controls: {
per_transaction_limit: 123,
daily_limit: 500000000,
weekly_limit: 500000000,
monthly_limit: 500000000,
yearly_limit: 500000000,
all_time_limit: 500000000
},
nickname: '<string>',
spending_restriction: {merchants: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']},
allowed_categories: [],
debit_account: 'cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2',
purpose: 'Q3 ad spend for the Catnip Coffee Co launch',
expires_at: '2023-11-07T05:31:56Z',
single_use: true
})
};
fetch('https://api.meow.com/v1/cards', 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/cards"
payload := strings.NewReader("{\n \"spending_controls\": {\n \"per_transaction_limit\": 123,\n \"daily_limit\": 500000000,\n \"weekly_limit\": 500000000,\n \"monthly_limit\": 500000000,\n \"yearly_limit\": 500000000,\n \"all_time_limit\": 500000000\n },\n \"nickname\": \"<string>\",\n \"spending_restriction\": {\n \"merchants\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n },\n \"allowed_categories\": [],\n \"debit_account\": \"cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2\",\n \"purpose\": \"Q3 ad spend for the Catnip Coffee Co launch\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"single_use\": true\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/cards")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"spending_controls\": {\n \"per_transaction_limit\": 123,\n \"daily_limit\": 500000000,\n \"weekly_limit\": 500000000,\n \"monthly_limit\": 500000000,\n \"yearly_limit\": 500000000,\n \"all_time_limit\": 500000000\n },\n \"nickname\": \"<string>\",\n \"spending_restriction\": {\n \"merchants\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n },\n \"allowed_categories\": [],\n \"debit_account\": \"cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2\",\n \"purpose\": \"Q3 ad spend for the Catnip Coffee Co launch\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"single_use\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meow.com/v1/cards")
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 \"spending_controls\": {\n \"per_transaction_limit\": 123,\n \"daily_limit\": 500000000,\n \"weekly_limit\": 500000000,\n \"monthly_limit\": 500000000,\n \"yearly_limit\": 500000000,\n \"all_time_limit\": 500000000\n },\n \"nickname\": \"<string>\",\n \"spending_restriction\": {\n \"merchants\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n },\n \"allowed_categories\": [],\n \"debit_account\": \"cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2\",\n \"purpose\": \"Q3 ad spend for the Catnip Coffee Co launch\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"single_use\": true\n}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meow.com/v1/cards",
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([
'spending_controls' => [
'per_transaction_limit' => 123,
'daily_limit' => 500000000,
'weekly_limit' => 500000000,
'monthly_limit' => 500000000,
'yearly_limit' => 500000000,
'all_time_limit' => 500000000
],
'nickname' => '<string>',
'spending_restriction' => [
'merchants' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
],
'allowed_categories' => [
],
'debit_account' => 'cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2',
'purpose' => 'Q3 ad spend for the Catnip Coffee Co launch',
'expires_at' => '2023-11-07T05:31:56Z',
'single_use' => true
]),
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/cards';
const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
spending_controls: {
per_transaction_limit: 123,
daily_limit: 500000000,
weekly_limit: 500000000,
monthly_limit: 500000000,
yearly_limit: 500000000,
all_time_limit: 500000000
},
nickname: '<string>',
spending_restriction: {merchants: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']},
allowed_categories: [],
debit_account: 'cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2',
purpose: 'Q3 ad spend for the Catnip Coffee Co launch',
expires_at: '2023-11-07T05:31:56Z',
single_use: true
})
};
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/cards");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("x-api-key", "<api-key>");
request.AddJsonBody("{\n \"spending_controls\": {\n \"per_transaction_limit\": 123,\n \"daily_limit\": 500000000,\n \"weekly_limit\": 500000000,\n \"monthly_limit\": 500000000,\n \"yearly_limit\": 500000000,\n \"all_time_limit\": 500000000\n },\n \"nickname\": \"<string>\",\n \"spending_restriction\": {\n \"merchants\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n },\n \"allowed_categories\": [],\n \"debit_account\": \"cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2\",\n \"purpose\": \"Q3 ad spend for the Catnip Coffee Co launch\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"single_use\": true\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 \"spending_controls\": {\n \"per_transaction_limit\": 123,\n \"daily_limit\": 500000000,\n \"weekly_limit\": 500000000,\n \"monthly_limit\": 500000000,\n \"yearly_limit\": 500000000,\n \"all_time_limit\": 500000000\n },\n \"nickname\": \"<string>\",\n \"spending_restriction\": {\n \"merchants\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n },\n \"allowed_categories\": [],\n \"debit_account\": \"cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2\",\n \"purpose\": \"Q3 ad spend for the Catnip Coffee Co launch\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"single_use\": true\n}")
val request = Request.Builder()
.url("https://api.meow.com/v1/cards")
.post(body)
.addHeader("x-api-key", "<api-key>")
.addHeader("Content-Type", "application/json")
.build()
val response = client.newCall(request).execute()import Foundation
let parameters = [
"spending_controls": [
"per_transaction_limit": 123,
"daily_limit": 500000000,
"weekly_limit": 500000000,
"monthly_limit": 500000000,
"yearly_limit": 500000000,
"all_time_limit": 500000000
],
"nickname": "<string>",
"spending_restriction": ["merchants": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"]],
"allowed_categories": [],
"debit_account": "cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2",
"purpose": "Q3 ad spend for the Catnip Coffee Co launch",
"expires_at": "2023-11-07T05:31:56Z",
"single_use": true
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.meow.com/v1/cards")!
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/cards' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
"spending_controls": {
"per_transaction_limit": 123,
"daily_limit": 500000000,
"weekly_limit": 500000000,
"monthly_limit": 500000000,
"yearly_limit": 500000000,
"all_time_limit": 500000000
},
"nickname": "<string>",
"spending_restriction": {
"merchants": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
},
"allowed_categories": [],
"debit_account": "cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2",
"purpose": "Q3 ad spend for the Catnip Coffee Co launch",
"expires_at": "2023-11-07T05:31:56Z",
"single_use": true
}'{
"controls": {
"spending_controls": {
"per_transaction_limit": 123,
"daily_limit": 500000000,
"weekly_limit": 500000000,
"monthly_limit": 500000000,
"yearly_limit": 500000000,
"all_time_limit": 500000000
},
"single_use": true,
"expires_at": "2023-11-07T05:31:56Z",
"spending_restriction": {
"merchants": [
"<string>"
]
}
},
"metadata": {
"card_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"debit_account": "<string>",
"purpose": "<string>"
},
"payment_type": "card"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Create Card
Creates a virtual card with a spend limit. By default the card authorizes at any merchant up to that limit. Pass spending_restriction with merchant IDs from GET /cards/merchants to restrict it, and allowed_categories to restrict by merchant category. Set single_use to true (default) for a one-shot card that auto-cancels after the first approved authorization, or false for a multi-use card that stays active until expiry or explicit revoke. Retrieve the PAN by calling POST /cards/{card_id}/pan.
curl --request POST \
--url https://api.meow.com/v1/cards \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"spending_controls": {
"per_transaction_limit": 123,
"daily_limit": 500000000,
"weekly_limit": 500000000,
"monthly_limit": 500000000,
"yearly_limit": 500000000,
"all_time_limit": 500000000
},
"nickname": "<string>",
"spending_restriction": {
"merchants": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
},
"allowed_categories": [],
"debit_account": "cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2",
"purpose": "Q3 ad spend for the Catnip Coffee Co launch",
"expires_at": "2023-11-07T05:31:56Z",
"single_use": true
}
'import requests
url = "https://api.meow.com/v1/cards"
payload = {
"spending_controls": {
"per_transaction_limit": 123,
"daily_limit": 500000000,
"weekly_limit": 500000000,
"monthly_limit": 500000000,
"yearly_limit": 500000000,
"all_time_limit": 500000000
},
"nickname": "<string>",
"spending_restriction": { "merchants": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"] },
"allowed_categories": [],
"debit_account": "cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2",
"purpose": "Q3 ad spend for the Catnip Coffee Co launch",
"expires_at": "2023-11-07T05:31:56Z",
"single_use": True
}
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({
spending_controls: {
per_transaction_limit: 123,
daily_limit: 500000000,
weekly_limit: 500000000,
monthly_limit: 500000000,
yearly_limit: 500000000,
all_time_limit: 500000000
},
nickname: '<string>',
spending_restriction: {merchants: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']},
allowed_categories: [],
debit_account: 'cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2',
purpose: 'Q3 ad spend for the Catnip Coffee Co launch',
expires_at: '2023-11-07T05:31:56Z',
single_use: true
})
};
fetch('https://api.meow.com/v1/cards', 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/cards"
payload := strings.NewReader("{\n \"spending_controls\": {\n \"per_transaction_limit\": 123,\n \"daily_limit\": 500000000,\n \"weekly_limit\": 500000000,\n \"monthly_limit\": 500000000,\n \"yearly_limit\": 500000000,\n \"all_time_limit\": 500000000\n },\n \"nickname\": \"<string>\",\n \"spending_restriction\": {\n \"merchants\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n },\n \"allowed_categories\": [],\n \"debit_account\": \"cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2\",\n \"purpose\": \"Q3 ad spend for the Catnip Coffee Co launch\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"single_use\": true\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/cards")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"spending_controls\": {\n \"per_transaction_limit\": 123,\n \"daily_limit\": 500000000,\n \"weekly_limit\": 500000000,\n \"monthly_limit\": 500000000,\n \"yearly_limit\": 500000000,\n \"all_time_limit\": 500000000\n },\n \"nickname\": \"<string>\",\n \"spending_restriction\": {\n \"merchants\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n },\n \"allowed_categories\": [],\n \"debit_account\": \"cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2\",\n \"purpose\": \"Q3 ad spend for the Catnip Coffee Co launch\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"single_use\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meow.com/v1/cards")
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 \"spending_controls\": {\n \"per_transaction_limit\": 123,\n \"daily_limit\": 500000000,\n \"weekly_limit\": 500000000,\n \"monthly_limit\": 500000000,\n \"yearly_limit\": 500000000,\n \"all_time_limit\": 500000000\n },\n \"nickname\": \"<string>\",\n \"spending_restriction\": {\n \"merchants\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n },\n \"allowed_categories\": [],\n \"debit_account\": \"cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2\",\n \"purpose\": \"Q3 ad spend for the Catnip Coffee Co launch\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"single_use\": true\n}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meow.com/v1/cards",
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([
'spending_controls' => [
'per_transaction_limit' => 123,
'daily_limit' => 500000000,
'weekly_limit' => 500000000,
'monthly_limit' => 500000000,
'yearly_limit' => 500000000,
'all_time_limit' => 500000000
],
'nickname' => '<string>',
'spending_restriction' => [
'merchants' => [
'3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
],
'allowed_categories' => [
],
'debit_account' => 'cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2',
'purpose' => 'Q3 ad spend for the Catnip Coffee Co launch',
'expires_at' => '2023-11-07T05:31:56Z',
'single_use' => true
]),
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/cards';
const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
spending_controls: {
per_transaction_limit: 123,
daily_limit: 500000000,
weekly_limit: 500000000,
monthly_limit: 500000000,
yearly_limit: 500000000,
all_time_limit: 500000000
},
nickname: '<string>',
spending_restriction: {merchants: ['3c90c3cc-0d44-4b50-8888-8dd25736052a']},
allowed_categories: [],
debit_account: 'cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2',
purpose: 'Q3 ad spend for the Catnip Coffee Co launch',
expires_at: '2023-11-07T05:31:56Z',
single_use: true
})
};
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/cards");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("x-api-key", "<api-key>");
request.AddJsonBody("{\n \"spending_controls\": {\n \"per_transaction_limit\": 123,\n \"daily_limit\": 500000000,\n \"weekly_limit\": 500000000,\n \"monthly_limit\": 500000000,\n \"yearly_limit\": 500000000,\n \"all_time_limit\": 500000000\n },\n \"nickname\": \"<string>\",\n \"spending_restriction\": {\n \"merchants\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n },\n \"allowed_categories\": [],\n \"debit_account\": \"cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2\",\n \"purpose\": \"Q3 ad spend for the Catnip Coffee Co launch\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"single_use\": true\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 \"spending_controls\": {\n \"per_transaction_limit\": 123,\n \"daily_limit\": 500000000,\n \"weekly_limit\": 500000000,\n \"monthly_limit\": 500000000,\n \"yearly_limit\": 500000000,\n \"all_time_limit\": 500000000\n },\n \"nickname\": \"<string>\",\n \"spending_restriction\": {\n \"merchants\": [\n \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n ]\n },\n \"allowed_categories\": [],\n \"debit_account\": \"cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2\",\n \"purpose\": \"Q3 ad spend for the Catnip Coffee Co launch\",\n \"expires_at\": \"2023-11-07T05:31:56Z\",\n \"single_use\": true\n}")
val request = Request.Builder()
.url("https://api.meow.com/v1/cards")
.post(body)
.addHeader("x-api-key", "<api-key>")
.addHeader("Content-Type", "application/json")
.build()
val response = client.newCall(request).execute()import Foundation
let parameters = [
"spending_controls": [
"per_transaction_limit": 123,
"daily_limit": 500000000,
"weekly_limit": 500000000,
"monthly_limit": 500000000,
"yearly_limit": 500000000,
"all_time_limit": 500000000
],
"nickname": "<string>",
"spending_restriction": ["merchants": ["3c90c3cc-0d44-4b50-8888-8dd25736052a"]],
"allowed_categories": [],
"debit_account": "cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2",
"purpose": "Q3 ad spend for the Catnip Coffee Co launch",
"expires_at": "2023-11-07T05:31:56Z",
"single_use": true
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.meow.com/v1/cards")!
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/cards' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
"spending_controls": {
"per_transaction_limit": 123,
"daily_limit": 500000000,
"weekly_limit": 500000000,
"monthly_limit": 500000000,
"yearly_limit": 500000000,
"all_time_limit": 500000000
},
"nickname": "<string>",
"spending_restriction": {
"merchants": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
},
"allowed_categories": [],
"debit_account": "cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2",
"purpose": "Q3 ad spend for the Catnip Coffee Co launch",
"expires_at": "2023-11-07T05:31:56Z",
"single_use": true
}'{
"controls": {
"spending_controls": {
"per_transaction_limit": 123,
"daily_limit": 500000000,
"weekly_limit": 500000000,
"monthly_limit": 500000000,
"yearly_limit": 500000000,
"all_time_limit": 500000000
},
"single_use": true,
"expires_at": "2023-11-07T05:31:56Z",
"spending_restriction": {
"merchants": [
"<string>"
]
}
},
"metadata": {
"card_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"debit_account": "<string>",
"purpose": "<string>"
},
"payment_type": "card"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}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
Spend limits for the card. per_transaction_limit is required; period and all-time limits are optional.
Show child attributes
Show child attributes
Display name for the card (max 30 characters).
1 - 30^[ -~]+$Restrict which merchants can authorize on this card. Omit to allow any merchant up to the spend limit.
Show child attributes
Show child attributes
Restrict the card to these merchant categories.
Advertising, Airlines, Books and Newspapers, Car Rental, Charity, Clothing, Electronics, Entertainment, Facilities Expenses, Financial Institutions and Fees, Fuel, Furniture, Government Services, Grocery, Ground Transportation, Insurance, Legal, Lodging, Meals, Medical, Office Supplies, Parking, Political, Professional Services, Recruiting, Rent, Restaurants, Shipping, Software, Taxes, Taxis and Rideshare, Technology Infrastructure, Training and Education, Utilities, Vehicle Expenses The account this card draws from, as a cash_account_ id from List Accounts. It must be one of your own open accounts. Omit to use the account this entity issues cards from by default.
"cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2"
A memo for your own records, recorded on the card's audit trail. It is never sent to the issuer or the merchant, so it does not appear on a statement and does not restrict what the card can buy.
1 - 500^[ -~]+$"Q3 ad spend for the Catnip Coffee Co launch"
When the card should stop working. Omit for a card that stays active until you revoke it. Cannot be further out than the issuer allows.
If true, the card is revoked automatically after the first authorization. If false, the card stays usable until expiry or explicit revoke.
Response
Successful Response
The limits and restrictions the card was issued with.
Show child attributes
Show child attributes
The card's identifier and your memo.
Show child attributes
Show child attributes
Always card, so you can tell this apart from a payment token response.
"card"