Back

Wave API Essential Guide

Aug 11, 20246 minute read

What type of API does Wave provide?

Based on the search results provided, I do not have any specific information about what type of API Wave uses (e.g. REST, GraphQL, SOAP). The search results contain general information comparing different API types, but do not mention Wave specifically.

Without more details about Wave's API, I cannot definitively state what type they use. To determine this, we would need to:

  1. Check Wave's official API documentation, if available.
  2. Look for any developer resources or guides provided by Wave.
  3. Examine the structure and endpoints of Wave's API, if accessible.

In general, modern web APIs tend to use REST or GraphQL architectures more commonly than SOAP these days. However, without specific information about Wave's API, I cannot make any definitive claims about which type they have implemented.

If you need to know the exact API type used by Wave, I would recommend:

  1. Checking Wave's official developer documentation or API reference.
  2. Contacting Wave's developer support team directly.
  3. Examining any sample API requests or responses, if available, to infer the API structure.

Does the Wave API have webhooks?

Yes, the official Wave API does support webhooks.

Wave webhooks allow you to subscribe to various event types, including:

  • Checkout session completed (checkout.session.completed)
  • Merchant payment received (merchant.payment.received)
  • Other events related to changes in your Wave account

Key details about Wave webhooks:

  • You can register webhook endpoints to receive event notifications from Wave
  • When an event occurs, Wave sends a POST request to the registered webhook URLs
  • The webhook request body contains an Event object with details about the event
  • You need to verify the webhook signature to ensure it came from Wave
  • Wave will retry failed webhook deliveries for up to 3 days
  • You can test webhooks using example requests provided in the documentation
  • Webhooks are secured using a secret that is included in the request headers

Webhook registration and management:

  • Webhooks can be managed in the Developers section of the Wave Business Portal
  • To register a webhook, you provide the endpoint URL, security strategy, and select event types
  • You receive a secret when registering a webhook that must be kept secure
  • Wave recommends occasionally rotating webhook secrets for security

In summary, Wave offers a robust webhook system that allows you to receive real-time notifications for various events related to your Wave account, with built-in security and testing features.

Rate Limits and other limitations

Here's a summary of the API Rate Limits for the Wave API:

Rate Limiting

The Wave API implements rate limiting to prevent abuse and maintain performance for all users [4]. The key points regarding rate limits are:

  • If you send too many requests in a short period, you may receive 429 error responses [4].
  • The API is a shared service, and users are advised to limit API calls to no more than 2 simultaneous requests [2].
  • Exceeding this limit may result in rate limiting being implemented for your account [2].

Key Considerations

  • The rate limiting is designed to ensure optimal speed and availability for all users [2].
  • Wave reserves the right to set limits on the number of API requests that can be made, at their sole discretion [3].
  • Users agree to these limitations and should not attempt to circumvent them [3].

Best Practices

  1. Implement proper error handling in your application to deal with 429 responses.
  2. Design your application to respect the 2 simultaneous requests guideline.
  3. Consider implementing backoff and retry logic for rate limit errors.
  4. Monitor your API usage to ensure you're staying within the limits.

Additional Information

  • For faster analysis on unlimited URLs, Wave offers a stand-alone API option [2].
  • Wave may establish limits on the number of users that can install your application, which they may increase upon request [3].

It's important to note that while these are the current rate limits, Wave reserves the right to modify these limits. Always refer to the most up-to-date documentation for the latest information on rate limits and best practices for using the Wave API.

Latest API Version

Based on the search results provided, the most recent version of the Wave API appears to be version 3.1. Here are the key points:

Version History

  • Version 3.1 was released on September 22, 2020 [2].
  • Version 3.0 was released on October 30, 2019 [2].

Key Features of Version 3.1

  1. Contrast data:

    • The API now returns a contrastdata item for Low Contrast Text instances when reporttype is set to 3 or 4 [2].
    • This includes WCAG contrast ratio, foreground and background hex colors, and a true/false indicator for "large" text [2].
  2. New WAVE items:

    • Several new items were added, including figure, region, youtube_video, list_possible, select_missing_label, and image_title [2].
  3. Functionality changes:

    • Chrome rendering engine for back-end analysis [2].
    • User agent string customization [2].
    • CSS selector outputs [2].
    • Numerous bug fixes and performance improvements [2].

