By iamcryptic · Posted
By iamcryptic · Posted
By grozavoron · Posted
IG | Sitemap | Terms and agreements | Privacy | How to fund | Cookies | About IG
Spread bets and CFDs are complex instruments and come with a high risk of losing money rapidly due to leverage. 69% of retail investor accounts lose money when trading spread bets and CFDs with this provider. You should consider whether you understand how spread bets and CFDs work, and whether you can afford to take the high risk of losing your money. Professional clients can lose more than they deposit. All trading involves risk.
The value of shares, ETFs and ETCs bought through a share dealing account, a stocks and shares ISA or a SIPP can fall as well as rise, which could mean getting back less than you originally put in. Past performance is no guarantee of future results.
CFD accounts provided by IG Markets Ltd, spread betting provided by IG Index Ltd and share dealing and stocks and shares ISA accounts provided by IG Trading and Investments Ltd. IG is a trading name of IG Markets Ltd (a company registered in England and Wales under number 04008957), IG Index Ltd (a company registered in England and Wales under number 01190902) and IG Trading and Investments Ltd (a company registered in England and Wales under number 11628764). Registered address at Cannon Bridge House, 25 Dowgate Hill, London EC4R 2YA. IG Markets Ltd (Register number 195355), IG Index Ltd (Register number 114059) and IG Trading and Investments Ltd (Register number 944492) are authorised and regulated by the Financial Conduct Authority.
The information on this site is not directed at residents of the United States, Belgium or any particular country outside the UK and is not intended for distribution to, or use by, any person in any country or jurisdiction where such distribution or use would be contrary to local law or regulation.
Question
KML
Dear all,
I'm having trouble deleting a position using the API. As I understand https://labs.ig.com/rest-trading-api-reference/service-detail?id=678, I'm supposed to send a DELETE request with a body. But isn't a DELETE-request supposed to be without a body?
The line
HttpRequest request = HttpRequest.newBuilder().uri(URI.create(uri))
.headers("Content-Type", "application/json; charset=UTF-8", "Accept", "application/json; charset=UTF-8",
"Version", "2", "IG-ACCOUNT-ID", CAI,
"X-IG-API-KEY", APIKEY, "CST", CST)
.method("DELETE", HttpRequest.BodyPublishers.ofString(body))
.build();
returns a 404 not found error, but if I change DELETE to POST as in
HttpRequest request = HttpRequest.newBuilder().uri(URI.create(uri))
.headers("Content-Type", "application/json; charset=UTF-8", "Accept", "application/json; charset=UTF-8",
"Version", "2", "IG-ACCOUNT-ID", CAI,
"X-IG-API-KEY", APIKEY, "CST", CST)
.method("POST", HttpRequest.BodyPublishers.ofString(body))
.build();
I get an expected error {"errorCode":"invalid.request.format.line-1.column-3"}. Does this mean that I'm supposed to use the POST method anyway? How does it then know that I',m deleting the position and not creating a new one?
I could of course delete a long position by creating a short position and vice versa, but that looks a bit messier.
Thanks for any help or clarifications.
Link to comment
6 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now