Atlassian uses cookies to improve your browsing experience, perform analytics and research, and conduct advertising. Accept all cookies to indicate that you agree to our use of cookies on your device. Atlassian cookies and tracking notice, (opens new window)
/
Integrate your financial data with your accounting system using the API v2 Feeds
Learn how to use the API Feeds to integrate your Invoice and Payment data with your finance and accounting systems
There are many reasons that you may want to integrate your accessplanit platform with your finance system; you may wish to get rid of manual data entry so fewer mistakes happen, or you might be looking to save time by automating your invoicing processes, giving employees more time for important work, or your priority could be to share your data in real-time to accurately report and make informed financial decisions.
By integrating the financial data from your accessplanit platform into your central finance system, you can rely on the consistency of an integration, and analyse your financial information better alongside any financial data from other software. Additionally, as your business grows, the scalability of automation will allow you to handle more invoices and more transactions easily without much extra work!
While there are a number of different ways to integrate financial data between your accessplanit platform and your finance system, this guide will focus on our recommended best practice of using the accessplanit API v2 feeds. APIs give you real-time access to your data, they keep information consistent, and can grow with your needs, supporting custom data elements. Overall, APIs are a reliable and flexible way to link different systems and services together, making everything work together more easily.
Follow this page to learn the steps to integrate the financial data in your accessplanit platform with your finance/accounting system using the accessplanit v2 APIs.
1. Prerequisites
Before you start planning the details your integration, we recommend that you make sure you have everything you need for an integration
The following steps should be followed:
Ensure your connecting software is set up and supports Integrations via an API
Explore your options for how your integration will be created (who will be developing it)
Ensure your connecting software supports Integrations via an API
Before you begin planning your integration, we recommend confirming that your finance system will support the integration.
To confirm that an integration is possible, you should work with an internal expert or product owner, or your key contact from the finance system’s organisation. Here are several areas to confirm:
Check that your finance software is capable of supporting API integrations, this includes ensuring it can handle HTTP requests, and it supports data in a JSON data format.
Check that there are data 'endpoints' available for the key areas of data you wish to share between your accessplanit platform and the finance system, for example check that invoice and payment data endpoints exist so that you can integrate this data between the two systems.
Review the API documentation available for the finance system to understand if there are any specific requirements or compatibility needs that need to be considered.
Check that the APIs for your finance system are appropriately authenticated and protected to meet your internal security requirements.
Check if there are any additional licences/fees or permissions required to access and use the finance software’s APIs
Explore your options for how your integration will be created (who will be developing it)
Review your options for who could develop this integration for you; you may have an internal development team, an external third party that you have worked with before, or your finance software may have developer recommendations.
Here are a few of the considerations when deciding who will work on your integration:
Experience Working with a developer who has worked with finance systems previously is a benefit, particularly if they have experience with your specific finance software and/or accessplanit. They should be proficient in JSON and REST.
Quote and pricing models While it is unlikely that you will be able to request a quote at this stage, understanding their pricing model is important to know, some developers will charge a fixed price for a project, whereas others will charge a daily rate. Ensure that you are aware of what this quote includes, as some quotes also factor in additional services and support.
Reputation/reviews If it is your first time working with a third party developer, you may wish to ask for their reviews and/or testimonials.
Development process Understanding what methodology the developer follows helps to ensure their approach will fit into your process, for example if you need to be able to re-evaluate approaches and iterate throughout the project a ‘waterfall’ approach would not be suitable.
Timeline Understanding the developers availability and lead times is the first step to knowing if they will be able to deliver within your project timeframes, once you have scoped the integration during the next phase in 'planning' you will be able to confirm this.
Support Understand what support will be available to you post-launch (this should include technical assistance and bug fixes), and whether there are any additional charges for these services.
2. Planning your integration
In this step you will work with your developer to plan your integration
There are two key steps for planning your finance integration:
Understand common set-ups and best practice
Define what and how data will be shared within your integration
Understand common set-ups and best practice
There are three key processes that are typically factored into finance integrations:
Invoice generation Invoices are generated in accessplanit for processed bookings, the details of these are then sent to the finance system to be managed and reported on centrally
Processing payments and refunds (transactions) The details of payments and refunds processed in accessplanit are sent to the finance system, and any payments and refunds processed in the finance system are sent to accessplanit, this ensures both systems are a reliable source of information when reviewing the payment status of an Invoice
Invoice updates Any update to invoice information, such as a PO Number change or a due date change, are shared between the two systems, again this ensures both systems are a reliable source of information when reviewing Invoice details
Here are recommendations for each of the above processes, including example filters and data to use with each. For your integration planning, please note these examples are not exhaustive and additional data is available in each of the available endpoints.
a. Invoice is generated in your accessplanit platform
Process triggered
Automatically (via webhooks - coming soon), as soon as an Invoice is generated
Alternative: at the end of each day, all Invoices generated since the last time the integration ran are processed into the finance system
Filters applied
Only invoices with the following statuses should be included: ‘Outstanding’, ‘Part Completed’, ‘Completed’
Example optional filter: Only Invoices for specific Training Providers
Webhooks approach
Invoice Details:
Module = Invoice
Trigger = Create
Condition = Status - Is in - Outstanding, Part Completed, Completed
Invoice Item Details:
Module = InvoiceItem
Trigger = Create
Condition = n/a
API Feeds approach
Use accessplanit API v2 endpoints:
Invoice
InvoiceItem
Recommended data fields to include:
Invoice fields
ID (Invoice ID e.g. 109)
Reference (Invoice Reference e.g. INV000805)
DateCreated (Invoice Created Date e.g. 2025-12-01T13:23:59.297)
DateDue (Invoice Due Date e.g. 2025-12-04T13:23:59.297)
Amount (Invoice Total Amount e.g. 120.0)
Tax (Invoice Total Tax e.g. 20.0)
AmountPaid (Paid so far e.g. 100.0)
Outstanding (Remainder to pay e.g. 20.0)
Status (Invoice Status e.g. PartCompleted)
CurrencyCode (Currency e.g. GBP)
TargetID (ID of Customer paying e.g. CUST091HG.)
TargetLabel (Name of Customer paying e.g. Customer Ltd.)
TargetIDType (Either User or Company)
CompanyName (Training Provider issuing e.g. Training Company)
FullAddress (Invoice Address e.g. 1 New Road<br/>Lancaster<br/>Lancashire<br/>United Kingdon<br/>LA1 1AB)
PONumber (Purchase Order Number e.g. 1234)
Invoice Item fields
ID (Invoice Item ID e.g. 1187)
InvoiceID (Invoice ID e.g. 109)
Reference (Invoice Reference e.g. INV000805)
DynamicLabel (Label of the Invoice Item e.g. "First Aid at Work\r\n (19/12/2025 09:00 - 20/12/2025 12:00)"
SourceIDType (Type of Invoice item, e.g. CourseDate)
SourceID (ID of the Invoice Item’s Source i.e. the ID of the Course Date)
Amount (Invoice Item Amount e.g. 120.0)
Tax (Invoice Item Tax Amount e.g. 20.0)
b. Payment is recorded in your accessplanit platform
Process triggered
Automatically via webhooks, as soon as a payment is logged on an Invoice
Alternative: at the end of each day, all payments recorded since the last time the integration ran are processed into the finance system
Filters applied
Only transactions with a value over 0.00 are processed as payments
Example optional filter: Only transactions for your chosen Payment Gateway (i.e. Opayo, Stripe) are included
Webhook approach
Transaction Details:
Module = Transaction
Trigger = Create
Condition = Status - Is in - Completed
API Feeds approach
Use accessplanit API v2 endpoints:
TransactionInvoice
Recommended data fields to include:
TransactionID (Unique generated ID of the transaction e.g. SCLzgeeTrvjBfFh)
InvoiceID (Invoice ID e.g. 109)
InvoiceReference (Invoice Reference e.g. INV000805)
PayeeFullname (Name of User who processed the transaction e.g. Yvette Moreau)
TransactionMethodLabel (Type of payment made e.g. WorldPay)
DateCompleted (Date of transaction e.g. "2025-12-06T09:45:21.774)
Amount (Transaction value e.g. 100.0)
Tax (Transaction tax e.g. 16.67)
CurrencyCode (Currency e.g. GBP)
Status (Transaction status e.g. Completed)
ExternalTransactionID (Payment Gateway reference or Credit Note ID)
c. Payment is recorded in your finance system
Process triggered
Automatically, as soon as a payment is logged on an Invoice
Filters applied
Only transactions with a value over 0.00 are processed as payments
Only Invoices that originated in accessplanit should be included
Example optional filter: Only transactions recorded as BACS are included
Data included
Using accessplanit API v2 endpoints:
TransactionInvoice
Recommended data fields to include:
InvoiceID (Invoice ID e.g. 109)
ExternalTransactionID (e.g. Xero payment 1234)
Amount (Transaction value e.g. 100.0)
Tax (Transaction tax e.g. 16.67)
TransactionMethodLabel (Type of payment made e.g. WorldPay)
DateCompleted (Date of transaction e.g. "2025-12-06T09:45:21.774)
d. Refund is recorded in your accessplanit platform
Process triggered
Automatically via webhooks, as soon as a refund is recorded on an Invoice
Alternative: at the end of each day, all refunds recorded since the last time the integration ran are processed into the finance system
Filters applied
Only transactions with a value under 0.00 are processed as refunds
Example optional filter: Only transactions for your chosen Payment Gateway (i.e. Opayo, Stripe) are included
Webhooks approach
Transaction Details:
Module = Transaction
Trigger = Create
Condition = Status - Is in - Refund
API Feed approach
Use accessplanit API v2 endpoints:
TransactionInvoice
Recommended data fields to include:
TransactionID (Unique generated ID of the transaction e.g. SCLzgeeTrvjBfFh)
InvoiceID (Invoice ID e.g. 109)
InvoiceReference (Invoice Reference e.g. INV000805)
PayeeFullname (Name of User who processed the transaction e.g. Yvette Moreau)
TransactionMethodLabel (Type of refund made e.g. WorldPay)
DateCompleted (Date of transaction e.g. "2025-12-06T09:45:21.774)
Amount (Transaction value e.g. -100.0)
Tax (Transaction tax e.g. -16.67)
CurrencyCode (Currency e.g. GBP)
Status (Transaction status e.g. Refund)
ExternalTransactionID (Payment Gateway reference or Credit Note ID)
e. Refund is recorded in your finance system
Process triggered
Automatically, as soon as a refund is recorded on an Invoice
Filters applied
Only transactions with a value under 0.00 are processed as refunds
Only Invoices that originated in accessplanit should be included
Example optional filter: Only refund transactions recorded as BACS are included
Data included
Using accessplanit API v2 endpoints:
TransactionInvoice
Recommended data fields to include:
InvoiceID (Invoice ID e.g. 109)
ExternalTransactionID (e.g. Xero refund 6789)
Amount (Transaction value e.g. -100.0)
Tax (Transaction tax e.g. -16.67)
TransactionMethodLabel (Type of payment made e.g. WorldPay)
DateCompleted (Date of transaction e.g. "2025-12-06T09:45:21.774)
f. Invoice is updated in your accessplanit platform
Process triggered
Automatically via Webhooks, as soon as an Invoice is updated
Filters applied
Only invoices with the following statuses should be included: ‘Outstanding’, ‘Part Completed’, ‘Completed’
Example optional filter: Only Invoices for certain Training Providers
Webhooks approach
Transaction Details:
Module = Invoice
Trigger = Update
Condition = Status - Is in - Outstanding, Part Completed, Completed, Cancelled
API Feed approach
Using accessplanit API v2 endpoints:
Invoice
Recommended data fields to include:
ID (Invoice ID e.g. 109)
DateDue (Invoice Due Date e.g. 2025-12-04T13:23:59.297)
PONumber (Purchase Order Number e.g. 1234)
g. Invoice is updated in your finance system
Process triggered
Automatically, as soon as an Invoice is updated
Filters applied
Only Invoices that originated in accessplanit should be updated
Data included
Using accessplanit API v2 endpoints:
Invoice
Recommended data fields to include:
ID (Invoice ID e.g. 109)
DateDue (Invoice Due Date e.g. 2025-12-04T13:23:59.297)
PONumber (Purchase Order Number e.g. 1234)
Define what and how data will be shared within your integration
Once you have reviewed the common set-ups and best practice for finance integrations above, you should define the inputs and output for integrating your finance processes.
Work with your finance team, your developer, and the accessplanit team to define your integration! Here are the steps to follow for each process you want to integrate:
How will your integration for this process be triggered? Will it be triggered based on something being created or updated, e.g. when an Invoice is generated? Or will it be triggered periodically, such as once a day or once an hour?
Should any filters be applied? Would you like all invoices/transactions/credit notes to be included in your integration? Or would you like to apply filters to exclude some based on their status, value, related training provider?
What specific data should be shared and in what format? Which fields of data should be sent from one system to the other, and does the data need to be transformed in anyway for example adding the prefix of ‘ap’ to invoice and transaction references to identify them as originating in accessplanit?
3. Developing & testing your integration
In this step, your developer will create the integration between the two systems
Development
Please see our dedicated developer guide to access information and guidance for working with the API v2 feeds: API v2 - Developer Resources
Testing
Depending on your development methodology, we recommend to start testing early and continue to test during the development phase, rather than leaving testing to the very end of the project. Incorporating a combination of testing types; including Unit Tests, Integration Tests, and Functionality/UAT testing is important to ensure everything is working as expected.
During your Functional testing phase, you will test your integration against it's specific functionality requirements, this testing can be combined with User Acceptance Testing (UAT) which is where your users will complete tests using real-world data to test the integration. Within this tests you should include both valid and invalid data, to ensure correct information is successful, and incorrect information fails.
FAQs
Here are some common questions that we receive about the APIs and their answers
Is the data provided by the API v2 feeds in real-time? Yes, each API GET request you make will return real time data for that moment
Can I access historical data in the API v2 feeds? Yes, you can adjust your filters of your request to include or exclude historical data
What data formats are supported by the API v2? JSON
How is the data transmitted via the API to keep it secure? The APIs can only be accessed by users with API permissions, additionally the range of access is them limited by roles, this means that not every API User can access all endpoints. Tokens? Encrypted? HTTPS?
What is the module fee for accessing the API v2 feeds?
How do I get access to the API v2 feeds? Your initial API Access will be granted alongside the module purchase For any additional API Users please speak to your Optimise CSM and they will ensure your access is set up promptly
What are the rate limits for API v2 Requests?
How do I handle errors returned by the API?
Support
If you need any further support with building an integration with your finance system using the API Feeds, here are the steps to get in touch with us
, multiple selections available,
Contact Our Team
If you can't find what you're looking for, access our Support Portal, and our team of experts will be happy to help!