Best Practices

  • When using the Wave API, make sure to use the latest version (3.1) to benefit from the most recent features and improvements.
  • Be aware of the new items and functionality changes when updating from an older version to ensure your implementation remains compatible.

It's important to note that while this information is based on the search results provided, you should always check the official Wave API documentation for the most up-to-date information on versions and features.

How to get a Wave developer account and API Keys?

To get a developer account for Wave and create an API integration, you'll need to follow these steps:

  1. Create a Wave business account:

    • You need to have a Wave business account to access the API.
  2. Access the Wave Business Portal:

    • Log in to your Wave business account and navigate to the Business Portal.
  3. Enable API access:

    • Only Admin users can access the Developer section in the Business Portal. If you're an Admin but can't see it, contact API support to enable it.
  4. Obtain your API key:

    • In the Developer section of the Wave Business Portal, you can manage API keys.
    • You can create, view, and revoke keys, and define which specific APIs each key has access to.
  5. Copy and securely store your API key:

    • When you create a new API key, you will only see the full key once. Make sure to copy it without missing any characters, as it will be masked afterwards for security reasons.

Key points to consider:

  • API keys are bound to a single business wallet and can only interact with it.
  • If you need to interact with more than one wallet, you'll need to obtain one key per wallet.
  • Keep your API key secret. Don't share it or store it anywhere but your own servers.
  • Use HTTPS for all API requests and include the API key in the Authorization header.

Code example for authentication:

const axios = require('axios'); const api_key = "wave_sn_prod_YhUNb9d...i4bA6"; axios.get('https://api.wave.com/v1/some-endpoint', { headers: { 'Authorization': `Bearer ${api_key}`, 'Content-Type': 'application/json' } }) .then(response => { console.log(response.data); }) .catch(error => { console.error(error); });

Best practices:

  1. Secure your API key: Never expose it in client-side code or public repositories.
  2. Use rate limiting: Wave APIs have rate limits to prevent abuse. Handle 429 error responses appropriately.
  3. Error handling: Implement proper error handling for different HTTP status codes.
  4. Keep up to date: Regularly check the Wave API documentation for any updates or changes.

By following these steps and best practices, you can set up a developer account for Wave and start creating API integrations for your applications.

What can you do with the Wave API?

Based on the provided search results, I can provide information about the data models you can interact with using the Wave API. Here's a list of bullet points going over what is possible for each data model:

Invoices

  • An invoice is an itemized record of goods sold or services provided to a customer.
  • You can sync invoice data using the Wave API.
  • It's possible to read invoice information, including department, class, and location data.

Bills

  • Bills represent an itemized record of goods purchased from or service provided by another company.
  • You can sync bill data using the Wave API.
  • It's possible to read bill information, including department, class, and location data.

Financial Statements

  • You can interact with various financial statements using the Wave API:

    1. Income Statements:

      • Shows a company's financial performance over a period, including income and expenditures.
      • You can read and sync income statement data.
    2. Balance Sheets:

      • Reports a business' assets, liabilities, and shareholders' equity during a specified period.
      • You can read and sync balance sheet data.
    3. Cash Flow Statements:

      • Provides aggregate data regarding all cash inflows a company receives from its ongoing operations and external investment sources.
      • You can read and sync cash flow statement data.

Expenses

  • You can sync expense data using the Wave API.
  • This likely includes the ability to read and manage expense information.

Additional Data Models

While not explicitly mentioned in the search results, based on common accounting practices and the capabilities mentioned, it's possible that the Wave API also allows interaction with:

  • Customer data
  • Vendor data
  • Product or service data
  • Account information
  • Tax data

General Capabilities

  • The Wave API allows you to sync financial reports and other accounting data.
  • It provides a unified data model that can be used across multiple platforms, potentially saving time on data transformation and mapping.
  • The API is designed to power integrated products, suggesting it offers comprehensive access to Wave's accounting data.

Please note that the specific details and extent of interaction possible with each data model may vary. For the most accurate and up-to-date information, it would be best to consult the official Wave API documentation.