Skip to content
Last updated

Welcome to the Meow API documentation. This guide will help you get started with integrating our API into your application.

Prerequisites

  • A Meow account
  • An API key. You can get your API key from the Meow Dashboard

Authentication

The Meow API uses API key authentication. You'll need to include your API key in the x-api-key header with every request:

curl -H "x-api-key: YOUR_API_KEY" https://api.meow.com/v1/accounts

Available APIs and Endpoints

The Meow API provides comprehensive functionality for accessing your financial data, managing cryptocurrency transactions, and creating invoices:

Account Information

  • Accounts

    • GET /accounts - List all accounts
    • GET /accounts/{account_id} - Get account details
    • GET /accounts/{account_id}/payment-networks - Get payment networks supported by the account
  • Transactions

    • GET /accounts/{account_id}/transactions - List account transactions
  • Balances

    • GET /accounts/{account_id}/balances - Get account balances

Cryptocurrency Operations

  • Contacts Management

    • POST /contacts - Create a new contact
    • GET /contacts - List all contacts
    • GET /contacts/{contact_id} - Get contact details
    • PATCH /contacts/{contact_id} - Update a contact
    • DELETE /contacts/{contact_id} - Delete a contact
  • USDC Transfers

    • POST /accounts/{account_id}/usdc - Create a USDC transaction from a bank account
    • GET /accounts/{account_id}/transactions/{transaction_id} - Get USDC transaction details

Fund Transfers

  • Book Transfers

    • POST /accounts/{account_id}/book - Create internal book transfer between accounts
  • ACH Transfers

    • POST /accounts/{account_id}/ach - Create ACH transfer to external counterparty
    • POST /accounts/{account_id}/ach/scheduled - Create scheduled ACH transfer
    • GET /accounts/{account_id}/ach/scheduled - List scheduled ACH transfers
    • GET /accounts/{account_id}/achs/{ach_transfer_id} - Get ACH transfer details
  • Wire Transfers

    • POST /accounts/{account_id}/wire - Create wire transfer
    • GET /accounts/{account_id}/wires/{wire_transfer_id} - Get wire transfer details

Billing Operations

  • Products

    • GET /billing/products - List all products
    • POST /billing/products - Create a new product
    • GET /billing/products/{product_id} - Get product details
  • Customers

    • GET /billing/customers - List all invoicing customers
    • POST /billing/customers - Create a new invoicing customer
    • GET /billing/customers/{customer_id} - Get customer details
  • Invoices

    • GET /billing/invoices - List all invoices
    • POST /billing/invoices - Create a new invoice
    • GET /billing/invoices/{invoice_id} - Get invoice details
    • GET /billing/invoices/{invoice_id}/download - Download invoice as PDF
  • Line Items

    • GET /billing/invoices/{invoice_id}/line-items - List invoice line items
    • GET /billing/invoices/{invoice_id}/line-items/{line_item_id} - Get line item details
  • Payment Configuration

    • GET /billing/payment-method-types - Get available payment method types
    • GET /billing/accounts - List collection accounts for receiving payments

Bill Pay Operations

  • Bills
    • GET /bills - List all bills with optional status filtering
    • GET /bills/{bill_id} - Get bill details including line items

Utilities

  • Routing Numbers

    • GET /routing-numbers/{routing_number} - Validate routing number and get bank information
  • API Keys

    • GET /api-keys/accessible-entities - List entities accessible by current API key
    • GET /api-keys/current - Get metadata about the current API key

API Permissions

The API requires specific permissions for different operations:

  • accounts:read - View account information
  • accounts:balances - View account balances
  • accounts:transactions - View account transactions
  • accounts:statements - Access account statements
  • accounts:payment-networks - View account payment networks
  • contacts:read - View cryptocurrency contacts
  • contacts:write - Create and delete cryptocurrency contacts
  • transfers:usdc:write - Initiate USDC transfers
  • transfers:book:write - Create book transfers
  • transfers:ach:write - Create ACH transfers
  • transfers:wire:write - Create wire transfers
  • billing:products:read - View products
  • billing:products:write - Create and manage products
  • billing:customers:read - View invoicing customers
  • billing:customers:write - Create and manage customers
  • billing:invoices:read - View invoices and line items
  • billing:invoices:write - Create and manage invoices
  • billing:accounts:read - View collection accounts
  • billpay:read - View bills and bill details

Error Handling

The API uses standard HTTP status codes and returns detailed error messages. Here are the possible errors you might encounter:

Client Errors (4xx)

  • 400 Bad Request (Code: 400)

    • When the request parameters or body are invalid
  • 401 Unauthorized (Code: 401)

    • When the API key is invalid or missing
    • Obtain a valid key from the Meow Dashboard
  • 403 Forbidden (Code: 403)

    • When the API key lacks required permissions for the requested operation
    • Check that your API key has the necessary scopes for this endpoint
  • 404 Not Found (Code: 404)

    • When a requested resource doesn't exist
    • For accounts: Use /accounts to get a list of valid account IDs
  • 422 Validation Error (Code: 422)

    • When request validation fails
    • Check the error message for details on validation issues

Server Errors (5xx)

  • 500 Internal Server Error (Code: 500)
    • When an unexpected error occurs

Error Response Format:

{
  "code": 701,
  "message": "Account not found",
  "debug_message": "Account not found. Use /accounts to get a list of accounts and their IDs."
}

Best Practices

  1. Cache Responses: Cache API responses when appropriate to minimize API calls

  2. Error Handling: Always handle errors gracefully in your application

    • Implement proper error handling for all possible error codes
    • Contact support@meow.com when you need assistance
  3. Security:

    • Never expose your API key in client-side code
    • Rotate keys regularly using the Meow Dashboard
  4. USDC Operations:

    • Verify cryptocurrency addresses carefully before creating contacts
    • Give meaningful nicknames to contacts for easy identification
    • Use the contact's static_memo_id when creating USDC transfers
    • Start with small test transactions for new contacts
    • Monitor transaction status

Blockchain Network Support

The Meow API supports multiple blockchain networks for USDC transactions:

  • Ethereum
  • Solana
  • Base

When creating a contact, you must specify which network the cryptocurrency address belongs to.

Support

If you need help or have questions:

  • Email: support@meow.com
  • Support Portal: https://support.meow.com
  • API Status: https://status.meow.com