Using the Moneybird API to Get Recurring Invoices in PHP

by Endgrate Team 2024-07-04 5 min read

Moneybird homepage

Introduction to Moneybird API for Recurring Invoices

Moneybird is a comprehensive online accounting software designed to simplify financial management for businesses. It offers a range of features including invoicing, bookkeeping, and financial reporting, making it an essential tool for businesses looking to streamline their accounting processes.

Integrating with the Moneybird API allows developers to automate and manage recurring invoices efficiently. For example, a developer might use the Moneybird API to retrieve recurring invoice data, enabling seamless synchronization with other financial systems or applications. This can significantly enhance productivity by reducing manual data entry and ensuring accurate financial records.

Setting Up a Moneybird Sandbox Account for API Integration

Before you can start interacting with the Moneybird API, you'll need to set up a sandbox account. This allows you to test your integration without affecting real data. Moneybird provides a sandbox environment that offers full access to all features, ensuring a safe space for development and testing.

Creating a Moneybird User Account

If you don't already have a Moneybird account, you'll need to create one. Follow these steps:

  • Visit the Moneybird website and click on the "Sign Up" button.
  • Fill in the required information to create your account.
  • Once registered, log in to your Moneybird account.

Setting Up a Moneybird Sandbox Administration

With your Moneybird account ready, you can now create a sandbox administration:

  • Log in to your Moneybird account.
  • Navigate to the sandbox creation page.
  • Follow the instructions to create a new sandbox administration. This will provide you with a separate environment for testing API interactions.

Registering Your Application for OAuth Authentication

Moneybird uses OAuth2 for authentication, which requires you to register your application:

  • Go to the application registration page in your Moneybird account.
  • Register your application by providing the necessary details. You will receive a Client ID and Client Secret upon successful registration.

Obtaining Access Tokens for API Requests

To interact with the Moneybird API, you'll need to obtain an access token:

  1. Use the following command to obtain a request token and authorization URL:
    curl -vv 'https://moneybird.com/oauth/authorize?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&response_type=code'
  2. Redirect your user to the authorization URL. After authorization, Moneybird will provide a code.
  3. Exchange the code for an access token using this command:
    curl -vv -X POST -d "client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&code=YOUR_CODE&redirect_uri=YOUR_REDIRECT_URI&grant_type=authorization_code" https://moneybird.com/oauth/token

Store the access token securely, as it will be used in the Authorization header for all API requests.

For more detailed information, refer to the Moneybird authentication documentation.

Moneybird authentication documentation page.
sbb-itb-96038d7

Making API Calls to Retrieve Recurring Invoices with Moneybird in PHP

To interact with the Moneybird API and retrieve recurring invoices using PHP, you'll need to ensure your development environment is properly set up. This section will guide you through the necessary steps, including setting up PHP, installing required dependencies, and executing the API call.

Setting Up Your PHP Environment for Moneybird API Integration

Before making API calls, ensure you have the following prerequisites:

  • PHP 7.4 or higher installed on your machine.
  • Composer, the PHP package manager, for managing dependencies.

To install Composer, follow the instructions on the Composer download page.

Installing Required PHP Libraries for Moneybird API

You'll need the guzzlehttp/guzzle library to handle HTTP requests. Install it using Composer with the following command:

composer require guzzlehttp/guzzle

Executing the Moneybird API Call to Retrieve Recurring Invoices

With your environment set up, you can now make the API call to retrieve recurring invoices. Create a new PHP file named get_recurring_invoices.php and add the following code:


require 'vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client();
$accessToken = 'YOUR_ACCESS_TOKEN';
$administrationId = 'YOUR_ADMINISTRATION_ID';

$response = $client->request('GET', "https://moneybird.com/api/v2/$administrationId/recurring_sales_invoices.json", [
    'headers' => [
        'Authorization' => "Bearer $accessToken",
        'Content-Type' => 'application/json',
    ]
]);

$data = json_decode($response->getBody(), true);

foreach ($data as $invoice) {
    echo "Invoice ID: " . $invoice['id'] . "\n";
    echo "Contact: " . $invoice['contact']['company_name'] . "\n";
    echo "Total Price: " . $invoice['total_price_incl_tax'] . "\n\n";
}

Replace YOUR_ACCESS_TOKEN and YOUR_ADMINISTRATION_ID with your actual Moneybird access token and administration ID.

Verifying the Success of Your Moneybird API Request

Run the script using the following command:

php get_recurring_invoices.php

If successful, the script will output the details of the recurring invoices. You can verify the retrieved data by checking the recurring invoices in your Moneybird sandbox account.

Handling Errors and Moneybird API Response Codes

It's crucial to handle potential errors when making API calls. The Moneybird API may return various HTTP status codes, such as:

  • 200 OK: Request was successful.
  • 401 Authorization Required: Invalid or missing authorization information.
  • 429 Too Many Requests: Rate limit exceeded. The limit is 150 requests per 5 minutes.
  • 404 Not Found: Resource not found.

For more detailed error handling, refer to the Moneybird API documentation.

Moneybird API call documentation page.

Conclusion and Best Practices for Moneybird API Integration

Integrating with the Moneybird API to manage recurring invoices in PHP can greatly enhance your business's financial operations by automating repetitive tasks and ensuring accurate data synchronization. However, to make the most of this integration, it's essential to follow best practices.

Securely Storing Moneybird API Credentials

Ensure that your Moneybird API credentials, such as the access token, are stored securely. Avoid hardcoding them in your source code. Instead, use environment variables or secure vaults to manage sensitive information.

Handling Moneybird API Rate Limits

Moneybird enforces a rate limit of 150 requests per 5 minutes. To avoid hitting this limit, implement proper error handling and retry logic. Monitor the Retry-After header in the API response to determine when it's safe to retry a request.

Standardizing and Transforming Data Fields

When integrating with Moneybird, ensure that data fields are standardized and transformed as needed. This includes converting data formats and ensuring consistency across different systems to maintain data integrity.

Utilizing Endgrate for Efficient Integration Management

Consider using Endgrate to streamline your integration processes. Endgrate allows you to build once for each use case, reducing the need for multiple integrations. By outsourcing integrations, you can focus on your core product and provide an intuitive integration experience for your customers.

Explore how Endgrate can save you time and resources by visiting Endgrate's website.

For more information on integrating with Moneybird, refer to the Moneybird API documentation.

Read More

Ready to get started?

Book a demo now

Book Demo