Meow Approvals API

The Approvals API from Meow — 1 operation(s) for approvals.

OpenAPI Specification

meow-approvals-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Meow Accounts Approvals API
  description: '## Overview


    The Meow API provides financial services and billing capabilities for your business.


    ### Core Features


    - **Financial data access**: access account information, transactions, balances, and payment networks.

    - **Crypto operations**: create and manage crypto contacts, and initiate USDC transfers across blockchain networks.


    ### Billing API


    The Billing API lets you create and manage invoices and collect payments:


    - **Product management**: create and manage products with custom pricing.

    - **Customer management**: maintain invoicing customers with their addresses.

    - **Invoice creation**: generate invoices with line items, discounts, and custom notes.

    - **Payment options**: accept payments via ACH, wire, international wire, card, and USDC.

    - **Collection accounts**: configure accounts for payment collection.


    ### Getting Started


    Authenticate by sending your API key in the `x-api-key` request header.


    To scope requests to a specific entity, include the `x-entity-id` header. Use the `/api-keys/accessible-entities` endpoint to list all entities accessible by your API key.


    ### Error Responses


    Errors return JSON with `code`, `message`, and `debug_message`. The `code` aligns with FDX where possible; use `debug_message` for troubleshooting only.


    Common error codes:


    - `500`: Internal server error

    - `501`: Subsystem unavailable

    - `503`: Scheduled maintenance

    - `601`: Data not found

    - `602`: Customer not authorized

    - `701`: Account not found

    - `703`: Invalid input (including invalid date ranges)

    - `704`: Account type not supported

    - `705`: Account is closed

    - `801`: Transaction not found

    '
  contact:
    name: Meow
    url: https://meow.com/
    email: support@meow.com
  version: 1.0.0
  license:
    name: Proprietary
    url: https://www.meow.com/terms-of-service
servers:
- url: https://api.meow.com/v1
  description: Meow API Production
- url: https://api.sandbox.meow.com/v1
  description: Meow API Sandbox
security:
- apiKeyAuth: []
tags:
- name: Approvals
paths:
  /approvals/{approval_id}:
    get:
      tags:
      - Approvals
      summary: Get Approval
      description: Returns the status and details of an approval request, including how many approvals are required and how many have been received.
      operationId: get_approval_approvals__approval_id__get
      parameters:
      - name: approval_id
        in: path
        required: true
        schema:
          type: string
          title: Approval Id
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApprovalResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - apiKeyAuth:
        - accounts:read
components:
  schemas:
    ApprovalTransferHandle:
      properties:
        id:
          type: string
          title: Id
        transfer_type:
          $ref: '#/components/schemas/TransferMethod'
        status:
          $ref: '#/components/schemas/TransferStatus'
      type: object
      required:
      - id
      - transfer_type
      - status
      title: ApprovalTransferHandle
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    InitiatorIdentityType:
      type: string
      enum:
      - web_user
      - user_api_key
      - entity_api_key
      - mcp_oauth
      - cli_key
      - partner_api_key
      title: InitiatorIdentityType
      x-enum-varnames:
      - web_user
      - user_api_key
      - entity_api_key
      - mcp_oauth
      - cli_key
      - partner_api_key
    ApprovalStatus:
      type: string
      enum:
      - pending_approval
      - approved
      - executing
      - completed
      - rejected
      - expired
      - failed
      title: ApprovalStatus
    TransferStatus:
      type: string
      enum:
      - pending
      - pending_approval
      - canceled
      - processing
      - error
      - sent
      - returned
      - void
      title: TransferStatus
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    TransferMethod:
      type: string
      enum:
      - book
      - usdc
      - usdt
      - pyusd
      - cash
      - usdg
      - ach
      - wire
      title: TransferMethod
    Timestamp:
      type: string
      format: date-time
      title: Timestamp
      description: ISO 8601 date-time in the format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]` (per [IETF RFC 3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)).
    ApprovalResponse:
      properties:
        approval_id:
          type: string
          format: uuid
          title: Approval Id
        status:
          $ref: '#/components/schemas/ApprovalStatus'
        action_type:
          anyOf:
          - $ref: '#/components/schemas/ActionType'
          - type: 'null'
        transfer_type:
          anyOf:
          - $ref: '#/components/schemas/TransferMethod'
          - type: 'null'
        amount:
          anyOf:
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Amount
        counterparty_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Counterparty Id
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        initiator:
          $ref: '#/components/schemas/Initiator'
        approvals_required:
          type: integer
          title: Approvals Required
        approvals_received:
          type: integer
          title: Approvals Received
        approver_display_names:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Approver Display Names
        security_policy_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Security Policy Id
        created_time:
          $ref: '#/components/schemas/Timestamp'
        expires_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
        executed_transfer:
          anyOf:
          - $ref: '#/components/schemas/ApprovalTransferHandle'
          - type: 'null'
        rejection_reason:
          anyOf:
          - type: string
          - type: 'null'
          title: Rejection Reason
      type: object
      required:
      - approval_id
      - status
      - initiator
      - approvals_required
      - approvals_received
      - created_time
      title: ApprovalResponse
    ActionType:
      type: string
      enum:
      - manage_users_and_policies
      - send_money
      title: ActionType
    Initiator:
      properties:
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        public_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Public Id
        api_key_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Api Key Id
        api_key_nickname:
          anyOf:
          - type: string
          - type: 'null'
          title: Api Key Nickname
        identity_type:
          $ref: '#/components/schemas/InitiatorIdentityType'
          default: web_user
        user_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: User Id
        display:
          $ref: '#/components/schemas/DisplayInitiator'
          readOnly: true
      type: object
      required:
      - display
      title: Initiator
    DisplayInitiator:
      properties:
        primary:
          type: string
          title: Primary
      type: object
      required:
      - primary
      title: DisplayInitiator
  parameters:
    EntityIdHeader:
      name: x-entity-id
      in: header
      required: false
      schema:
        type: string
        format: uuid
      description: Optional `entity_id` to scope requests to a specific entity.
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your Meow API key, sent in the `x-api-key` header for authentication.
      x-scopes:
      - accounts:read
      - accounts:write
      - accounts:payment-networks
      - accounts:transactions
      - accounts:balances
      - accounts:statements
      - accounts:tax-documents
      - entity:create
      - transfers:crypto:write
      - transfers:usdc:write
      - transfers:ach:write
      - transfers:wire:write
      - transfers:book:write
      - contacts:read
      - contacts:write
      - billing:products:read
      - billing:products:write
      - billing:customers:read
      - billing:customers:write
      - billing:invoices:read
      - billing:invoices:write
      - billing:accounts:read
      - billpay:read
      - billpay:write
      - onboarding:read
      - onboarding:write
      - cards:read
      - cards:write
      - webhooks:read
      - webhooks:write
      - partner:onboarding:read
      - partner:onboarding:write
      - partner:webhooks:read
      - partner:webhooks:write
      - simulations:write
      - banking:limits:read
      - banking:limits:write
x-tagGroups:
- name: Core API
  tags:
  - API Keys
  - Contacts
  - Accounts
  - Transactions
  - Balances
  - Payment Networks
  - Transfers
  - Routing Numbers
  - Cards
  - Tax Forms
  - Webhooks
- name: Bill Pay
  tags:
  - Bills
- name: Billing
  tags:
  - Products
  - Customers
  - Invoices
  - Line Items
  - Payment Methods
  - Collection Accounts
- name: Partner Onboarding
  tags:
  - Partner Onboarding
- name: Sandbox
  tags:
  - Simulations