I don't think it makes sense to have a CSRF filter when you are expecting the POST to come from another site. CSRF stands for Cross Site Request Forgery. It occurs when you are sent POST data from another site but you intended to get post data only from your own site.
The filter works by inserting a session token into your form and then checking the POST data contains a token matching the one stored in your session. This ensures that the request came from your site.
By using the CSRF filter, you can be certain that the incoming POST data is what you expected -- because you defined what was sent and which route it was sent to.
When the POST data is supposed to come from an outside site, this does not apply. They could send you anything. So all your filtering is done after the POST request. Applying the CSRF filter would just mean no one could use your API.
As for self-signed HTTPS:
The security of HTTPS does not depend on who signed the certificate. Verisign or yourself -- it makes no difference to the encryption and tunnelling. So for your own development on localhost, a self-signed certificate is perfectly fine.
However, a self-signed certificate is not trustworthy. The browsers trust a small number of agencies to verify the identity of a website. When you buy a SSL certificate, what you are really buying is an identity check -- a bit like a passport.
In some ways it's a bit of a racket, and money for old rope. But really, once you get out of development and into production, you need to buy a certificate to ensure user trust.