Jump to content

Steel, Mark

Moderators
  • Posts

    480
  • Joined

  • Last visited

  • Days Won

    35

Everything posted by Steel, Mark

  1. Hi Norman Did you change the callback URL registered against your app in https://developerselfservice.sageone.com/session/new? There should be no latency in you updating a callback url from developer self service. Thanks Mark
  2. Thanks for your feedback. I believe we're talking at cross purposes. This area of support is for the applications programming interface which is not effected by any form of transactional restriction. The import you mention is core user functionality. Issues and learning around usage can be discussed in the customer help centre which for UK users can be found at https://my.sage.co.uk/public/help.aspx#/contact?locale=uk&type=customer&product=sagebusinesscloudaccounting Alternatively, there are third party solutions that would offer the functionality you seek and can be found in our Sage Marketplace. Thanks Mark
  3. HI You could create each of the transactions as a sales_invoice artefact. They would be seen in the sales summary and left unpaid for your accountant to then process. You would however need to associate each sales_invoice against a customer contact. Thanks Mark
  4. If you're receiving payouts from 3rd party providers they are usually the net amount of Payment amount - Payment provider fees. They wouldn't cover the amount of the outstanding invoices. How do you intend to account for transaction/ebay fees? We've recently created the following guide which goes into a little more detail on the accounting side. Let me know if this flow would be the flow you are working towards. Thanks Mark
  5. Pleased you've been able to find the solution. I'm not sure I fully understand what you mean. The transactions area of the screen shot you have provided is for imported bank transactions or transactions incoming from a connected bank feed? To clarify, you would like to recreate the sales_invoice as per ebay in SBCA and then allocate the payment against the invoice? Are you using a Payment provider such as Paypal for your ebay shop? Thanks Mark
  6. I'm pleased you've been able to make some progress. Could you make the following requests please and provide the response here? GET https://api.accounting.sage.com/v3.1/bank_accounts/681587433c82410a89f3f4494b657174 GET https://api.accounting.sage.com/v3.1/ledger_accounts/b75e0d96c7f34b73bf3212b419878c1b Thanks Mark
  7. Hi Kelvin When partially or fully allocating a customer_receipt or supplier_payment, the originating transaction would still be returned by the contact_payments endpoint with the outstanding_amount reflecting the unallocated amount of the receipt. A new contact_payment is not created if only a partial amount is allocated. When a customer_receipt or supplier_payment is allocated to an artefact a contact_allocation record is created. I've attached the response for an unallocated customer_receipt, a partially allocated customer_receipt and the contact_allocation created after the allocation. Unallocated customer_receipt { "id": "31f05ad7ddcc4ad7b630841557e1722b", "displayed_as": "Cust Receipt", "$path": "/contact_payments/31f05ad7ddcc4ad7b630841557e1722b", "created_at": "2021-10-29T10:23:37Z", "updated_at": "2021-10-29T10:23:37Z", "links": [ { "href": "https://accounts-extra.sageone.com/advanced_uk/customer_income_payments/341592836", "rel": "alternate", "type": "text/html" } ], "transaction": { "id": "f60e04323e214c1eb7379459e0f33744", "displayed_as": "Cust Receipt", "$path": "/transactions/f60e04323e214c1eb7379459e0f33744" }, "transaction_type": { "id": "CUSTOMER_RECEIPT", "displayed_as": "Customer Receipt", "$path": "/transaction_types/CUSTOMER_RECEIPT" }, "payment_method": { "id": "CREDIT_DEBIT", "displayed_as": "Credit/Debit Card", "$path": "/payment_methods/CREDIT_DEBIT" }, "contact": { "id": "fcaeb413a8524020ba42606182b407c1", "displayed_as": "First Customer (1stCust)", "$path": "/contacts/fcaeb413a8524020ba42606182b407c1" }, "bank_account": { "id": "5942e91ca0ac4d13b96ed6bd9cd1f156", "displayed_as": "Bank Account (1200)", "$path": "/bank_accounts/5942e91ca0ac4d13b96ed6bd9cd1f156" }, "date": "2021-10-29", "net_amount": "0.0", "tax_amount": "0.0", "total_amount": "100.0", "currency": { "id": "GBP", "displayed_as": "Pound Sterling (GBP)", "$path": "/currencies/GBP" }, "exchange_rate": "1.0", "base_currency_net_amount": "0.0", "base_currency_tax_amount": "0.0", "base_currency_total_amount": "100.0", "base_currency_currency_charge": "0.0", "reference": "Cust Receipt", "allocated_artefacts": [], "tax_rate": null, "payment_on_account": { "id": "eb3e768589a64c2591d42b40217875c2", "displayed_as": "Cust Receipt", "$path": "/contact_payments/31f05ad7ddcc4ad7b630841557e1722b", "created_at": "2021-10-29T10:23:37Z", "updated_at": "2021-10-29T10:23:37Z", "contact_name": "First Customer", "contact_reference": "1stCust", "contact": { "id": "fcaeb413a8524020ba42606182b407c1", "displayed_as": "First Customer (1stCust)", "$path": "/contacts/fcaeb413a8524020ba42606182b407c1" }, "date": "2021-10-29", "reference": "Cust Receipt", "net_amount": "100.0", "tax_amount": "0.0", "total_amount": "100.0", "outstanding_amount": "100.0", "currency": { "id": "GBP", "displayed_as": "Pound Sterling (GBP)", "$path": "/currencies/GBP" }, "exchange_rate": "1.0", "base_currency_net_amount": "100.0", "base_currency_tax_amount": "0.0", "base_currency_total_amount": "100.0", "base_currency_outstanding_amount": "100.0", "status": { "id": "UNPAID", "displayed_as": "Unpaid", "$path": "/artefact_statuses/UNPAID" } }, "editable": true } Partially allocated customer_receipt { "id": "31f05ad7ddcc4ad7b630841557e1722b", "displayed_as": "Cust Receipt", "$path": "/contact_payments/31f05ad7ddcc4ad7b630841557e1722b", "created_at": "2021-10-29T10:23:37Z", "updated_at": "2021-10-29T10:28:38Z", "links": [ { "href": "https://accounts-extra.sageone.com/advanced_uk/customer_income_payments/341592836", "rel": "alternate", "type": "text/html" } ], "transaction": { "id": "f60e04323e214c1eb7379459e0f33744", "displayed_as": "Cust Receipt", "$path": "/transactions/f60e04323e214c1eb7379459e0f33744" }, "transaction_type": { "id": "CUSTOMER_RECEIPT", "displayed_as": "Customer Receipt", "$path": "/transaction_types/CUSTOMER_RECEIPT" }, "payment_method": { "id": "CREDIT_DEBIT", "displayed_as": "Credit/Debit Card", "$path": "/payment_methods/CREDIT_DEBIT" }, "contact": { "id": "fcaeb413a8524020ba42606182b407c1", "displayed_as": "First Customer (1stCust)", "$path": "/contacts/fcaeb413a8524020ba42606182b407c1" }, "bank_account": { "id": "5942e91ca0ac4d13b96ed6bd9cd1f156", "displayed_as": "Bank Account (1200)", "$path": "/bank_accounts/5942e91ca0ac4d13b96ed6bd9cd1f156" }, "date": "2021-10-29", "net_amount": "0.0", "tax_amount": "0.0", "total_amount": "100.0", "currency": { "id": "GBP", "displayed_as": "Pound Sterling (GBP)", "$path": "/currencies/GBP" }, "exchange_rate": "1.0", "base_currency_net_amount": "0.0", "base_currency_tax_amount": "0.0", "base_currency_total_amount": "100.0", "base_currency_currency_charge": "0.0", "reference": "Cust Receipt", "allocated_artefacts": [], "tax_rate": null, "payment_on_account": { "id": "eb3e768589a64c2591d42b40217875c2", "displayed_as": "Cust Receipt", "$path": "/contact_payments/31f05ad7ddcc4ad7b630841557e1722b", "created_at": "2021-10-29T10:23:37Z", "updated_at": "2021-10-29T10:28:38Z", "contact_name": "First Customer", "contact_reference": "1stCust", "contact": { "id": "fcaeb413a8524020ba42606182b407c1", "displayed_as": "First Customer (1stCust)", "$path": "/contacts/fcaeb413a8524020ba42606182b407c1" }, "date": "2021-10-29", "reference": "Cust Receipt", "net_amount": "100.0", "tax_amount": "0.0", "total_amount": "100.0", "outstanding_amount": "40.0", "currency": { "id": "GBP", "displayed_as": "Pound Sterling (GBP)", "$path": "/currencies/GBP" }, "exchange_rate": "1.0", "base_currency_net_amount": "100.0", "base_currency_tax_amount": "0.0", "base_currency_total_amount": "100.0", "base_currency_outstanding_amount": "40.0", "status": { "id": "PART_PAID", "displayed_as": "Part Paid", "$path": "/artefact_statuses/PART_PAID" } }, "editable": false } Contact Allocation { "id": "0116c21b757d40849fbd7c6418d9d1ba", "displayed_as": "Customer Allocation - 2021-10-29", "$path": "/contact_allocations/0116c21b757d40849fbd7c6418d9d1ba", "created_at": "2021-10-29T10:28:38Z", "updated_at": "2021-10-29T10:28:38Z", "links": [ { "href": "https://accounts-extra.sageone.com/advanced_uk/customer_allocations/341595775", "rel": "alternate", "type": "text/html" } ], "transaction": { "id": "7a0db27bcf654f0d8e111d4a53c08ab9", "displayed_as": null, "$path": "/transactions/7a0db27bcf654f0d8e111d4a53c08ab9" }, "transaction_type": { "id": "CUSTOMER_ALLOCATION", "displayed_as": "Customer Allocation", "$path": "/transaction_types/CUSTOMER_ALLOCATION" }, "date": "2021-10-29", "contact": { "id": "fcaeb413a8524020ba42606182b407c1", "displayed_as": "First Customer (1stCust)", "$path": "/contacts/fcaeb413a8524020ba42606182b407c1" }, "allocated_artefacts": [ { "id": "487c248afd604cd2abc4dfae7557882c", "artefact": { "id": "af401321111a40a082bd81212d9e83e8", "displayed_as": "SI-1", "$path": "/sales_invoices/af401321111a40a082bd81212d9e83e8", "links": [ { "href": "https://accounts-extra.sageone.com/invoicing/sales_invoices/af401321111a40a082bd81212d9e83e8", "rel": "alternate", "type": "text/html" }, { "href": "https://accounts-extra.sageone.com/advanced_uk/online_payment/gb03c71a2e65eba76e533318d18a53c66fcd96481f9eb02a264cc99e85db5178eb4bd9ff903b32d2b7ad5ddfeb891c47d2782ec816a92c2e1d2e8fbb5aca778904e79eb8603c3ebcb78e97ed1465563fa37b0453a61846201857f98a7843655cb3c11ffe52d4a8b5c39b53c07ba4a49fba", "rel": "bookmark", "type": "text/html" } ] }, "amount": "60.0" }, { "id": "ec6c894df95b47e3800f0816986b55e9", "artefact": { "id": "eb3e768589a64c2591d42b40217875c2", "displayed_as": "Cust Receipt", "$path": "/contact_payments/31f05ad7ddcc4ad7b630841557e1722b", "links": [ { "href": null, "rel": "alternate", "type": "text/html" } ] }, "amount": "-60.0" } ] } Thanks Mark
  8. Hi, thank you for your question. The Sage Business Cloud Accounting API provides the ability to create many different types of transactions. You don't state that any of the transactions are associated with contacts of the business so for that reason you would need to POST the transactions via the other_payments endpoint. You can find further information relating to receipts and payments in our API Reference. Thanks Mark
  9. Hi Kelvin, thank you for your question. The most common issue, is for the artefact_id param of the receipt/payment to be passed with the transaction_id or contact_payment_id value of the customer_receipt or vendor_payment. You need to ensure you are passing the payment_on_account_id of the unallocated customer_receipt. There's some further information relating to this in our Payments and Receipts guide. "payment_on_account": { "id": "8c6b711758544eb0bd1a6a5a44238dce", "displayed_as": "API Allocation", "$path": "/contact_payments/140fd1bfd9584841bc557392fce39f09", "created_at": "2021-10-25T08:21:34Z", "updated_at": "2021-10-25T08:46:38Z", "contact_name": "Mikes Insurance Services", "contact_reference": "MIB001", "contact": { "id": "959358c0b35d4443b3f8b4b41f6cd49d", "displayed_as": "Mikes Insurance Services (MIB001)", "$path": "/contacts/959358c0b35d4443b3f8b4b41f6cd49d" }, Please let us know if you require any further guidance. Thanks Mark
  10. Hi Alex, thank you for your question. The generating of a client from the swagger is not yet supported by ourselves. We are aware of integrations where this approach has worked after the swagger was amended to include the pagination information. Regards Mark
  11. Hi Sachin Thanks for providing me with access to your test account. I've confirmed all the id's for contacts, ledger and tax_rates etc and have been able to post the invoice with the following: { "purchase_invoice": { "contact_id": "f51cda25b2514b6da40c9d27a64ff20d", "date": "2021-10-19", "due_date": "2021-11-19", "reference":5086, "invoice_lines": [ { "description": "Lumabase 34510 Electric Luminaria Kit, Snowflake", "ledger_account_id": "9031a66ad4d611eb97fe124d8c407a59", "product_id": "34722c10b5884edb94ef98ce718abc11", "quantity": 1500, "tax_amount": 0.0, "tax_rate_id": "0cafb63d49524a3da6d1c8dd65899687", "unit_price": 16.3080, "unit_price_includes_tax": false } ] } } Looking at the code you provided it appears as if you are trying to set the invoice total values. You only need to provide the invoice_line values and the logic will take care of the rest. You also need to ensure you're setting the tax_rate_id. Regards Mark
  12. Hi Melvyn We cannot provide recommendations, but we can point you to our Sage Marketplace. The apps on the Sage Marketplace have passed validation with Sage and have generally been established for many years. From the marketplace you can filter the result by category and product. If you select from the product filter Sage 50c and Sage Business Cloud accounting, and then select the e-commerce category. There will be a number of results and from memory, I believe tradebox offer an integration with magento, this is not to say that the others do not. Let us know if you need any further direction. Regards Mark
  13. Hi Sachin Thank you for your question. Could you provide us with the following information please: The country the business is located in. If the business is registered for VAT if applicable The Supplier country location If the Supplier is registered for VAT Also, from the code snippet you provided, I cannot see a tax_rate being set.
  14. Hi Sachin, thank you for your question. Could you send us the failed request headers and body please. Thanks Mark
  15. Thanks for clarifying. The Sage Business Cloud Accounting API does not at present expose events that can be subscribed to for this purpose. There is however query parameters that can be passed to obtain results created or modified in the specified period. For example, if you wanted to return all of the sales_invoices created or modified since last week you could make a request as shown below. sales_invoices?updated_or_created_since=2021-09-20T00:00:00Z
  16. Hi Lawrence, welcome to the community. The answer to your question very much depends on the Sage product you are intending to integrate with. If you could let us know the product variant, we'll be able to direct you accordingly. Many thanks Mark
  17. Thanks Fabio We have a specific community forum for X3 where you will find support which can be found here. Thanks Mark
  18. Hi Sirbastian, thank you for your question. I'm presuming that you are trying to POST a sales_invoice to Sage Business Cloud Accounting when you say "SAGE"? The total_discount_amount is the total of discounts belonging to each of the item lines of the invoice. For example an invoice with three item lines each with a discount of 10.00 would mean the total_discount_amount = 30.00. It's not possible to set an invoice level discount in SBCA and discounts must be applied on a line by line basis. The example below shows how a discount can be set for an item line and the attached image shows the result in the SBCA UI. { "sales_invoice": { "contact_id": "7d5331e5a8204f35b8f0a801e85c834a", "date": "2021-09-15", "due_date": "2021-10-15", "invoice_lines": [ { "description": "Test Item Line", "ledger_account_id": "2c8d7ef0b3bb11ebb35d02665419b6eb", "quantity": 1, "tax_amount": 1.80, "tax_rate_id": "GB_STANDARD", "unit_price": 10, "unit_price_includes_tax": false, "discount_amount": 1.00 } ] } }
  19. HI Yeisson, welcome to the community! Sage 200 is not yet supported directly on the community. If you contact our colleagues at [email protected] and mention the product and your location, they'll be able to point you to the correct resources. Thanks Mark
  20. Hi Tadej, thank you for your question. To populate the tax_number of a customer contact, the number must be valid. For Spain, validation is 9 chars including 1 or 2 alpha chars. First or last, or first and last X12345678, 12345678X, X1234567X. If your request is still failing after ensuring the tax_number is valid, please post your request body for us to take a look at. If the Tax Number/NIF is set for the business and the contact it will display on the invoice as shown in the attached. Thanks Mark
  21. Hi Jake Thank you for your question. I responded in the general thread prior to reading this asking for some further information. From what you've supplied here I believe that the Stripe account was configured from within Sage Business Cloud Accounting. When the stripe account is created in this way, Sage Business Cloud Accounting creates a holding bank account for stripe payments named "Stripe". This is set as read only and transactions cannot be created via either the API or the WEB UI. This is due to Sage Business Cloud Accounting handling the payouts and invoice allocation through its internal logic. If for any reason there is an outstanding invoice that has been paid by Stripe and the payout is showing in the account, I would advise the business to contact the support team. Thanks Mark
  22. Hi Jake How do your stripe payouts appear in the Bank Account? A lot will depend on how your stripe account is configured within Sage Business Cloud Accounting. Was the registration for stripe payments setup through Sage Business Cloud Accounting or external to it? The payments need to be seen as customer receipts in order for them to be allocated in the API. Our Payments and Receipts guide offers further guidance on this. Thanks Mark
  23. Hi Stasin, thank you for your question. 30 days is the refresh token expiry time, 5 mins is the access token expiry. On expiry of an access token the refresh token is exchanged for a new access and refresh token. Further details are covered in the authentication guide. The URL you are using is the correct URL, but I'm unsure from the request example how you are expecting it to return the contact you created in the web UI? You seem to use the ID of a contact and then use the Href URL in the response to open the contact in the UI? You can add a search query param and set that to the contact name, business or ideally the ref - contacts?search=com001 to return the exact contact(if using the ref) or return a subset of contacts containing your query value if using the name or business. If you have access to more than one business, you'll need to ensure you are setting the request header with X-Business and the ID value of the business you are attempting to obtain the contacts from. You can quickly find out which businesses you have access to by making a GET request to the businesses endpoint. Our Demo Data POSTMAN collection contains a pre request script you can use to refresh the access token. This will prevent the need from manually needing to re auth every five minutes. If you send an email to [email protected] containing the email address of the trial account together with the region (FR, ES UKI etc) we can extend developer trial accounts for 12 mths. Thanks Mark
  24. Hi Connor, thank you for your question. This community is specifically aimed at the Sage Business Cloud Accounting API. For information and guidance around Sage 200, you'll need to contact our colleagues at [email protected]. Thanks Mark
  25. Hi Rafael, thank you for your question. To obtain the contact balance you need to pass the show_balance query parameter as in the partial request below. contacts/7d5331e5a8204f35b8f0a801e85c834a?show_balance=true Thanks Mark
×
×
  • Create New...