curl --request POST \
--url https://api.meow.com/v1/bills \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"idempotency_key": "<string>",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invoice_number": "<string>",
"bill_date": "2023-12-25",
"bill_due_date": "2023-12-25",
"description": "<string>",
"memo": "<string>",
"crypto_contact_destination_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"account_id": "<string>",
"rrule": "<string>",
"line_items": [
{
"amount": 123,
"description": "<string>",
"quantity": 1,
"split_group": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}
'import requests
url = "https://api.meow.com/v1/bills"
payload = {
"idempotency_key": "<string>",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invoice_number": "<string>",
"bill_date": "2023-12-25",
"bill_due_date": "2023-12-25",
"description": "<string>",
"memo": "<string>",
"crypto_contact_destination_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"account_id": "<string>",
"rrule": "<string>",
"line_items": [
{
"amount": 123,
"description": "<string>",
"quantity": 1,
"split_group": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}
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({
idempotency_key: '<string>',
contact_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
invoice_number: '<string>',
bill_date: '2023-12-25',
bill_due_date: '2023-12-25',
description: '<string>',
memo: '<string>',
crypto_contact_destination_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
account_id: '<string>',
rrule: '<string>',
line_items: [
{
amount: 123,
description: '<string>',
quantity: 1,
split_group: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
}
]
})
};
fetch('https://api.meow.com/v1/bills', 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/bills"
payload := strings.NewReader("{\n \"idempotency_key\": \"<string>\",\n \"contact_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"invoice_number\": \"<string>\",\n \"bill_date\": \"2023-12-25\",\n \"bill_due_date\": \"2023-12-25\",\n \"description\": \"<string>\",\n \"memo\": \"<string>\",\n \"crypto_contact_destination_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"account_id\": \"<string>\",\n \"rrule\": \"<string>\",\n \"line_items\": [\n {\n \"amount\": 123,\n \"description\": \"<string>\",\n \"quantity\": 1,\n \"split_group\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ]\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/bills")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"idempotency_key\": \"<string>\",\n \"contact_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"invoice_number\": \"<string>\",\n \"bill_date\": \"2023-12-25\",\n \"bill_due_date\": \"2023-12-25\",\n \"description\": \"<string>\",\n \"memo\": \"<string>\",\n \"crypto_contact_destination_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"account_id\": \"<string>\",\n \"rrule\": \"<string>\",\n \"line_items\": [\n {\n \"amount\": 123,\n \"description\": \"<string>\",\n \"quantity\": 1,\n \"split_group\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meow.com/v1/bills")
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 \"idempotency_key\": \"<string>\",\n \"contact_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"invoice_number\": \"<string>\",\n \"bill_date\": \"2023-12-25\",\n \"bill_due_date\": \"2023-12-25\",\n \"description\": \"<string>\",\n \"memo\": \"<string>\",\n \"crypto_contact_destination_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"account_id\": \"<string>\",\n \"rrule\": \"<string>\",\n \"line_items\": [\n {\n \"amount\": 123,\n \"description\": \"<string>\",\n \"quantity\": 1,\n \"split_group\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meow.com/v1/bills",
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([
'idempotency_key' => '<string>',
'contact_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'invoice_number' => '<string>',
'bill_date' => '2023-12-25',
'bill_due_date' => '2023-12-25',
'description' => '<string>',
'memo' => '<string>',
'crypto_contact_destination_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'account_id' => '<string>',
'rrule' => '<string>',
'line_items' => [
[
'amount' => 123,
'description' => '<string>',
'quantity' => 1,
'split_group' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]
]),
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/bills';
const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
idempotency_key: '<string>',
contact_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
invoice_number: '<string>',
bill_date: '2023-12-25',
bill_due_date: '2023-12-25',
description: '<string>',
memo: '<string>',
crypto_contact_destination_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
account_id: '<string>',
rrule: '<string>',
line_items: [
{
amount: 123,
description: '<string>',
quantity: 1,
split_group: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
}
]
})
};
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/bills");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("x-api-key", "<api-key>");
request.AddJsonBody("{\n \"idempotency_key\": \"<string>\",\n \"contact_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"invoice_number\": \"<string>\",\n \"bill_date\": \"2023-12-25\",\n \"bill_due_date\": \"2023-12-25\",\n \"description\": \"<string>\",\n \"memo\": \"<string>\",\n \"crypto_contact_destination_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"account_id\": \"<string>\",\n \"rrule\": \"<string>\",\n \"line_items\": [\n {\n \"amount\": 123,\n \"description\": \"<string>\",\n \"quantity\": 1,\n \"split_group\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ]\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 \"idempotency_key\": \"<string>\",\n \"contact_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"invoice_number\": \"<string>\",\n \"bill_date\": \"2023-12-25\",\n \"bill_due_date\": \"2023-12-25\",\n \"description\": \"<string>\",\n \"memo\": \"<string>\",\n \"crypto_contact_destination_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"account_id\": \"<string>\",\n \"rrule\": \"<string>\",\n \"line_items\": [\n {\n \"amount\": 123,\n \"description\": \"<string>\",\n \"quantity\": 1,\n \"split_group\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ]\n}")
val request = Request.Builder()
.url("https://api.meow.com/v1/bills")
.post(body)
.addHeader("x-api-key", "<api-key>")
.addHeader("Content-Type", "application/json")
.build()
val response = client.newCall(request).execute()import Foundation
let parameters = [
"idempotency_key": "<string>",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invoice_number": "<string>",
"bill_date": "2023-12-25",
"bill_due_date": "2023-12-25",
"description": "<string>",
"memo": "<string>",
"crypto_contact_destination_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"account_id": "<string>",
"rrule": "<string>",
"line_items": [
[
"amount": 123,
"description": "<string>",
"quantity": 1,
"split_group": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
]
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.meow.com/v1/bills")!
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/bills' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
"idempotency_key": "<string>",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invoice_number": "<string>",
"bill_date": "2023-12-25",
"bill_due_date": "2023-12-25",
"description": "<string>",
"memo": "<string>",
"crypto_contact_destination_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"account_id": "<string>",
"rrule": "<string>",
"line_items": [
{
"amount": 123,
"description": "<string>",
"quantity": 1,
"split_group": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "CANCELED",
"vendor_name": "<string>",
"creation_source": "USER",
"created_by": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"invoice_number": "<string>",
"description": "<string>",
"memo": "<string>",
"bill_date": "2023-12-25",
"bill_due_date": "2023-12-25",
"bill_total": "<string>",
"currency": "AED",
"payment_type": "ACH",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"category_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"category_name": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"submitted_at": "2023-11-07T05:31:56Z",
"submitted_by": "<string>",
"paid_at": "2023-11-07T05:31:56Z",
"paid_by": "<string>",
"scheduled_at": "2023-11-07T05:31:56Z",
"resolved_at": "2023-11-07T05:31:56Z",
"canceled_at": "2023-11-07T05:31:56Z",
"canceled_by": "<string>",
"bill_schedule_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ordinal": 123,
"line_items": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": "<string>",
"description": "<string>",
"type": "EXPENSE",
"amount_total": "<string>",
"quantity": "<string>",
"split_group": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"expense_account_external_id": "<string>",
"class_external_id": "<string>"
}
],
"bill_payment_details": {
"account_id": "<string>",
"payment_type": "ACH",
"currency": "AED",
"scheduled_payment_date": "2023-12-25",
"crypto_destination": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"destination_address": "<string>",
"destination_payment_rail": "arbitrum",
"destination_currency": "usdb",
"currency": "usdc",
"network": "ethereum",
"destination_tag": "<string>"
},
"ach_transfer_id": "<string>",
"wire_transfer_id": "<string>",
"crypto_transaction_hash": "<string>"
},
"additional_documents": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"url": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
],
"img_url": "<string>",
"rrule": "<string>",
"auto_approval_enabled": true,
"bill_sync_status": "synced",
"payment_sync_status": "synced",
"accounting_vendor": "QuickBooks",
"accounting_bill_id": "<string>",
"is_excluded_from_accounting": false
}{
"code": 123,
"message": "<string>",
"debug_message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}{
"error_code": "<string>",
"message": "<string>"
}Create Bill
Creates a bill as a draft for approval. The bill is not paid until someone approves it in the Meow dashboard; this never moves money on its own. Drafting is capped at 500 bills per rolling 24 hours per creator; creates past the cap return 429 Too Many Requests.
curl --request POST \
--url https://api.meow.com/v1/bills \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"idempotency_key": "<string>",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invoice_number": "<string>",
"bill_date": "2023-12-25",
"bill_due_date": "2023-12-25",
"description": "<string>",
"memo": "<string>",
"crypto_contact_destination_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"account_id": "<string>",
"rrule": "<string>",
"line_items": [
{
"amount": 123,
"description": "<string>",
"quantity": 1,
"split_group": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}
'import requests
url = "https://api.meow.com/v1/bills"
payload = {
"idempotency_key": "<string>",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invoice_number": "<string>",
"bill_date": "2023-12-25",
"bill_due_date": "2023-12-25",
"description": "<string>",
"memo": "<string>",
"crypto_contact_destination_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"account_id": "<string>",
"rrule": "<string>",
"line_items": [
{
"amount": 123,
"description": "<string>",
"quantity": 1,
"split_group": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}
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({
idempotency_key: '<string>',
contact_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
invoice_number: '<string>',
bill_date: '2023-12-25',
bill_due_date: '2023-12-25',
description: '<string>',
memo: '<string>',
crypto_contact_destination_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
account_id: '<string>',
rrule: '<string>',
line_items: [
{
amount: 123,
description: '<string>',
quantity: 1,
split_group: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
}
]
})
};
fetch('https://api.meow.com/v1/bills', 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/bills"
payload := strings.NewReader("{\n \"idempotency_key\": \"<string>\",\n \"contact_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"invoice_number\": \"<string>\",\n \"bill_date\": \"2023-12-25\",\n \"bill_due_date\": \"2023-12-25\",\n \"description\": \"<string>\",\n \"memo\": \"<string>\",\n \"crypto_contact_destination_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"account_id\": \"<string>\",\n \"rrule\": \"<string>\",\n \"line_items\": [\n {\n \"amount\": 123,\n \"description\": \"<string>\",\n \"quantity\": 1,\n \"split_group\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ]\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/bills")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"idempotency_key\": \"<string>\",\n \"contact_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"invoice_number\": \"<string>\",\n \"bill_date\": \"2023-12-25\",\n \"bill_due_date\": \"2023-12-25\",\n \"description\": \"<string>\",\n \"memo\": \"<string>\",\n \"crypto_contact_destination_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"account_id\": \"<string>\",\n \"rrule\": \"<string>\",\n \"line_items\": [\n {\n \"amount\": 123,\n \"description\": \"<string>\",\n \"quantity\": 1,\n \"split_group\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meow.com/v1/bills")
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 \"idempotency_key\": \"<string>\",\n \"contact_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"invoice_number\": \"<string>\",\n \"bill_date\": \"2023-12-25\",\n \"bill_due_date\": \"2023-12-25\",\n \"description\": \"<string>\",\n \"memo\": \"<string>\",\n \"crypto_contact_destination_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"account_id\": \"<string>\",\n \"rrule\": \"<string>\",\n \"line_items\": [\n {\n \"amount\": 123,\n \"description\": \"<string>\",\n \"quantity\": 1,\n \"split_group\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meow.com/v1/bills",
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([
'idempotency_key' => '<string>',
'contact_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'invoice_number' => '<string>',
'bill_date' => '2023-12-25',
'bill_due_date' => '2023-12-25',
'description' => '<string>',
'memo' => '<string>',
'crypto_contact_destination_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'account_id' => '<string>',
'rrule' => '<string>',
'line_items' => [
[
'amount' => 123,
'description' => '<string>',
'quantity' => 1,
'split_group' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]
]),
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/bills';
const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
idempotency_key: '<string>',
contact_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
invoice_number: '<string>',
bill_date: '2023-12-25',
bill_due_date: '2023-12-25',
description: '<string>',
memo: '<string>',
crypto_contact_destination_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
account_id: '<string>',
rrule: '<string>',
line_items: [
{
amount: 123,
description: '<string>',
quantity: 1,
split_group: '3c90c3cc-0d44-4b50-8888-8dd25736052a'
}
]
})
};
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/bills");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("x-api-key", "<api-key>");
request.AddJsonBody("{\n \"idempotency_key\": \"<string>\",\n \"contact_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"invoice_number\": \"<string>\",\n \"bill_date\": \"2023-12-25\",\n \"bill_due_date\": \"2023-12-25\",\n \"description\": \"<string>\",\n \"memo\": \"<string>\",\n \"crypto_contact_destination_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"account_id\": \"<string>\",\n \"rrule\": \"<string>\",\n \"line_items\": [\n {\n \"amount\": 123,\n \"description\": \"<string>\",\n \"quantity\": 1,\n \"split_group\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ]\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 \"idempotency_key\": \"<string>\",\n \"contact_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"invoice_number\": \"<string>\",\n \"bill_date\": \"2023-12-25\",\n \"bill_due_date\": \"2023-12-25\",\n \"description\": \"<string>\",\n \"memo\": \"<string>\",\n \"crypto_contact_destination_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"account_id\": \"<string>\",\n \"rrule\": \"<string>\",\n \"line_items\": [\n {\n \"amount\": 123,\n \"description\": \"<string>\",\n \"quantity\": 1,\n \"split_group\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n ]\n}")
val request = Request.Builder()
.url("https://api.meow.com/v1/bills")
.post(body)
.addHeader("x-api-key", "<api-key>")
.addHeader("Content-Type", "application/json")
.build()
val response = client.newCall(request).execute()import Foundation
let parameters = [
"idempotency_key": "<string>",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invoice_number": "<string>",
"bill_date": "2023-12-25",
"bill_due_date": "2023-12-25",
"description": "<string>",
"memo": "<string>",
"crypto_contact_destination_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"account_id": "<string>",
"rrule": "<string>",
"line_items": [
[
"amount": 123,
"description": "<string>",
"quantity": 1,
"split_group": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
]
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.meow.com/v1/bills")!
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/bills' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
"idempotency_key": "<string>",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invoice_number": "<string>",
"bill_date": "2023-12-25",
"bill_due_date": "2023-12-25",
"description": "<string>",
"memo": "<string>",
"crypto_contact_destination_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"account_id": "<string>",
"rrule": "<string>",
"line_items": [
{
"amount": 123,
"description": "<string>",
"quantity": 1,
"split_group": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
]
}'{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "CANCELED",
"vendor_name": "<string>",
"creation_source": "USER",
"created_by": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"invoice_number": "<string>",
"description": "<string>",
"memo": "<string>",
"bill_date": "2023-12-25",
"bill_due_date": "2023-12-25",
"bill_total": "<string>",
"currency": "AED",
"payment_type": "ACH",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"category_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"category_name": "<string>",
"updated_at": "2023-11-07T05:31:56Z",
"submitted_at": "2023-11-07T05:31:56Z",
"submitted_by": "<string>",
"paid_at": "2023-11-07T05:31:56Z",
"paid_by": "<string>",
"scheduled_at": "2023-11-07T05:31:56Z",
"resolved_at": "2023-11-07T05:31:56Z",
"canceled_at": "2023-11-07T05:31:56Z",
"canceled_by": "<string>",
"bill_schedule_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ordinal": 123,
"line_items": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"amount": "<string>",
"description": "<string>",
"type": "EXPENSE",
"amount_total": "<string>",
"quantity": "<string>",
"split_group": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"expense_account_external_id": "<string>",
"class_external_id": "<string>"
}
],
"bill_payment_details": {
"account_id": "<string>",
"payment_type": "ACH",
"currency": "AED",
"scheduled_payment_date": "2023-12-25",
"crypto_destination": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"destination_address": "<string>",
"destination_payment_rail": "arbitrum",
"destination_currency": "usdb",
"currency": "usdc",
"network": "ethereum",
"destination_tag": "<string>"
},
"ach_transfer_id": "<string>",
"wire_transfer_id": "<string>",
"crypto_transaction_hash": "<string>"
},
"additional_documents": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"url": "<string>",
"created_at": "2023-11-07T05:31:56Z"
}
],
"img_url": "<string>",
"rrule": "<string>",
"auto_approval_enabled": true,
"bill_sync_status": "synced",
"payment_sync_status": "synced",
"accounting_vendor": "QuickBooks",
"accounting_bill_id": "<string>",
"is_excluded_from_accounting": false
}{
"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.
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^[!-~]+$Optional entity_id to scope requests to a specific entity.
Body
Deprecated: send the key in the Idempotency-Key header instead. When both are sent they must match.
1 - 50The vendor this bill is payable to. The vendor must already exist as a contact.
The vendor's invoice number.
The date on the bill (YYYY-MM-DD), between 1900-01-01 and 2099-12-31.
The date the bill is due (YYYY-MM-DD), between 1900-01-01 and 2099-12-31.
A short description of the bill.
An internal memo (up to 140 characters).
How the bill will be paid once approved: ACH, WIRE, CHECK, or CRYPTO. Defaults to ACH.
ACH, WIRE, CHECK, CRYPTO Which of the vendor's saved crypto addresses to pay, taken from the contact's payment_methods.crypto[].id. Required when payment_type is CRYPTO, and rejected otherwise.
The account to pay from, in the same id format returned by GET /accounts. Defaults to your configured bill pay account when omitted.
The bill's currency. Defaults to USD.
AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SLE, SEK, SGD, SHP, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWG, ZWL RFC 5545 RRULE string. Required: DTSTART, RRULE. Allowed frequencies: WEEKLY, MONTHLY.
1 - 120The line items that make up the bill.
Show child attributes
Show child attributes
Response
Successful Response
Identifier for this bill.
The current status of the bill.
CANCELED, DRAFT_PROCESSING, DRAFT, PAYMENT_INFO_NEEDED, PENDING, APPROVED, REJECTED, SCHEDULED, PAYMENT_INITIATED, PAYMENT_DELIVERED, PAYMENT_FAILED, PAYMENT_CANCELED The name of the vendor.
How the bill was created.
USER, EMAIL, SCHEDULE Who created the bill.
The creation timestamp.
The invoice number.
Description of the bill.
Memo for the bill.
The bill date.
The due date.
The total amount of the bill.
^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$The bill's currency.
AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SLE, SEK, SGD, SHP, SLL, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, USN, UYI, UYU, UYW, UZS, VED, VES, VND, VUV, WST, XAF, XAG, XAU, XBA, XBB, XBC, XBD, XCD, XDR, XOF, XPD, XPF, XPT, XSU, XTS, XUA, XXX, YER, ZAR, ZMW, ZWG, ZWL How this bill is paid: ACH, WIRE, CHECK, CRYPTO, or INTERNATIONAL_PAYMENT_FX.
ACH, CRYPTO, INTERNATIONAL_PAYMENT_FX, WIRE, CHECK The ID of the associated contact.
The spend category this bill is coded to, if any.
The name of the spend category, if any.
The last-updated timestamp.
When the bill was submitted for approval.
Who submitted the bill.
The paid timestamp.
Who paid the bill.
The scheduled payment timestamp.
When the bill was resolved.
When the bill was canceled.
Who canceled the bill.
The recurring schedule this bill belongs to, if any.
The bill's position in its recurring schedule (template is 0).
Line items for the bill.
Show child attributes
Show child attributes
How this bill will be paid once approved: the funding account, payment type, currency, and scheduled date.
Show child attributes
Show child attributes
Documents attached to the bill, each with a download URL.
Show child attributes
Show child attributes
A short-lived URL to download the bill's primary document.
RFC 5545 RRULE string. Required: DTSTART, RRULE. Allowed frequencies: WEEKLY, MONTHLY.
1 - 120Whether the recurring schedule auto-approves generated bills.
Sync status of the bill to your accounting integration.
synced, requires_sync, sync_complete, sync_failed Sync status of the payment to your accounting integration.
synced, requires_sync, sync_complete, sync_failed The accounting integration this bill syncs to, if any.
QuickBooks, Xero, NetSuite, Puzzle, Ramp, Stripe, Wave, Relay, Mastercard The bill's ID in your accounting system, once it has synced there.
Whether this bill was excluded from accounting sync. An excluded bill reports no sync status, same as one that never synced.