Acumatica Reader
Note
This adapter is in preview and is available on Striim Developer only. See Striim Developer for more information.
Acumatica is a cloud-based Enterprise Resource Planning (ERP) platform designed to help businesses manage various aspects of their operations, including financials, customer relationships, distribution, manufacturing, and project management. The Acumatica Reader can connect with the Acumatica platform and read data from supported objects/tables.
Feature summary
Feature | Supported? | Notes | |
---|---|---|---|
Objects | Standard objects | ✓ | |
Custom objects | ✓ | ||
Authentication | Basic authentication | ✓ | Username and password |
OAuth authentication | ✓ | Manual configuration based | |
Custom authentication methods | Not all methods may be supported | ||
Operations | Automated mode | ✓ | |
Initial load | ✓ | ||
Pull-based incremental load | ✓ | ||
Push-based incremental load | |||
Automated pipeline | |||
Governance | Connection profile | ||
Sherlock AI | |||
Sentinel AI | |||
Schema handling | Initial schema creation | ✓ | Works with supported targets |
Schema evolution | |||
Setup | Wizard template | ||
Flow Designer | ✓ | ||
Striim TQL | ✓ | ||
Runtime | Resilience/recovery | ✓ | |
Parallel execution | |||
Metrics | ✓ | Standard metrics |
Supported authentication methods
The Acumatica Reader supports the choice of OAuth authentication or basic authentication, which you configure in the reader by setting the AuthMode
property. When configuring basic authentication, you provide the username and password for the Acumatica user account to authenticate against the Acumatica server.
When configuring OAuth authentication, you register an OAuth application in Acumatica, obtain OAuth credentials (a client ID and a client secret), and obtain an authorization code which you exchange for an access token and refresh token.
To register an OAuth application:
Use the Connected Applications (SM303010) form to register an OAuth 2.0 or OpenID Connect client application.
When you are registering the client application, ensure you are logged in to the tenant whose data the client application needs to access.
On the System tab, choose Integration. In the navigation pane, navigate to Configure > Connected Applications.
In Client Name, enter the name of the registered application.
In OAuth 2.0 Flow, select Authorization Code.
On the Secrets tab, do the following for each client secret you want to add:
On the tab toolbar, click Add Shared Secret.
In the Description, enter the description of the shared secret.
Optional: In the Expires On (UTC) box, enter the date and time on which the secret expires.
Copy and save the value displayed in Value. The client application will use this client secret for authentication in Acumatica ERP.
Click OK to save the secret.
On the Redirect URIs tab, do the following for each redirect URI you want to add:
On the tab toolbar, click Add Row.
In the Redirect URI column of the new row, type the exact redirect URI to which Acumatica ERP should redirect the client application after the client application has been authorized. The redirect URI must be absolute and must not have the fragment part (the part preceded with #).
On the form toolbar, click Save. Note that the client ID has been generated. The client application should use this client ID along with the client secret for authentication in Acumatica ERP.
To obtain the authorization code, and exchange it for an access token and refresh token:
Run the following command to obtain the Authorization code:
GET https://<Acumatica ERP instance URL>/identity/connect/authorize? response_type=code &client_id=<CLIENT_ID> &redirect_uri=<REDIRECT_URI> &scope=api%20offline_access
The user grants access to the requested scopes, and are redirected to the following URL, where the Authorization code can be found:
https://<REDIRECT_URI>/?code=<AUTHORIZATION_CODE>&scope=api%20offline_access
Run the following command to obtain the access token and refresh token:
POST /identity/connect/token HTTP/1.1 Host: https://<Acumatica ERP instance URL> Content-Type: application/x-www-form-urlencoded grant_type=<AUTHORIZATION_CODE> &code=rOBVT0nmPhaXlHeBpE81iJBrfIt5r7ud5_2czGYIr14 &client_id=<CLIENT_ID> &client_secret=<CLIENT_SECRET> &redirect_uri=<REDIRECT_URI>
A successful response has the body shown in the following example.
{ "access_token": "<ACCESS_TOKEN>", "refresh_token": "<REFRESH_TOKEN>", "expires_in": 3600, "token_type": "Bearer", "scope": "api offline_access" }
Note
The
refresh_token
parameter is returned only if theoffline_access
scope was granted.
Supported objects
The following are the supported objects for reading from Acumatica:
Account
AccountByPeriodInquiry
AccountByPeriodInquiry_Results
AccountBySubaccountInquiry
AccountBySubaccountInquiry_Results
AccountDetailsInquiry
AccountDetailsInquiry_Results
AccountLocation
AccountLocation_Address
AccountLocation_Cases
AccountLocation_Contact
AccountLocation_Opportunities
AccountSummaryInquiry
AccountSummaryInquiry_Results
Adjustment
Adjustment_Details
AttributeDefinition
AttributeDefinition_Values
Bill
Bill_Applications
Bill_Details
Bill_TaxDetails
BusinessAccount
BusinessAccount_Activities
BusinessAccount_Attributes
BusinessAccount_Campaigns
BusinessAccount_Cases
BusinessAccount_Contacts
BusinessAccount_Contracts
BusinessAccount_DefaultLocationSettings
BusinessAccount_Duplicates
BusinessAccount_Locations
BusinessAccount_MainAddress
BusinessAccount_MainContact
BusinessAccount_MarketingLists
BusinessAccount_Opportunities
BusinessAccount_Orders
BusinessAccount_Relations
BusinessAccount_ShippingAddress
BusinessAccount_ShippingContact
Carrier
Carrier_CustomerAccounts
Carrier_PlugInParameters
Case
Case_Activities
Case_Attributes
Case_RelatedCases
Case_Relations
CashSale
CashSale_Details
Check
Check_Details
Check_History
Contact
Contact_Activities
Contact_Address
Contact_Attributes
Contact_Campaigns
Contact_Cases
Contact_Duplicates
Contact_MarketingLists
Contact_Notifications
Contact_Opportunities
Contact_Relations
Contact_UserInfo
Currency
Customer
CustomerClass
CustomerClass_Attributes
CustomerLocation
CustomerLocation_LocationContact
CustomerPaymentMethod
CustomerPaymentMethod_Details
CustomerPriceClass
Customer_Attributes
Customer_BillingContact
Customer_Contacts
Customer_CreditVerificationRules
Customer_MainContact
Customer_PaymentInstructions
Customer_Salespersons
Customer_ShippingContact
Discount
DiscountCode
Discount_CustomerPriceClasses
Discount_Customers
Discount_DiscountBreakpoints
Discount_ItemPriceClasses
Discount_Items
Discount_Warehouses
Email
Email_TimeActivity
Employee
Employee_Contact
Employee_EmployeeCost
Employee_EmploymentHistory
Event
Event_Attendees
Event_RelatedActivities
Event_Reminder
Event_TimeActivity
FOBPoint
FinancialPeriod
FinancialPeriod_Details
InterBranchAccountMapping
InterBranchAccountMapping_TransactionsInDestinationBranch
InterBranchAccountMapping_TransactionsInSourceBranch
InventoryAllocationInquiry
InventoryAllocationInquiry_Results
InventoryReceipt
InventoryReceipt_Details
InventorySummaryInquiry
InventorySummaryInquiry_Results
Invoice
Invoice_ApplicationsCreditMemo
Invoice_ApplicationsDefault
Invoice_Details
Invoice_TaxDetails
ItemClass
ItemClass_Attributes
ItemWarehouse
JournalTransaction
JournalTransaction_Details
JournalVoucher
JournalVoucher_Details
JournalVoucher_GLTransactions
KitAssembly
KitAssembly_Allocations
KitAssembly_NonStockComponents
KitAssembly_StockComponents
KitSpecification
KitSpecification_NonStockComponents
KitSpecification_StockComponents
Lead
Lead_Activities
Lead_Address
Lead_Attributes
Lead_Campaigns
Lead_Duplicates
Lead_MarketingLists
Lead_Relations
LotSerialClass
LotSerialClass_Segments
NonStockItem
NonStockItem
NonStockItem_Attributes
NonStockItem_CrossReferences
NonStockItem_SalesCategories
NonStockItem_VendorDetails
Opportunity
Opportunity_Activities
Opportunity_Address
Opportunity_Attributes
Opportunity_ContactInformation
Opportunity_Discounts
Opportunity_Products
Opportunity_Relations
Opportunity_TaxDetails
Payment
PaymentMethod
PaymentMethod_AllowedCashAccounts
PaymentMethod_ProcessingCenters
Payment_ApplicationHistory
Payment_CreditCardProcessingInfo
Payment_DocumentsToApply
Payment_OrdersToApply
PhysicalInventoryReview
PhysicalInventoryReview_Details
ProjectTransaction
ProjectTransaction_Details
PurchaseOrder
PurchaseOrder_Details
PurchaseOrder_ShippingInstructions
PurchaseReceipt
PurchaseReceipt_Details
ReportingSettings
ReportingSettings_ReportingGroups
SalesInvoice
SalesInvoice_BillingSettings
SalesInvoice_Details
SalesInvoice_FreightDetails
SalesOrder
SalesOrder_BillToAddress
SalesOrder_BillToContact
SalesOrder_Commissions
SalesOrder_Details
SalesOrder_DiscountDetails
SalesOrder_FinancialSettings
SalesOrder_Payments
SalesOrder_ShipToAddress
SalesOrder_ShipToContact
SalesOrder_Shipments
SalesOrder_ShippingSettings
SalesOrder_TaxDetails
SalesOrder_Totals
SalesPriceWorksheet
SalesPriceWorksheet_SalesPrices
SalesPricesInquiry
SalesPricesInquiry_SalesPriceDetails
Salesperson
ShipVia
ShipVia_FreightRates
ShipVia_Packages
Shipment
Shipment_Details
Shipment_Orders
Shipment_Packages
Shipment_ShippingSettings
ShippingBox
ShippingTerm
ShippingTerm_Details
ShippingZones
StatementCycle
StockItem
StockItem_Attributes
StockItem_Boxes
StockItem_Categories
StockItem_CrossReferences
StockItem_ReplenishmentParameters
StockItem_SubItems
StockItem_UOMConversions
StockItem_VendorDetails
StockItem_WarehouseDetails
Subaccount
Task
Task_RelatedActivities
Task_RelatedTasks
Task_Reminder
Task_TimeActivity
Tax
TaxCategory
TaxCategory_Details
TaxZone
TaxZone_ApplicableTaxes
Tax_TaxSchedule
Tax_Zones
TransferOrder
TransferOrder_Details
TrialBalance
TrialBalance_Details
UnitsOfMeasure
Vendor
VendorClass
VendorClass_Attributes
VendorPriceWorksheet
VendorPriceWorksheet_VendorSalesPrices
VendorPricesInquiry
VendorPricesInquiry_VendorPriceDetails
Vendor_Attributes
Vendor_Contacts
Vendor_MainContact
Vendor_PaymentInstructions
Vendor_RemittanceContact
Vendor_ShippingContact
VoucherEntryCode
Warehouse
Warehouse_Locations
Acumatica Reader properties
Property | Type | Default value | Notes |
---|---|---|---|
Auth mode | Enum | You can specify Basic or OAuth authentication. | |
Company | String | Your Acumatica Company. | |
Endpoint version | String | The version of the endpoint. You can find available endpoints in Web Service Endpoints form in Acumatica ERP and their version under Endpoint Version. | |
Endpoint name | String | The name of the endpoint in Acumatica WebService which you wish to access. You can find available endpoints in Web Service Endpoints form in Acumatica ERP. | |
Username | String | The Acumatica user account used to authenticate. Together with Password, this field is used to authenticate against the Acumatica server. | |
Password | Password | The password used to authenticate the user. The User and Password are together used to authenticate with the server. | |
Client ID | String | Client ID of the OAuth app registered in the Acumatica platform. | |
Client secret | Password | Client secret of the OAuth app registered in the Acumatica platform. | |
Access token | Password | The access token for connecting using OAuth. The OAuthAccessToken is retrieved from the OAuth server as part of the authentication process. It has a server-dependent timeout and can be reused between requests. | |
Refresh token | Password | The OAuth refresh token for the corresponding OAuth access token. The OAuthRefreshToken property is used to refresh the OAuthAccessToken when using OAuth authentication. | |
Connection pool size | Integer | 20 | Specifies the maximum number of active connections. |
Exclude tables | String | A list of tables excluded from read operations. Typically used to create a list of exceptions when the Tables property includes wildcards. Misconfiguration of the Tables and Exclude Tables properties can cause "Invalid table names" errors. | |
Incremental load marker | String | The incremental load marker is a unique incremental column in each object used for incremental load. When no marker is specified, tables are resynced at each polling interval. Specify the name of the column that contains the start position value. This column must meet the following criteria:
| |
Migrate schema | Boolean | False | Only available in Initial Load or Automated mode. Set to |
Mode | Select list:
| Automated | Automated mode applies incremental updates to objects that support incremental load and performs full resyncs for objects that do not support incremental load. |
Polling interval | Integer | 5m | Specifies an interval as an integer followed by a unit. Supported units are days ( |
Start Position | String | %=-1 | Value of the incremental load marker that defines the initial reading position. |
Tables | String | A semicolon-delimited (;) list of objects to read from the source. Supports the | |
Thread pool count | Integer | 10 | The number of parallel running threads. The default value of zero specifies single-threaded operation. When the value of the thread pool counter is higher than the connection pool size, large data ingestion operations can cause the app to halt. Since best performance is achieved when using one thread for each table being synced, increasing the size of the connection pool to match the number of threads in use is a performance best practice. |
Url | String | The base URL of your Acumatica site. For example:https://domain.acumatica.com/entity/ |