Was befuddled by this one, then think i found the issue, but wanted to submit it to see if there's a better way, or if it can help someone else.
Essentially, I give users the option to create an account on my site, but I was only sending the API their email and password. When I went to checkout, and logged in as one of those new users, obviously the Billing Address Country field wasn't filled in. So I filled it in and went to checkout. On clicking checkout, I got a JS error that a data array was undefined. Found out if I clicked "Ship to Different Address" that the Shipping Address Country field wasn't filled out. When I filled that Shipping Address Country field out, the JS error went away, and I was able to finish my checkout.
Question is: do I need to send a default billing and/or shipping country with the api "customer_save" command? am i leaving something out here? shouldn't it be looking at the billing country - and disregarding the shipping country - if I'm shipping to the billing address?