Jump to content

Ben Smith

  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Ben Smith

  1. Hi Everyone, We'd like to invite you all to join Sage on-screen at #SageDevStream Oct 28 to learn about our: ⚡ #Accounting API 🎱 @gosuperscript partnership 📡 Local market updates Registration is free so please come innovate ➡️https://bit.ly/39wjpTo
  2. Hi Daniel, Sorry for the delay. I've had a meeting this morning to figure this all out. Essentially the change from a string ID to a GUID has come about with recent changes made as part of the EU VAT reform updates we made. A new endpoint has been added called tax determinations which essentially returns a list of legislatively valid tax rates when queried along with params describing the usage etc. Due to the vastly increased number of rate combinations required and the way they are generated a GUID was used. It isn't a one off and won't be something we'll be in a position to change. I am however sorry that this hasn't been communicated prior to the change going into production. What we are recommending going forward is that you don't use the ID property to show information to the customer (allowing for selection etc.), and rather than concatenating name + id, just the displayed_as property instead, as that will remain a string description, and as you may have seen is in many instances in fact a better description than the ID & name were previously. I hope you are ok to make this change, and apologies again that we didn't get this information out prior to that release. Ben
  3. Thanks for this suggestion, to ensure its fed back to the right team can you advise which Sage product this is for please? Ben
  4. Hi John, Apologies for the delay in you getting a response. Unfortunately, although there have been many discussions in the past about APIs etc. for Sage 50cloud Accounts, at present you can integrate via the .NET SDK, and have read only access using ODBC queries. The only API connectivity at present is via our partner solutions that utilise a form of middle-ware connector. Ben
  5. Hi Jeeva, Can you confirm which product and region this is you are working with please? Ben
  6. Hi Roberto, Can you confirm is this Sage 200 UK or Spain? Ben
  7. Hi Melvyn, can you advise which Sage product you are looking to have this integrate with please? Ben
  8. Thanks a lot Daniel, that makes perfect sense. I'm discussing it with the engineering team at present and will update you as soon as I have more.
  9. Hi Daniel, Could you give me details on what specifically about the use of the GUID is breaking your integration please? Thanks
  10. Hi Daniel, Thank you for bringing this to my attention - I'll investigate and get back to you ASAP. Thanks, Ben
  11. Hi, If you are referring to the Sage 300 SDK here, please contact our Sage City community for assistance with Sage 300. Thanks!
  12. Hi Sethupathi, Thanks for providing those details. So this is an intermittent issue is that correct? Have you checked your own application logs? Can you also advise what language/framework you are using for this app please? Thanks, Ben
  13. Hi Tamuno, At this time the initial authentication requires a user to input credentials to successfully log in, then authorise an application to access the business. Once this has been done, it's then possible to utilise the refresh token to effectively keep the connection alive. Ben
  14. Hi Eugenia, 1. So the terminology used in that document refers to payments and receipts as payments out and payments in. Whenever you are using a csv import you must ensure that the value of payments out (so actual payments) are set to a -ve value. 2. You can import the following types of data: Chart of Accounts Customer and Supplier contacts Customer or Supplier opening balances Products or services Batches of Sales or Purchase quick entries Transactions via Opayo When creating credits via the quick entry batch import you can just leave all figures as positives as you state the Type in the first column (Cr Note / Invoice). 3. Sage Business Cloud Accounting has the concepts of Invoices or credits, so no Sales debit notes, only invoices. Ben
  15. Hi Fabio, Can you confirm which Sage product you are referring to please? Thanks Ben
  16. Hi, That makes sense then, and is something we will have to consider going forward for sure, and thanks for clarifying. We have a guide on pagination here which details the parameters provided. I would agree that using $next to reach the last page is the best option, and one I've suggested in the past. I'd be keen to see the tweak you have made, and will contact you separately about that. Ben
  17. Hi Tadej, I'll contact you via DM to get some further details. Ben
  18. Hi, Just to clarify in the client thats created by this tool - are you generating the code that handles the responses too? As in my experience its fairly common to use a tool to quickly create the classes/objects, and define the properties etc. via the swagger definition, but haven't specifically come across anyone else thats had an issue with the swagger definition not including the items and pagination metadata before. Ben
  19. Hi Mubasher, I discussed this with a colleague on a call yesterday about the use of the legacy_id (?show_legacy_id=true) which doesn't change in the reissued journal. I appreciate this will result in extra calls being made which isn't ideal. I'm investigating alternatives which I'll pass over should I find any. Ben
  20. Hi @Tadej Bukovec, this is still being investigated unfortunately, in the interim I'd suggest creating another application in the app registry to create a new set of credentials (client id, secret etc) and try that please? In testing I had to create another two before I got a working set. I'm pushing for this to be fixed and will update this thread as soon as I have more.
  21. Hi Norman, So in the payload here: payload = {'client_id': client_id, 'client_secret': client_secret, 'grant_type': 'authorization_code', 'code': accesstoken, 'redirect_uri': redirect_uri, 'code_verifier': code_verifier } You're passing the authorization code as the value of your 'accesstoken' variable? If so, what type is the accesstoken variable? Ben
  22. Hi, Thanks for your post, currently we do require the business to be a UK VAT registered in order to work correctly (as referred to in the pre-requisites), I'll make some changes to that based on your issue, to call out where to do it if you already have an existing business you want to work with. I appreciate the feedback thank you! Ben
  23. Hi Mike, Welcome to the community. Yes you are correct that in the case of Accounting the ledger_entries endpoint shows all 'nominal activity', and can be filtered by ledger_account_id. What I'd recommend is that post initial authentication, you make a call to the ledger_accounts endpoint, using the 'items_per_page=200' query param (you may also have to use pagination if there are more than 200!) to obtain a response for all ledger_accounts and their associated ids. You should cache that data at that point, and periodically ensure its updated (given that ledger accounts don't tend to be updated very often). Now that you have the cached ledger_account_id's you can pass the id for the ledger account you wish to look at the ledger_entries for example using: https://api.accounting.sage.com/v3.1/ledger_entries?ledger_account_id=be8e01824a9111e797950a12319b2edb Hope that helps! Ben
  24. Hi Norman, Welcome to the community 🙂 The Accounting API uses OAUTH 2.0 with an authorization code grant type, which requires 2 stages to obtain a valid access token. The initial step is to make an authorization request to https://www.sageone.com/oauth2/auth/central?filter=apiv3.1 You must include with this request the 'client_id', the 'response_type' of 'code' and your 'redirect_url'. It is this initial stage that prompts the user to authenticate with their Accounting credentials and authorize your app to access their business data. Once complete, they are redirected back to the specified callback URL along with an authorization code you require for the step you specified above. Obtain the authorization code from the URL, and then you can specify it as the value of 'code' in the payload you included above (where you now have an 'accesstoken' variable). This will provide you with a response, returning the access_token, refresh_token etc. We have a full guide on the steps required which can be found here: Authentication | Sage Developer I hope this helps, Ben
  25. Hi Christian, Yeah, I didn't specify the id for the invoice line as when making a PUT as I view it that you are essentially re-posting a revised version of the invoice, as if it were new, so you wouldn't know the id of the line anyway. Ideally we could use a PATCH request (which we don't have available unfortunately), where as I'm sure you are already aware, you could only include the details you want to update. I get the same issue as you when including the invoice line id, the product is not removed. So, with that in mind I'd essentially write the request body for your PUT as if it were a POST, but with the altered values. That being said, the EU customer issue looks to be a bug and after some investigation my colleague Mark has logged two tickets for investigation by the engineering API team which for your records the ticket numbers are AC-6232 and AC-6234. I don't have an ETA on when these will be looked at but will update you as soon as I can. Hope thats ok, Ben
  • Create New...