ac000 / libmtdac Goto Github PK
View Code? Open in Web Editor NEWA C library providing an interface to the UK's HMRC Make Tax Digital API
License: GNU Lesser General Public License v2.1
A C library providing an interface to the UK's HMRC Make Tax Digital API
License: GNU Lesser General Public License v2.1
It may be useful to add a datestamp to the JSON replies.
Main things to decide are the format and UTC or localtime.
Such as libmtdac.3 and the libmtdac_mtd-* files and libmtdac-result_buffer (or maybe that should go into 5?)
There is a new endpoint validation-feedback in the 'Test Fraud Prevention Headers' API.
To make it clear this is for UK properties as there has since been a /individuals/self-assessment/income-summary/{nino}/foreign-property endpoint added.
As according to here
From 30 November 2021 the following endpoints will be deprecated:
- Submit self employment end of period statement
- Submit UK property end of period statement
Above two are replaced with individuals-business-eops-api
individuals-business-eops-api implemented by 12c23c3
- Get a UK property business
Already been deprecated and handled in libmtdac by 215cffa
- Retrieve all UK property business obligations
- Retrieve End of Period Statement Obligations for a UK Property Business
Above two are replaced by the obligations-api
obligations api added to libmtdac by bda805a
- Intent to crystallise
- Crystallisation
Above two are replaced by the individual-calculations-api
Crystallisation functions added to the obligations api in libmtdac by 95d2071
For the /individuals/self-assessment/income-summary/{nino}/foreign-property endpoint.
We also now (at least seem to be in the process) have crystalisation endpoints in here. IIRC I read somewhere HMRC are in the process of mocing various endpoints out of the Self-Assessment API into their own endpoint APIs (indeed this has already happened with at least BISS)
There seems to be some confusion as to whether the device UUID which is described as
An identifier unique to the originating device.
You need to generate a universally unique identifier (UUID), also
known as a globally unique identifier (GUID), to use as a device IDThis should be generated by an application and persistently stored on
the device. You can store the device ID in a hidden file, the Windows
registry, or in a cookie.The identifier should not expire
If your end user deletes the device ID, you need to generate a new one.
should be per application or actually per device. As HMRC said this to me (when checking what fraud prevention headers I'm sending)
The value submitted for Gov-Client-Device-ID was the same for the 'mtd-cli' requests as it was for the 'itsa' requests. Can you please explain why this is the case?
Now they would normally be different but it seems I currently have tham as the same, probably from doing some testing/config stuff.
But perhaps they really should be the same. Waiting to hear back from them.
In my latest dealings with HMRC in trying to get production credentials for itsa & mtd-cli, it was noted mtd-cli may be more tricky as it support both the ITSA and VAT APIs.
We can perhaps make this is a little easier by splitting mtd-cli into two virtual parts within HMRC, say mtd-cli-itsa & mtd-cli-vat where each can have its own credentials.
This would require doing something similar to commit 1b4f55b ("mtd: Introduce per API authorisation scope namespace") but for the client_id & client_secret .
Log an error message for failed openat(2) calls.
Error check the json_dumpfd() call.
For some reason after doing a .nf for 'no fill', I had been doing a .ni to re-enable it. It should be .fi instead.
Something like
#define VERSION "2.0"
#define API_VER "Accept: application/vnd.hmrc." VERSION "+json"
Just makes it a bit easier to see at a glance what the version is.
While testing the Fraud Prevention Headers feedback endpoint, it is showing the following
{
"header": "gov-client-local-ips-timestamp",
"value": "2021-07-16T16:01:34.79Z",
"code": "POTENTIALLY_INVALID_HEADER",
"errors": [],
"warnings": [
"Value must be a UTC timestamp including milliseconds"
]
},
Using the validate endpoint doesn't show any problem with this, e.g sending
Gov-Client-Local-IPs-Timestamp: 2021-08-03T17:08:14.193Z
does not produce any warning.
Need to investigate what exactly is going on here.
We currently have support for
/accounts/self-assessment/{nino}/payments/{paymentId}
/accounts/self-assessment/{nino}/payments
/accounts/self-assessment/{nino}/charges/{transactionId}
/accounts/self-assessment/{nino}/charges
/accounts/self-assessment/{nino}/transactions/{transactionId}
/accounts/self-assessment/{nino}/transactions
/accounts/self-assessment/{nino}/balance
But we seem to be missing support for the 'Coding Out Underpayments and Debts' endpoints, I must have missed these being added...
/accounts/self-assessment/{nino}/{taxYear}/collection/tax-code
PUT & DELETE
/accounts/self-assessment/{nino}/{taxYear}/collection/tax-code
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.