curl --request POST \
--url https://api.meow.com/v1/bills/{bill_id}/sync \
--header 'x-api-key: <api-key>'import requests
url = "https://api.meow.com/v1/bills/{bill_id}/sync"
headers = {"x-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.meow.com/v1/bills/{bill_id}/sync', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.meow.com/v1/bills/{bill_id}/sync"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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/{bill_id}/sync")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meow.com/v1/bills/{bill_id}/sync")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meow.com/v1/bills/{bill_id}/sync",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"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/{bill_id}/sync';
const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
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/{bill_id}/sync");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("x-api-key", "<api-key>");
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
val client = OkHttpClient()
val request = Request.Builder()
.url("https://api.meow.com/v1/bills/{bill_id}/sync")
.post(null)
.addHeader("x-api-key", "<api-key>")
.build()
val response = client.newCall(request).execute()import Foundation
let url = URL(string: "https://api.meow.com/v1/bills/{bill_id}/sync")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = ["x-api-key": "<api-key>"]
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>")
$response = Invoke-WebRequest -Uri 'https://api.meow.com/v1/bills/{bill_id}/sync' -Method POST -Headers $headers{
"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>"
}Sync Bill
Queues an already-mapped bill for another sync attempt with your accounting system.
curl --request POST \
--url https://api.meow.com/v1/bills/{bill_id}/sync \
--header 'x-api-key: <api-key>'import requests
url = "https://api.meow.com/v1/bills/{bill_id}/sync"
headers = {"x-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.meow.com/v1/bills/{bill_id}/sync', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.meow.com/v1/bills/{bill_id}/sync"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-api-key", "<api-key>")
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/{bill_id}/sync")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.meow.com/v1/bills/{bill_id}/sync")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.meow.com/v1/bills/{bill_id}/sync",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"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/{bill_id}/sync';
const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
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/{bill_id}/sync");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("x-api-key", "<api-key>");
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
val client = OkHttpClient()
val request = Request.Builder()
.url("https://api.meow.com/v1/bills/{bill_id}/sync")
.post(null)
.addHeader("x-api-key", "<api-key>")
.build()
val response = client.newCall(request).execute()import Foundation
let url = URL(string: "https://api.meow.com/v1/bills/{bill_id}/sync")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = ["x-api-key": "<api-key>"]
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>")
$response = Invoke-WebRequest -Uri 'https://api.meow.com/v1/bills/{bill_id}/sync' -Method POST -Headers $headers{
"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
Optional entity_id to scope requests to a specific entity.
Path Parameters
The bill ID.
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.