App Store Connect: Change subscription price for new subscribers - app-store-connect

I want to raise the price of my subscription in my iOS app. Because I think it would be unfair to existing subscribers to charge them more than they have signed up for, I'd only like to set the new price for NEW subscriptions - I want users that have subscribed prior to the change to continue being able to pay the old price in the future renewal cycles.
Now I am extremely confused by the App Store Connect interface on that. It says
Choose the date you want your price change to begin. Anyone in the
selected country or regions who subscribes on or after this date will
pay the new price.
However, in other places I have seen popups by Apple notifying subscribers of other apps that the price will change and they have to opt-in to the new price.
Where exactly can I tick/untick an option that says something like "do not raise the price for current subscribers"? Or do I have to pass that in code somewhere?
I understand it seems to be an option (or the default) to also apply the new price to existing customers but I do not want to do that at all, I want them to keep the old price but apply a new price to new subscribers.

I hope this link may help you.
ref: https://help.apple.com/app-store-connect/?lang=en#/devc9870599e
pls see Increase the price of an auto-renewable subscription section
1、The follow option may help you "do not raise the price for current subscribers"
Choose an option for subscribers paying the current price shown in App
Store Connect:
A: Keep the current price for existing subscribers. Anyone who
subscribed before the start date of this price change won’t be
affected. Subscribers whose subscription expires can resubscribe at
the preserved price within 60 days of expiration.
B: Apply the price change to existing subscribers who are paying the
price of your subscription currently displayed on the App Store. App
Store Connect will provide an indication if consent is required (or if
they'll simply be notified) for each territory. If you have customer
groups that have had their prices preserved and your change is
scheduled for the future, keep in mind that circumstances may change
and consent will be required based on the conditions of the customer
at the time of the increase. You are responsible for ensuring you
understand when consent will be required.
2、The follow reason is why you see "price raised tips" in other apps
Consent needed If any of the following applies, subscribers must
consent to the price increase before their next renewal date in order
for the subscription to renew. Apple will automatically contact them
by email to request consent, or by push notification.
The subscriber is located in a region that requires consent for any
price changes.
The price increase is:
More than 50% of the current price; and
The difference in price exceeds approximately $5 United States Dollar
(USD) per period for non-annual subscriptions, or $50 USD per year for
annual subscriptions.
International equivalents for prices not in USD are based on current
exchange rates with the specific thresholds which are subject to
change at any time based on changes in foreign exchange rates. View a
list of thresholds per territory.
The subscriber already had a price increase for that subscription
within the past 12 months.

Related

Migrate old subscriptions to stripe

We have an existing saas app where we used to handle payments for subscriptions offline in a manual way. (They pay us directly to our accounts and we update their subscription data in our database manually).
Now we are moving over to stripe so that customers can automatically add/renew their subscriptions on our platform (via stripe).
Since our app queries stripe to fetch the customers current subscription, we will have to somehow move all old subscriptions to stripe but I am not sure how to proceed with that.
What I expect at the end:
Add a subscription for all old customers to stripe WITHOUT charging the customers anything (as they have already paid to us outside of stripe).
Then when the subscription ends, let stripe proceed with its flow of auto-charging the customer.
I don't really care if the interval of the new subscription in stripe is from today to today+365days even though the customer purchased our services 3 months back (we don't mind giving him an extra 3 months for free)
What i tried and didn't work:
Create a subscription manually for the customer (via the api/dashboard) but stripe throws an error saying no payment method set for the customer which leads me to believe that stripe will want to charge for this subscription.
Approaches that I am evaluating:
Create a coupon with a 100% discount while creating a subscription for the old customers. But I am not really sure if this is the right way to approach this (what happens to stripe fees here?)
I would really appreciate it if someone can shed some light on what approach to take here?
Thanks!
I believe you can create a Subscription with a trial period. Ie. If your customer purchased your services 3 months back, you can create a Subscription with trial period = 9 months, or even 1 year if you don't mind giving them 3 months free until today + 365 days.
When a subscription is created with a trial period, it won't ask for a Payment Method. When its billing cycle is approaching, Stripe will send a trial_will_end webhook event for you to start collecting your customer payment method.
There is also a Stripe's official doc for trial Subscription.

Charge vs subscription with Stripe

