How can a user cancel their Amazon FPS recurring token? - recurring-billing

The Amazon FPS documentation says in several places that a customer can cancel their recurring payment token at any time from Amazon's UI, and that Amazon will then notify the application that the token has been cancelled. I'd like to test this.
How does a user do that?
As a test user, I see nothing in my Amazon Payments UI that shows my existing recurring payment tokens so I can cancel them. Googling for an answer gives me lots of results explaining how my application can cancel the token, but none explaining how the user can cancel their own token behind my app's back.

You should see any tokens that your account has authorized in Your Account > Edit My Account Settings > Manage my payment authorizations.
From there you should be able to cancel your reoccurring token.

Related

cancel Apple inapp Purchase api

I need to cancel an Apple API subscription from backend (when a user deletes their account for example).
There is an API call to verify receipts, but I cannot find one to cancel. I looked at apple developer doc but could not find it.
Is there such an API? If not, what is the correct way to do this?
Unfortunately, there is no API to cancel a subscription. User have to do it themselves in the manage subscription screen.
For their convenience, you could provide a link to that screen in your app or via an email.

Yodlee get_accounts sometimes returns zero result / empty response

Here is the scenario:
User logins to the bank successfully (via Fastlink)
Right after user logs in, I get user's provider_accounts (via /providerAccounts API)
Then when I call to get the accounts, (via /accounts) I sometimes get empty response (zero accounts found?)
When I try later (seconds or minutes after) I get some accounts information back.
Is this because Yodlee is still trying to gather account information when I'm making /accounts api call?
This is because the accounts are still being added/linked.
Using the requestId and providerAccountId provided by FastLink callback, you need to poll continuously to know the refresh status of the account linking process and once it's done, you can call the get accounts.
Read more about the refresh status in the "Add/Update Account Process Status" section.
Yodlee makes things easier now with webhooks. Read more here:
Using Webhooks with the Yodlee Core API
TL/DR: You need to wait for the add/link completion before retrieving the accounts.

How to cancel buyer's agreement programmatically? (PayPal)

I want to cancel a buyer's recurring transaction entirely automatically (without manual logging into PayPal account neither for us nor for the customer) by our software.
https://developer.paypal.com/docs/api/ and https://developer.paypal.com/docs/api/payments.billing-agreements say that we can use /v1/payments/billing-agreements/<agreement_id>/cancel.
But it requires authorization. We do not want to ask the customer to authorize on his own. We want to do it from our side entirely automatically.
Is it possible to obtain an authorization token for this situation without customer's intervention? If yes, how?
The authorization is not required by the user in order for you to cancel the agreement, it is API authorization that you need to interact with your billing agreements programatically.
I would have thought that if you have access to the details of their billing agreement in your business Paypal account, you should have access to this information once you are authorized to communicate with the API and thus authorization to cancel any agreements that are active in your account.
The PayPal API credentials that you use to communicate with the API should be one associated with the PayPal account that has access to the agreement details.
Once you're there, you can retrieve the PayPal agreement by the Agreement ID and call Cancel on it using the SDK.
Find the SDK for the language that you wish to use (you didn't
specify a language in your question) and follow the quick start
guide. The quick start guides contain details on how to create API keys to access your account programatically.
Load the agreement details using the Agreement ID, examples for
each are linked here. It is possible to load all agreements for your account using the api too, so you can get all of the Agreement IDs and loop through them if you wish.
Call the cancel method on an agreement to cancel it
I hope this helps!

Shopify Billing API status updates: frozen, expired, etc

I'm developing an app for Shopify and they show a flow diagram on this page: https://help.shopify.com/api/charging-for-your-app/recurring-application-charges
I'm doing a recurring charge, which is described here:
https://help.shopify.com/api/reference/recurringapplicationcharge
Their docs say that when a user accepts/declines a charge, the user will be sent to return_url, where I can then verify the status.
But how do I handle / get notified on the other cases where payment is interrupted:
User doesn't respond and charge becomes expired
User cancels Shopify account
User's credit card is removed/declined
User's account is frozen
If the User declines, they do not visit the confirmation URL. But if you examine the charge, its state shows declined, not pending.
If the User cancels their account, you get an uninstall webhook if you're listening for that, so you can uninstall the shop.
If the User has credit card problems Shopify takes care of that.
If the account is frozen you can just sit on it for as long you care to, and then you can delete it if things persist.

How does Yodlee handle an unsuccessful login

I'm wondering what happens with auto refreshes on Yodlee's end once an account fails to authenticate the user's credentials?
Does the daily refresh still take place, or is this process paused until the credentials are updated?
I guess what I want to know is if our user changes their bank credentials, and not the credentials stored in Yodlee, will they eventually be locked out from Yodlee continuing to attempt to login?
Thanks.
Let us say a consumer changed his/her bank credentials at the bank website while Yodlee system credentials are not updated. Yodlee will try to refresh the consumer's account at scheduled time and it will fail with LOGIN_EXCEPTION(error code- 402) which means credentials are not valid.
Once, Yodlee system gets this error code it will refrain from doing any more retries(which may result into Account Locked or some other issues) and will wait for consumer to update the credentials into Yodlee system.