Jump to content

Matt Bradley

Members
  • Posts

    37
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Matt Bradley

  1. Usually, this work fine, but for some reason, the API is refusing to pay one particular invoice, claiming that we are attempting to overpay the invoice.

    Request:

    [contact_payment] =>
    (
    	[transaction_type_id] => CUSTOMER_RECEIPT
    	[contact_id] => 934b56e8d85e43efbf5815629eaac44f
    	[bank_account_id] => 4a7ee3e64df74deab20633d2e4d9af64
    	[date] => 2022-10-11T00:00:00+01:00
    	[total_amount] => 1497.36
    	[reference] => DA60235
    	[payment_method_id] => CREDIT_DEBIT
    	[allocated_artefacts] =>
    		(
    			[0] => Array
    				(
    					[artefact_id] => 23c914ddacc641f4b08d629e623abbab
    					[amount] => 1497.36
    				)
    
    		)
    
    )

    Response:

    [$severity] => error
    [$dataCode] => RecordInvalid
    [$message] => You cannot overpay invoices.
    [$source] => base
    [friendlyErrorMessage] => You cannot overpay invoices.

    Except that the invoice amount is 1497.36, and it is entirely unpaid.

    Screenshot 2022-10-27 at 10.18.01.png

  2. We're searching here for an invoice by its invoice reference, so this should be returning either 1 or 0 results. I suppose it is possible that the inner join is causing the query to timeout at the API server, but we wouldn't expect this search to be returning more than a single result.

  3. We're sending an API request which appears to be perfectly valid, but for some reason, generates a 500 error. Similar ContactPayments work fine, but this particular one generates a 500 error for some reason.

    [contact_payment] => 
    	(
    		[transaction_type_id] => CUSTOMER_REFUND
    		[contact_id] => d0fb3586396f4db69e90a7cebce81dcc
    		[bank_account_id] => 4b852dfa7a8e4f20b6fba63f2c6d25d8
    		[date] => 2022-09-22T00:00:00+01:00
    		[total_amount] => 4652
    		[reference] => DA59218-Refund-credit-bal
    		[payment_method_id] => CREDIT_DEBIT
    		[allocated_artefacts] => 
    			(
    				[0] => 
    					(
    						[artefact_id] => 26967b6ffa9d41bc92787ca4f9c8f12d
    						[amount] => 3526.00
    					)
    
    				[1] => 
    					(
    						[artefact_id] => f63314cca6614444ad4ffd64a0cf3a9f
    						[amount] => 1126.00
    					)
    
    			)
    
    	)

    The response is a 500 error from the API.

    Any ideas what's gone wrong here?

     

     

  4. We've just downloaded our first VAT report, and in the box 6 section, any transactions which were not elibible for VAT are missing, and not included in the Box 6 total. I'm pretty sure that this is wrong?

    "Box 6 - Total value of sales and all other outputs excluding any VAT. Include your box 8 figure"

    According to HRMC:

    "Box 6 total value of sales and all other outputs excluding any VAT
    Show the total value of all your business sales and other specific outputs but leave out any VAT. Some examples are:

    zero rate, reduced rate and exempt supplies
    fuel scale charges (read Motoring expenses (VAT Notice 700/64))
    exports
    supplies to EU member states, if the goods are moved from Northern Ireland (that is any figure entered in box 😎
    supplies of installed or assembled goods in the UK where the overseas supplier registers for VAT here
    distance sales to Northern Ireland which are above the distance selling threshold or, if below the threshold the overseas supplier opts to register for VAT in the UK
    reverse charge transactions (read paragraph 4.6)
    supplies which are outside the scope of UK VAT as described in Place of supply of services (VAT Notice 741A)
    deposits that an invoice has been issued for

    But, you do not include in box 6 any of the following:

    money you’ve personally put into the business
    loans, dividends and gifts of money
    insurance claims
    Stock Exchange dealings (unless you’re a financial institution)

    "

  5. We are an auction house, and we have vendor customers on behalf of whom we sell goods.

    In settling up with the vendor, we record an invoice from that customer for the hammer price of the goods, and raise an invoice to them for the seller fees. We then settle the fees invoice with some of the balance of the hammer price invoice from the customer, and make a payment out to the customer for the outstanding hammer price balance.

    However, it seems that it isn't possible in Sage for me to record in invoice TO and and invoice FROM the same customer. I can only raise invoice TO a "customer" and FROM a "Supplier" meaning that settling up the balances becomes extremely messy, and prone to error when sending payments via Sage API.

    Can anybody suggest a workaround? This is causing us endless problems.

  6. Thanks Mark,

    Trying that now. Interestingly, when I record a payment as "ELECTRONIC" it seems to report in Sage as "Credit / Debit Card"

     

    Array
    (
        [id] => 987
        [type] => payment
        [file_id] => 30000
        [action] => UPDATE
    )
    Array
    (
        [contact_payment] => Array
            (
                [transaction_type_id] => CUSTOMER_REFUND
                [contact_id] => 6dfe12a7f87142819ec192df13e8b834
                [bank_account_id] => 237dbe9738914ebc85a2d4e6d280f342
                [date] => 2022-09-05T00:00:00+01:00
                [total_amount] => 1500
                [reference] => DA30000-TEST
                [paymentmethod_id] => ELECTRONIC
                [allocated_artefacts] => Array
                    (
                        [0] => Array
                            (
                                [artefact_id] => 8de69723870545c5bcbd6b3027423876
                                [amount] => 820.00
                            )
    
                        [1] => Array
                            (
                                [artefact_id] => 172dfe40ed6944c39d08696fbb490436
                                [amount] => 100.00
                            )
    
                        [2] => Array
                            (
                                [artefact_id] => 0349934e5c7248e29a4541ca681c2c70
                                [amount] => 500.00
                            )
    
                        [3] => Array
                            (
                                [artefact_id] => ef91e0e85b374f37985942b04843bef8
                                [amount] => 80.00
                            )
    
                    )
    
            )
    
    )

     

    Screenshot 2022-09-05 at 15.02.49.png

  7. Array
    (
        [other_payment] => Array
            (
                [transaction_type_id] => OTHER_RECEIPT_REFUND
                [contact_id] => 6dfe12a7f87142819ec192df13e8b834
                [bank_account_id] => 237dbe9738914ebc85a2d4e6d280f342
                [date] => 2022-09-02T00:00:00+01:00
                [total_amount] => 340
                [reference] => DA29994-TEST
                [paymentmethod_id] => BANK_TRANSFER
                [payment_lines] => Array
                    (
                        [0] => Array
                            (
                                [ledger_account_id] => 77c265b9a8f711ecb2850279d0cc53c5
                                [total_amount] => 340.00
                                [tax_rate_id] => GB_NO_TAX
                            )
    
                    )
    
            )
    
    )

     

  8. I created a new test customer just to verify that what I thought was happening was indeed happening. And it is. This looks looks like a bug to me. In addition, I can actually allocate the incoming £500 deposit payment on account against ITSELF, doubling the customer's credit balance.

     

    Screenshot 2022-09-02 at 09.05.58.png

    Screenshot 2022-09-02 at 09.06.19.png

    Screenshot 2022-09-02 at 09.06.05.png

    Screenshot 2022-09-02 at 09.06.33.png

  9. We've created (Via the SBC API) a few other_payment OTHER_RECEIPT_REFUND payments. This is to deal with clearing off balance which a customer has accumulated by an overpayment, or a cash deposit which needs to be returned.

    However, these payments appear to be showing up is incoming payments on the customer account history, and they ADD to the customer's balance, rather than coming off it.

    (1) How do we fix this?
    (2) How do we clear / allocate customer balances against refunds so that the customer balance returns to £0?

    Screenshot 2022-09-02 at 08.48.42.png

    Screenshot 2022-09-02 at 08.49.02.png

  10. Apologies. Slight correction! The invoices are in fact there. So the API did create everything we expected it to, but it simply didn't respond back to us in a timely fashion, leading to the 504 response being logged in our system.

     

  11. Hi Mark,

    Sorry. It doesn't look like we've logged an x-request-id property in our error logs.

    This was a fairly rare scenario: a big settlement to an auction vendor for 808 lot entries in a single auction sale. For the time being, we've decided to aggregate large invoices like this into a single line item before posting to Sage API, so we do have a workaround.

    However, another issue has since come to light: despite the invoice creation failing with a 504, Sage API appears to have logged an entry for it in the Nominal Ledger. Each time our scheduled sync task retried creating this invoice, it failed, but a nominal ledger entry was created, we now have LOTS of nominal ledger entries in our reporting which refer to an invoice which does not exist in the system!

  12. Hi Mark,

    Is this what you're after?

     [x-amzn-RequestId] => cb7abf2b-a372-42e1-8e96-6a877f029ea6

    FWIW: in the meantime, I've decided to collapse lineitems on massive invoices to avoid this issue, as we're running into issues with packet size when logging requests in our database anyway, but it would be nice to know if this was fixable ultimately.

     

×
×
  • Create New...