I'm reading the document from Stripe and I have one point that is fuzzy on my side.
My customer are create in Stripe and automatically a subscription is attached to them. So in my case, each month they will be charge according to their subscription.
Now I read the documentation about the charge component and the documentation says:
To charge a credit or a debit card, you create a charge object..
Here my questions:
Do the subscription charges a customer too but each month ?
Who I can change the currency of a subscription to bill the customer in their currency ?
Thanks for your help.
Creating a subscription allows you to attach a plan to a customer so that they are billed automatically on each billing cycle (daily, monthly, etc.). On each new billing cycle an invoice is created that is then paid automatically which leads to a Charge. You can read more about this on Stripe's extensive documentation: https://stripe.com/docs/subscriptions/quickstart
As for the currency, you do not set it on the Customer itself. Instead the currency is associated to a Plan. You, as the developer, decide which Plan(s) to attach to a given subscription. You'd ask your customer which currency they want to pay in client-side for example.

Save and Verify the Card, Charge Later - Shopify

I'm setting up my first Shopify store and would like to offer a free trial of a product. The basic idea is the customer is shipped the product at no charge and has so many days to try out and return the product. If the product is not returned within the time period they are charged the amount agreed upon up front.
Within Shopify there is only the option to capture payment immediately or to authorize and then manually capture payment later (7 day auth limitation).
What I would like to do is validate the credit card, but not pre-auth, then the ship the product to the customer for try out. If they decide to keep the product then I charge them 30 days later as agreed by the customer.
The method I want to use with Shopify is the same as detailed by Braintree here
https://support.braintreepayments.com/customer/portal/articles/1080637-collect-payment-at-a-later-date-aka-extend-authorization-
in the section "Save and Verify the Card, Charge Later".
You can use the option as you see it: authorize and then manually capture payment later
As an alternative, you could always capture the money, and if they actually do return it, refund them the money. That is how all TV sales work and they make bazillions doing that, so why not follow their lead?

Track magazine subscriptions with shopify

My client sells magazines. However, for cash-flow purposes they only take a payment once for one- and two-year subscriptions.
e.g. You buy "one year" at checkout, and for the next 12 months, the warehouse sends you magazines.
I've seen recurring order plugins for Shopify, but nothing that fits the bill. The ideal workflow would go something like:
Customer buys 1-year subscription
Customer's magazine shows on a pick-list every month for the next 12 months (the end of the subscription period)
Cancelling a subscription triggers a partial refund
Is there anything in Shopify that does this, or will we need custom development?
Shopify will handle the payment and refund scenarios. In addition you will need to keep track of subscribers. You can create a simple App that maintains a database with the ability to query current subscribers, using webhooks to track purchases and refunds.

How to set 2checkout payment timeout?

I'm currently integrating into 2co.
Before redirecting the client to 2co checkout page, I book the goods in my system for a moment(10 minutes) and they are not available for this period for other clients. After the time elapsed, they'll be auto unbooked.
But at this moment do I have any influence on the payment process which actually is going on in parallel in another place? From what I've read, I only receive the info about the result of payment when the user(client) has successfully(or not) finished his work.
Is there any timeout parameters I can set before the payment or special links I can refer in the case of timeout occured?
The 2Checkout transaction fees are not taken from the sale until it deposits (settles). When selling intangible products or using the third party cart parameter set, the sale will not deposit for at least 24 hours. If you are selling tangible products with the Pass Through Product parameters or Plug and Play parameters, the sale will not deposit until you mark it as shipped.
The buyer's 2Checkout purchase session will expire after 60 minutes. So you could pass in your custom cart identifier using 2Checkout's merchant_order_id parameter, release the booking after any time interval you choose and if the buyer completes the sale after the booking has been released, decide whether or not you want to refund using the refund_invoice API call based on the cart identifier passed back from 2Checkout with the merchant_order_id parameter.
As far as handling the passback, you can either use the initial passback to your approved URL that occurs when the sale is completed, or you can use the 2Checkout Instant Notification Service Order Created message. If you use the ORDER_CREATED message from the INS, the value you pass in with the merchant_order_id will be passed back using the vendor_order_id parameter on all INS messages pertaining to the sale.
Let me know if you would like some help implementing this.