#dev-help

1 messages · Page 124 of 1

vocal wagon
#

As for your question about how we redirect: when we create the SetupIntent, it has status "requires_action" and includes a next_action[redirect_to_url] object (hooks.stripe.com...), which is where the user completes authentication.

#

sorry one last thing: I do have examples of this flow working, e.g. seti_1JDYZmE5lzrKASelCzIfNDK7 today uses the same strategy

languid bolt
#

👋 Me again 😅 Is there a "simpler" way to refund an application fee other than calculating the amount by checking the amount refunded for the related charge (as a percentage)? Doesn't ApplicationFee#create_refund automatically detect that the charge involved was partially refunded? Thanks 🙏

dim hearth
# vocal wagon As for your question about how we redirect: when we create the SetupIntent, it h...

Okay let's back up for a quick second - I didn't realize you were doing the manual confirmation flow for 3ds (which is totally fine). To answer your original question, nothing is wrong with your flow it just so happens that authentication failed (which can happen for any number of reasons like the cardholder rejected, the issuer rejected, etc). I believe if you look at the SetupAttempt associated with the SetupIntent you can find more information on what specifically went wrong there (probably under payment_method_details.card.three_d_secure https://stripe.com/docs/api/setup_attempts/object#setup_attempt_object-payment_method_details-card-three_d_secure)

dim hearth
dim hearth
# languid bolt 👋 Me again 😅 Is there a "simpler" way to refund an application fee other than...

When creating an application fee, setting amount is optional - if you leave it out the entire application fee for the provided ID (fee_xxx) will be refunded. You can get this fee ID from the charge object (https://stripe.com/docs/api/charges/object#charge_object-application_fee). I also want to mention, if you want to refund the application fees as part of refunding a whole direct or destination charge you can set refund_application_fee: true when creating your refund (https://stripe.com/docs/api/refunds/create#create_refund-refund_application_fee) to automatically refund the application fee while refunding the charge

languid bolt
#

Thanks a lot @dim hearth , does that also apply for partial refunds?

dim hearth
languid bolt
#

@dim hearth Awesome, thanks again 👍

#

@dim hearth Is that feature available in the Stripe dashboard or only through the API? (the refund_application_fee: true feature)

mental shoal
#

hi I'm currently working on pulling MRR from the stripe API but my numbers are significantly different than what the billing analytics DB tells me and I'm stumped as to why. All I'm doing is pulling subscriptions, applying discounts who's duration is forever, monthly-normalizing them and summing. I've tried to follow Stripe support's guide and some guides I've found online, but I'm getting numbers that are ~8k off

dim hearth
dim hearth
vocal wagon
dim hearth
vocal wagon
mental shoal
dim hearth
# vocal wagon `result` is `failed`. I don't think they've contacted their bank yet because St...

Hmmm - well they're kind of right in that payment never goes through (because this is just a setup intent, and no actual payment is being made), but I definitely can confirm that the Setup Intent is reaching us and authentication is being attempted. I was hoping this information would be something reflected in the SetupAttempt, but from what I can see on my end, the issuer sent back an error message to us that means "Transaction not permitted to cardholder". They should contact the issuer to find out why this is happening for their card to get it fixed.

vocal wagon
dim hearth
mortal tree
#

Hello can anyone help me with this

dim hearth
mental shoal
#

@dim hearth yeah, so im pulling active/past due subscriptions -> filtering out metered billing -> grabbing the "amount" field of the "plan" of the subscription -> applying discounts -> accounting for "plan_interval" by dividing those yearly subscription amounts by 12

#

I did find that there are a small amount of subscriptions whose plan field is null like sub_Jg7QdT8I8W7c8z

#

but on the actual stripe website, they are subscribed to a plan

#

also, stripe dashboard gives me ~24k, internal calculation gives me more in the ~15k range

#

Ideally, what would be really helpful is how the calculation is done for the billing analytics dashboard and then I can see if I'm even pulling from the right endpoints

dim hearth
mental shoal
dim hearth
# mental shoal oh yeah I also multiply by quantity

Hmm... so nothing is jumping out to me as wrong about your calculation (but I also know very little about how MRR is calculated) - I'd suggest two things:

  • If you look at Price/Product on the dashboard, you can also see the MRR that specifically applies to that Price/Product. You don't have an unreasonable amount of products, so I'd suggest taking a quick look at all of them and see which specific numbers aren't matching up with how you're making calculations. It's not perfect, but it'll hopefully narrow down the scope of the problem
  • Contact support https://support.stripe.com/contact. They may have better methods/suggestions for digging into the difference in MRR you're seeing
mental shoal
#

@dim hearth ok thanks I sent a ticket, I suspect it might have something to do with those subscriptions whose plan field is null, as I checked one of them and it was a fairly large total

vocal wagon
#

hello

pale galleon
#

Hey, does anyone know if Stripe's new React Native SDK can facilitate integration with their BBPOS card swiper directly through JS? or is calling their native iOS/Android SDKs the only way to use that swiper?

sick talon
sick talon
pale galleon
#

Thanks for the response.

ember roost
#

hello

#

how to activate months without interest in shopify and stripe?

sick talon
ember roost
#

I would like to integrate stripe with shopify and months without interest in stripe

sick talon
ember roost
#

how can activate months without interest in stripe?

sick talon
#

Please don't keep asking the same question. See my previous response.

#

You want to ask Shopify's support team, and they are not on this Discord.

clear jasper
#

Someone helped me, I encountered a technical problem

sick talon
clear jasper
#

I’m in another country and I don’t have an account. It seems that it takes 400 USD to complete Bank of America, right? Can we talk privately?

sick talon
#

If it is, it's certainly not technical, and you'd want the support team via https://support.stripe.com/contact/email

clear jasper
#

Yes, because I cannot complete the transaction, you can help me apply for a bank account, right?

#

Get your questions answered and find international support for Stripe.

sick talon
clear jasper
#

We cannot help with that in this Discord, no. You want the support team as mentioned above.

cobalt olive
#

Hoping I can get some help or direction. We integrated Stripe into our platform and generate ACH Credit Transfer Account for each Customer automatically. The one issue we run into is when the customer goes to their Stripe portal to add a payment method the Payment Method block is missing. If I manually add a different payment method and the ACH Credit Transfer is no longer Default the Payment Method Block reappears. If i reset the ACH Credit Transfer as default the Payment method block disappears again. Is this by design or a bug? Seems they should be able to Add a credit card to their account regardless of current default

sick talon
prime glacier
#

Hello everyone. In this documentation for failed refunds (https://stripe.com/docs/refunds#failed-refunds) it states that it can take up to 30 days for the funds to be returned to the stripe account, and a webhook event is emitted that contains ths the failure_reason and failure_balance_transaction.

  1. Is the 30 days for a failed refund amount to return a consistent amount of time? Or does it depend on whether it's ACH vs Card?
  2. Is this event only received when the funds are finally returned to the Stripe Account balance? Or are we notified earlier that a refund failed?
cobalt olive
sick talon
sick talon
prime glacier
sick talon
#

One of the inputs to any such average would be the issuing bank you're dealing with, and all their systems are unique.

prime glacier
sick talon
prime glacier
native blade
#

hi! I was wondering if the API provides withdraw limits (ie. payouts) for connected accounts anywhere

#

I believe I have heard somewhere that if the payment method attached to the connected account is a debit card, there's a $3000 withdrawal limit? but I can't find that in the balance or payout documentation

sick talon
native blade
sick talon
#

Any limits would be on the bank's side and we wouldn't have stored information on any of that

native blade
#

okay so Stripe doesn't limit how much a connect account can cash out per transaction, ever?

mossy cape
#

support hasn’t been able to help me out with payouts in test mode. is anyone able to help me out here?

sick talon
sick talon
mossy cape
#

i’m wondering why the expected dates keep getting pushed back and why i haven’t seen one go through yet

#

it’s been 2 weeks

sick talon
mossy cape
#

yes test mode. the payouts don’t even get created

#

but on the dashboard it says i should have some expected

bold basalt
#

@mossy cape testmode doesn't send payouts edit: i'm wrong

mossy cape
#

that’s incorrect

#

i can see other payouts in another test account

#

in test mode

bold basalt
#

@mossy cape can you share the account ID for the account in question?

#

@mossy cape it might be the delays or it might be not having an external bank account attached. could be a few things, can check with the acct ID

mossy cape
#

okay cool so i’m trying to test payouts to a connected account

#

would you want the connected account i’d or platform

#

id*

bold basalt
#

@mossy cape the Connect acct ID.

mossy cape
#

acct_1J7uky2HK7sHtjOE

bold basalt
#

@mossy cape which account does it work for? can you share that acct ID? I think I might know what it is

mossy cape
#

this is a connected account on a different test platform account acct_1IVlXqQozDBmmJQi

#

same country etc but payments were made via cc not direct debit

bold basalt
#

@mossy cape one sec

abstract compass
#

We are creating fixed-price-subscription in Stripe. The question is, for the test environment, is there a way to shorten the subscription period? That way we don't have to wait a month to see the renewal webhook calls?

#

Ideally, we would like to just wait minutes.

cobalt olive
# sick talon OK. You'd want to contact the support team for that via https://support.stripe.c...

For anyone in the future here is what Stripe said: "Portal only supports card payments. Once you set the default back to the card on the dashboard for the customer it should then show a way to update on the portal. It is due to the unsupported payment method being set as default. In other words when that ACH is set to default it won't allow portal to work correctly. it will only work if default is set to a card since that is all portal supports."

mossy cape
#

@bold basalt no worries

dim hearth
dim hearth
# mossy cape <@844953271994155008> no worries

I'm also going to start taking a look -just want to check, acct_1J7uky2HK7sHtjOE is the one where payouts aren't working and acct_1IVlXqQozDBmmJQi is the one where you are seeing them work fine?

mossy cape
#

correct thanks @dim hearth

dim hearth
mossy cape
#

awesome thanks

open vine
#

hey, is it possible to use customer credit balance in stripe connect destination charge?

#

or does the source need to be a card?

dim hearth
vocal wagon
#

Hello! Can a Connect platform account transfer funds to a connected express account from the stripe dashboard? Or is it required to use the API to initiate a transfer? I see the reference in the API docs for that, but no mention of how to do it through the dashboard.

open vine
#

@dim hearth thanks, is there some concept of credit that we could use in a destination charge?

#

our clients has credit - can we include it somehow in a destination charge?

crimson needle
#

@vocal wagon there's a Send funds button on the connected account Dashboard

vocal wagon
#

Okay thanks

dim hearth
open vine
#

clients can have credit on a platform

#

we would like to do a direct/destination charge where part of the charge is taken from a card and the rest is taken from a client's credit

crimson needle
#

that is just not supported today

#

the way you do this is that you look at their balance, decrease the PI amount by that much and then clear the balance

rough spire
#

Hello!

Wich one is the endpoint to get all payments done by a customer??

dim hearth
rough spire
#

Yes! Thank you!

dim hearth
rough spire
bronze hedge
#

Hello, I am building a platform with many sellers, which itself is located in the USA but has many sellers in Europe using Stripe Connect. Sellers can offer subscriptions, of which our platform takes a percentage cut. To do this, from my understanding I cannot simply use destination charges when the connected accounts are in Europe. So, I've set up products, prices, and cloned payment methods to all be on the connected account. Processing payments now seem to work, but I'm no longer receiving webhooks as confirmation in order to process the subscriptions. Am I missing a step, and am I generally correct in my approach?

lucid raft
#

@bronze hedge you will need to setup webhooks explicitly for your connected account on your platform. There is a section for you to add endpoint there

#

Regarding cross border destination charges support on subscription; let me check

bronze hedge
#

@lucid raft Hmm, it seems when I try to do that I get this error: "code":"parameter_unknown","doc_url":"https://stripe.com/docs/error-codes/parameter-unknown","status":400,"message":"Received unknown parameter: on_behalf_of","param":"on_behalf_of",...

lucid raft
#

do you have a request id ? req_xxx

bronze hedge
#

Full error is : {"code":"parameter_unknown","doc_url":"https://stripe.com/docs/error-codes/parameter-unknown","status":400,"message":"Received unknown parameter: on_behalf_of","param":"on_behalf_of","request_id":"req_lyhkf9lEzenJGc","type":"invalid_request_error"}

lucid raft
#

ok, the feature is supported, but your account needs to be reviewed in order to use that.

#

Do you mind writing to our support and they can review and enable your account to use on_behalf_of

cerulean pineBOT
#

:question: Have a non-technical question, account issue, or need one-on-one support?
We wish we could help, but this community is focused on developers and technical discussions. Our support team will be able to assist you better than we can: https://support.stripe.com/contact

lucid raft
#

^ this link to contact support

bronze hedge
lucid raft
#

np

thorny vault
#

I am playing around with the node.js sample integration which processes a test transaction of $14 and I am trying to figure out how to change the test transaction amount from $14 to $10? Can anybody help?

lucid raft
#

@thorny vault what is your integration path? are you using checkout or stripe element with payment_intent or?

#

and you want to modify the amount based on your customer's shopping cart I guess?

#

@thorny vault just a reminder, don't post your secret key in anywhere even with Stripe and even for your testing account

#

I will delete that for now

#

I see, so you are using PaymentIntent

thorny vault
#

I copied this code from the Stripes documentation for a sample integration and I am trying to change the default transaction value from 1400 (eg. $14) to 1000 ($10)

lucid raft
#

If you see that code, the amount was calculated based on the items

thorny vault
#

I have changed it but the transaction value still stays the same

lucid raft
#

After you create the payment_intent, you will need to update it with a new amount

thorny vault
#

Do you have any sample code for how to update the payment_intent with a new amount

#

?

lucid raft
#

yup, the link I gave has the sample, not with the amount parameter. but you can do something similar

const updatedPI = await stripe.paymentIntents.update(
  existingPaymentIntent.id, 
  amount: 1000,
);

as simple as that. You will just put that in the right place where you want it updated

thorny vault
#

Ok thank you

#

I appreciate your help

lucid raft
#

sure. 🙂

kind python
#

Hello

#

I have a question

lucid raft
#

what is your questions @kind python ?

kind python
old kite
#

Hi I signed into my nifty gateway account and it shows that my payout was sent to an unrecognized bank account. How can I speak with someone to resolve this?

cerulean pineBOT
#

:question: @old kite Have a non-technical question, account issue, or need one-on-one support?
We wish we could help, but this community is focused on developers and technical discussions. Our support team will be able to assist you better than we can: https://support.stripe.com/contact

kind python
#

@lucid raft are you still there?

lucid raft
#

@kind python yup, I am here. Trying to reproduce the issue. The problem is in your client.js card.on("change", function (event) {

#

The button was disabled there and there was some errors

kind python
#

So do I just remove: card.on("change", function (event) {
// Disable the Pay button if there are no card details in the Element
document.querySelector("button").disabled = event.empty;
document.querySelector("#card-error").textContent = event.error ? event.error.message : "";
});?

lucid raft
#

ok

sleek moss
#

I have integrated a Sepa payment in one of the project and In test api, the subscription and payments are "Succeeded" but in live mode they are in "Pending" status. Can I know what is the cause behind this?

lucid raft
#

the clientSecret is not defined in line 30

#
app.get('/secret', async (req, res) => {
  const intent = // ... Fetch or create the PaymentIntent
  res.json({client_secret: intent.client_secret});
});

#

@kind python in your app.js, you will need to call Stripe server side to get create the payment_intent

kind python
#

How would I do that?

lucid raft
#

@kind python I don't know how replit runs the node server, but what you need is

  1. in your app.js, create a payment_intent in your app.get('/secret') endpoint. You don't need your server.js
  2. In your checkout.html or client.js, fetch the secret
kind python
#

Ok I will take a look at that, and I should delete my server.js file correct?

lucid raft
#

yup

kind python
#

Ok thank you very much.

sleek moss
#

I have integrated a Sepa payment in one of the project and In test api, the subscription and payments are "Succeeded" but in live mode they are in "Pending" status. Can I know what is the cause behind this? Can anyone help me ?

kind python
#

I was reading it and didn't understand this part: // Replace if using a different env file or config
const env = require('dotenv').config({ path: './.env' }); what other configs could I use or how do I get .env file?

bleak breach
thick finch
#

Can someone please help me...my website is going live on saturday and my web developer just diappeared he still hasnt added my stripe account into my woocommerce and i have no idea how to do it...

sleek moss
#

Thank you @bleak breach. I was also reading the docs where it said SEPA payment can take upto 14 business days but I was unsure. Once again thank you, I will wait for it to be as "Succeeded". Thanks

thick finch
#

If anyone can help me integrate it into my website i will be forever grateful

bleak breach
thick finch
#

thanks for answering but i have no choice to do it on my own

#

is it not possible?

bleak breach
#

I imagine it is, but it's hard to say without knowing your experience level, what your site's structure is and what you're trying to do

thick finch
#

oh god

#

thanks

bleak breach
#

I would start by reaching out to WooCommerce directly, they might have some guides that can help you

thick finch
#

ok thanks is there a number i can call i cant seem to find it

bleak breach
kind python
#

@lucid raft I read the git hub thing and I put the code in my site and now it won't mount the input please help

thick finch
#

thank you

kind python
#

No, no errors the input won't show up

thick finch
#

do you have a number?? I cant find the number?

kind python
bleak breach
#

This is probably because you are attempting to access Stripe.js before the page has fully loaded. You should wrap your code to only run once the page has finished loading:

window.addEventListener('load', () => {
  // add your code here
});
kind python
#

ok i did that but it didn't work do I have to install window?

bleak breach
#

window is a native JS property, you shouldn't have to

kind python
#

ok

#

window.addEventListener('load', () => {
// add your code here
// Set up Stripe.js and Elements to use in checkout form
var elements = stripe.elements();
var style = {
base: {
color: "#32325d",
}
};

var card = elements.create("card", { style: style });
card.mount("#card-element");

card.on("change", function (event) {
// Disable the Pay button if there are no card details in the Element
document.querySelector("button").disabled = event.empty;
document.querySelector("#card-error").textContent = event.error ? event.error.message : "";
});

var form = document.getElementById('payment-form');

form.addEventListener('submit', function(ev) {
ev.preventDefault();
// If the client secret was rendered server-side as a data-secret attribute
// on the <form> element, you can retrieve it here by calling form.dataset.secret
stripe.confirmCardPayment(clientSecret, {
payment_method: {
card: card,
billing_details: {
name: 'Jenny Rosen'
}
}
}).then(function(result) {
if (result.error) {
// Show error to your customer (e.g., insufficient funds)
console.log(result.error.message);
} else {
// The payment has been processed!
if (result.paymentIntent.status === 'succeeded') {
// Show a success message to your customer
// There's a risk of the customer closing the window before callback
// execution. Set up a webhook or plugin to listen for the
// payment_intent.succeeded event that handles any business critical
// post-payment actions.
}
}
});
});
});

#

this is my client.js code

#

It is still not mountiong the input

#

Here is my checkout.html:<html>
<head>
<title>Buy cool new product</title>
<script src="https://js.stripe.com/v3/"></script>
<script src="client.js"></script>
<link rel="stylesheet" href="global.css" />
</head>
<body>
<header>My Store</header>
<form id="payment-form" data-secret="{{ client_secret }}">
<div id="card-element">
<!-- Elements will create input elements here -->
</div>

  <!-- We'll put the error messages in this element -->
  <div id="card-errors" role="alert"></div>

  <button id="card-button">Submit Payment</button>
</form>

</body>
</html>

#

and im still getting stripe is not defined

bleak breach
kind python
#

Ok i got it working

#

now my button won't let me submit

#

Here is my app.js:

#

const express = require('express');
const app = express();
const { resolve } = require('path');
// Replace if using a different env file or config
const env = require('dotenv').config({ path: './.env' });

var secretKey = ""

const stripe = require('stripe')(process.env.secretKey, {
apiVersion: '2020-08-27',
appInfo: { // For sample support and debugging, not required for production:
name: "stripe-samples/accept-a-payment/custom-payment-flow",
version: "0.0.2",
url: "https://github.com/stripe-samples"
}
});

app.use(express.static(process.env.STATIC_DIR));

var publishablekey = pk_test_51JCuQlLAJ7k6Ijx1lPl0ckK2lwdvFJBWSNKvayjmjVopUEFmILwjkcsnYeTSBaaAsSSbTRi9b7WdDBJBh18z9Bym007eKjzd4w

app.get('/', (req, res) => {
const path = resolve(process.env.STATIC_DIR + '/index.html');
res.sendFile(path);
});

app.get('/config', (req, res) => {
res.send({
publishableKey: process.env.STRIPE_PUBLISHABLE_KEY,
});
});

#

app.post('/create-payment-intent', async (req, res) => {
const { paymentMethodType, currency } = req.body;

// Each payment method type has support for different currencies. In order to
// support many payment method types and several currencies, this server
// endpoint accepts both the payment method type and the currency as
// parameters.
//
// Some example payment method types include card, ideal, and alipay.
const params = {
payment_method_types: [paymentMethodType],
amount: 1999,
currency: currency,
}

// If this is for an ACSS payment, we add payment_method_options to create
// the Mandate.
if(paymentMethodType === 'acss_debit') {
params.payment_method_options = {
acss_debit: {
mandate_options: {
payment_schedule: 'sporadic',
transaction_type: 'personal',
},
},
}
}

// Create a PaymentIntent with the amount, currency, and a payment method type.
//
// See the documentation [0] for the full list of supported parameters.
//
// [0] https://stripe.com/docs/api/payment_intents/create
try {
const paymentIntent = await stripe.paymentIntents.create(params);

// Send publishable key and PaymentIntent details to client
res.send({
  clientSecret: paymentIntent.client_secret
});

} catch(e) {
return res.status(400).send({
error: {
message: e.message
}
});
}
});

#

I dont understand the first part: const express = require('express');
const app = express();
const { resolve } = require('path');
// Replace if using a different env file or config
const env = require('dotenv').config({ path: './.env' });

#

the dotenv part

#

it says i can config a different way how do i do that

vocal wagon
#

It is nice if you can format your code using triple ‘

kind python
#

'''alert("Hello")''' like this?

bleak breach
#

@kind python Please use backticks like so:

code goes here
kind python
#

alert("HELLO")

noble yarrow
#

Hi team, anybody from iOS team here. Could you please help me on PaymentSheet implementation?

kind python
#

Oh that was helpfull

#

`const express = require('express');
const app = express();
const { resolve } = require('path');
// Replace if using a different env file or config
const env = require('dotenv').config({ path: './.env' });

var secretKey = ""

const stripe = require('stripe')(process.env.secretKey, {
apiVersion: '2020-08-27',
appInfo: { // For sample support and debugging, not required for production:
name: "stripe-samples/accept-a-payment/custom-payment-flow",
version: "0.0.2",
url: "https://github.com/stripe-samples"
}
});

app.use(express.static(process.env.STATIC_DIR));

var publishablekey = pk_test_51JCuQlLAJ7k6Ijx1lPl0ckK2lwdvFJBWSNKvayjmjVopUEFmILwjkcsnYeTSBaaAsSSbTRi9b7WdDBJBh18z9Bym007eKjzd4w

app.get('/', (req, res) => {
const path = resolve(process.env.STATIC_DIR + '/index.html');
res.sendFile(path);
});

app.get('/config', (req, res) => {
res.send({
publishableKey: process.env.STRIPE_PUBLISHABLE_KEY,
});
});`

#

here is app.js part 1

#

`app.post('/create-payment-intent', async (req, res) => {
const { paymentMethodType, currency } = req.body;

// Each payment method type has support for different currencies. In order to
// support many payment method types and several currencies, this server
// endpoint accepts both the payment method type and the currency as
// parameters.
//
// Some example payment method types include card, ideal, and alipay.
const params = {
payment_method_types: [paymentMethodType],
amount: 1999,
currency: currency,
}

// If this is for an ACSS payment, we add payment_method_options to create
// the Mandate.
if(paymentMethodType === 'acss_debit') {
params.payment_method_options = {
acss_debit: {
mandate_options: {
payment_schedule: 'sporadic',
transaction_type: 'personal',
},
},
}
}

// Create a PaymentIntent with the amount, currency, and a payment method type.
//
// See the documentation [0] for the full list of supported parameters.
//
// [0] https://stripe.com/docs/api/payment_intents/create
try {
const paymentIntent = await stripe.paymentIntents.create(params);

// Send publishable key and PaymentIntent details to client
res.send({
  clientSecret: paymentIntent.client_secret
});

} catch(e) {
return res.status(400).send({
error: {
message: e.message
}
});
}
});`

bleak breach
#

Your payment is failing because your client secret is undefined @kind python. You have a /create-payment-intent endpoint in your app.js code that you should use to create the PaymentIntent and return the client secret

kind python
#

app.js part 2

#

yes i know I deleted it when sharing code

bleak breach
#

@kind python please don't post your code over and over, I can see it in the repl so you don't need to repost all of it when you make a small change

kind python
#

ok

bleak breach
#

Client secret is different from secret API key

kind python
#

I just posted it because the other guy asked be to put it in a code block

#

*me

bleak breach
#

The client secret is what you get from the newly created PaymentIntent, you pass that secret back to your frontend to be used with stripe.js

kind python
#

I added my secret, still not working

bleak breach
#

Are you getting an error? I can't really help you if you aren't descriptive with what's wrong

#

If it doesn't work don't just say "it doesn't work", provide details so others can actually help you

kind python
#

I can't click the Submit Payment button

#

and I get refused to load image errors

bleak breach
#

Same error as before:

client.js:26 Uncaught ReferenceError: clientSecret is not defined
    at HTMLFormElement.<anonymous> (client.js:26)
kind python
#

I did follow that tutorial multiple times

past heath
#

hey guys, i have a small issue, i am using the @stripe/stripe-react-native package, and i used presentApplePay method.

after that, i clicked on the background, therefore the payment was not confirmed or cancelled, therefore, when i try to render new presentApplePay i get this error.

#

I am unsure how to handle it as the payment was not saved in stripe dashboard so i can't manually cancel it

kind python
#

I can' test if it will work now because I am blocked from pressing the Submit Payment button

bleak breach
past heath
bleak breach
past heath
#

sure thing

bleak breach
kind python
#

I got this error : Uncaught IntegrationError: Invalid value for stripe.confirmCardPayment intent secret: value should be a client secret of the form ${id}_secret_${secret}. You specified: my key. at Z ((index):1) at X ((index):1) at yo ((index):1) at (index):1 at (index):1 at e.<anonymous> ((index):1) at e.confirmCardPayment ((index):1) at HTMLFormElement.<anonymous> (client.js:26)

#

I specified my secret in a variable called clientSecret

golden cosmos
#

@kind python please don't share your secret key on the channel, you should keep your secret key safe

kind python
#

how do i get a configured .env file?

golden cosmos
#

@kind python i think you may have mixed up the idea of a secret key and a client secret. A client secret typically looks like pi_123_secret_456

kind python
#

okj

#

ok

#

is it a publishable key from stripe website api keys?

golden cosmos
#

when you create a Payment Intent, the resulting Payment Intent object should have a parameter named client_secret

kind python
#

I have a question Paul told me I dont need server.js so do I transfer coder from server.js to app.js?

golden cosmos
#

one second, let me catch up on the previous conversation that you had with Paul and i'll get back to you as soon as I can

kind python
golden cosmos
#

@kind python sorry about how long it took for me to get back to you! Since you would need to create the payment intent in your app.js instead, yes, you would need to transfer the code from server.js to app.js

kind python
#

the bottom part which file does it go in?

#

so i can remove server.js right? and move all code to app.js right?

golden cosmos
#

yes that's correct, you can remove server.js and move all code to app.js

kind python
#

ok

past heath
dry hatch
#

Thanks @past heath Hopefully SDK team will look into it

kind python
#

I think I need to pass the clientSecret to client.js and I don't know how.

golden cosmos
#

@kind python looking at it!

kind python
#

ok

abstract compass
#

We are creating a fixe price monthly subscription with free trial. Our goal is to have the user give us payment information before the trial is started, and for subsequent renewal to be charged automatically. However, we are having issues. Per Stripe document, we set the TrialPeriodDays when creating the subscription. Then create a SetupIntent and send the ClientSecret to the frontend JS. Looking at the call backs, it looks like the system automatically creates a subscription with an initial invoice of $0 for the trial, pays it automatically, and activates the subscription - this is all before I have a chance to colllect payment information from the user. How do we prevent that, instead only activate the trial once we have payment from the user?

golden cosmos
#

@kind python so there are two points which i noticed :

  1. when you click on the submit payment button, you would first need to make a call to your app.js (server) to create the payment intent
  2. in your app.js, when it receives the call to create the payment intent, you would create the payment intent and then return the client_secret
kind python
#

I think I have done step one on line 15 i made a paymentIntent

#

And where can i find how to do step 2

golden cosmos
#

@kind python i need to step out for a bit, orakoro will be helping you with your question

kind python
#

ok

dry hatch
#

Hello @kind python

kind python
#

Hi

dry hatch
#

I think you are creating PaymentIntent in Line 17

kind python
#

yes

dry hatch
#

so in Line 6 you need to pass in the exact variable name paymentIntent.client_secret not intent.client_secret

kind python
#

ok

dry hatch
#

Next, from that L4 to L7 is an endpoint of your server. You need to call that endpoint from your client side, which means the part from your L24 to L30 should be on client.js

kind python
#

ok

#

where in client.js do i put it

dry hatch
#

L8 or L9 would be best place

kind python
#

ok done

dry hatch
#

Then you can try. If it doesn't work I will try to create a working example for you

kind python
#

I get this error Uncaught ReferenceError: clientSecret is not defined at HTMLFormElement.<anonymous> (client.js:35)

#

i think it is something wrong here var clientSecret = responseJson.client_secret;

dry hatch
#

ah ok that an extra step. You need to make that clientSecret available. How can I see your updated code?

kind python
#

I can just send you te code because i think it takes a while to update which file do you need?

dry hatch
#

Ah, no I can manage. Please wait a few mins

kind python
#

Alright

dry hatch
#

Is there an option to share or enable co-edit in that site?

kind python
#

i believe so do you have an account?

dry hatch
#

Ok I am in

kind python
#

Ok ya i see you

dry hatch
kind python
vocal wagon
#

oh

kind python
#

Also just curious what code editor or IDE do you use?

vocal wagon
#

@kind pythonVisual Studio Code is pretty popular I believe

kind python
#

Ok thanks

dry hatch
kind python
#

ok ya that is the error i have too now

#

oh wait sorry I am getting the same error as before

dry hatch
#

Yes that's correct, I wonder where did you get the Uncaught ReferenceError above. But nevermind let me look into the whole flow

kind python
#

These are my errors ignore the custon cursors one

bleak breach
#

That syntax error indicates that what was returned from your server wasn't valid JSON. That usually means that you have an error on your server. You should check the server logs

kind python
#

maybe if we move L4-7 to L23 since L4 is getting the client secret but there is no client secret yet since there is no paymentIntent

#

Nope

#

res.json({client_secret: paymentIntent.client_secret});is this naming the json to "res"?

bleak breach
#

No, that instructs your server framework to return a JSON object

kind python
#

ok

#

GET https://stripe-sandbox-integration-v2.kavigupta1.repl.co/secret 404 (anonymous) @ client.js:9 VM236:1 Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0 I think we need to fix these errors to fix clientSecret is not defined

bleak breach
#

You have an error on your server, I'd start by debugging that

kind python
#

In L6 i think that the routing is incorrect

#

@dry hatch Are you here?

abstract kindle
#

hey i have a question

#

i want to use indian stripe for dropshipping

#

what are the requirements of it??

bleak breach
#

@kind python That 404 means that your server doesn't have a /secret endpoint

abstract kindle
#

but lot of people are using stripe as a payment gateway

#

for dropshipping

#

people form the US

bleak breach
#

That may be the case, but it is a restricted business and will likely get your account terminated

abstract kindle
#

do it support in US or not/

#

?

bleak breach
#

Either way this isn't the place to talk about that. This Discord is for development and code questions. If you have questions about whether your business can be supported on Stripe I suggest you reach out to Stripe support directly: https://support.stripe.com/contact/email

frank mountain
#

tried running expo install @stripe/stripe-react-native and got this error
Failed to resolve plugin for module "@stripe/stripe-react-native" relative to /Users/path/to/project

It was fine until i tried to upgrade to 0.1.5. I have the plugins section also defined in my app.json

    "plugins": [
      [
        "@stripe/stripe-react-native",
        {
          "merchantIdentifier": "",
          "enableGooglePay": false
        }
      ]
    ]
frank mountain
south pendant
#

Hi there, I am trying to create a subscription based app that offers a trial period initially for 7 days and then charges the customer. Currently I am using React for my frontend, so naturally I am using this - https://stripe.com/docs/stripe-js/react.
So in my backend I am using this particular code to create a subscription with the trial -

const subscription = await Stripe.subscriptions.create({
            customer: customerId,
            items: [
              {
                price: priceId,
              },
            ],
            trial_period_days: process.env.TRIAL_DAYS,
          });

And this works just fine. I was just wondering what will be the frontend code for this ??
If I am not providing the trial then I would use something like this in the frontend -

const { data } = await client.post(
          "/subscription/create",
          { email, customerId: customerID, plan: selectedPlan },
        );
        const { clientSecret } = data;
        await stripe.confirmCardPayment(clientSecret, {
          payment_method: {
            card: elements.getElement(CardElement),
            billing_details: {
              name: userName,
            },
          },
        });

Where the client secret comes from the backend, where I would do something like this -

await Stripe.subscriptions.create({
            customer: customerId,
            items: [
              {
                price: priceId,
              },
            ],
            payment_behavior: "default_incomplete",
            expand: ["latest_invoice.payment_intent"],
          });

but since I am creating a subscription with a trial I cannot get the latest_invoice.payment_intent which would give me the client secret.
So what shall I do instead ??
Will this work ?? in the frontend -

   await stripe.createPaymentMethod({
          type: "card",
          card: elements.getElement(CardElement),
        });
      }
lucid raft
#

@south pendant For subscription with a trial, there will be no charge / payment created, thus you will not get the payment_intent

south pendant
lucid raft
#

instead of confirm payment_intent, you should confirm setup_intent

south pendant
#

Okay will give this a try. Thanks @lucid raft

lucid raft
#

np

kindred frigate
#

Hello
what are the ways to implement 3D secure integration

lucid raft
kindred frigate
#

can you send me PaymentIntent API integration code in react js

willow onyx
#

How to create a variable amount (donation basically) with nextjs and stripe?

peak flame
#

Is it possible to add card in test mode?

river star
bleak breach
bleak breach
bleak breach
#

Let me test something real quick

bleak breach
wary wigeon
#

only showing ui for card payment screen

river star
bleak breach
bleak breach
#

You can't list invoices by those paid out of band unfortunately. You'd have to list them all and then filter by status: paid and payment_intent: null to indicate if it was paid out of band.

bleak breach
frosty coyote
#

So i mentioned this last week that when a payment fails due to 3d secure we get both an invoice.payment_failed and invoice.payment_action_required webhook. It was explained it for backwards compatibility and that I can inspect the invoice.payment_intent.last_payment_error. However, in testing this seems to be null all the time? Similarly, the charge is null so I can't look for the reason there.

How do I tell and invoice.payment_failed that's and actual failure, versus one thats been triggered for 3d secure? We're sending emails based off this information, so we need to make sure we can split the two apart otherwise the customers going to be receiving two emails.

Example invoice id: in_1JDlcV2S6VvI66Gy7VfclYTO

keen goblet
#

Hey everyone 👋 I've question about how can I retrieve dashboard information via using API. I want to fetch all those information with using Stripe endpoint without calculate any data. Is that possible?

frosty coyote
#

Maybe I can use invoice.payment_intent.status == "requires_action" as that would imply the invoice.payment_action_required event is coming?

dry hatch
#

also the next_action states what to do next

fringe gyro
#

Hi, can I capture more money than reserved or should I create another transaction for that?

frosty coyote
lucid raft
dry hatch
#

We can't guarantee. There are various reason a webhook can arrive later or sooner

dry hatch
frosty coyote
#

I mean, but it would it was always come (unless it failure occurred in the sending of it)

I'm thinking it works like this:

invoice.payment_failed event => Ignore if invoice.payment_intent.status is requires_action, handle if its not requires_action
invoice.payment_action_required event => always handle

keen goblet
dry hatch
lucid raft
teal cobalt
#

Hello! We're trying to connect vendors to my Site. May I know how can I connect a Standard or Direct account to my Platform account?

lucid raft
keen goblet
dry hatch
lucid raft
dry hatch
#

oh, sorry didn't see previous reply

keen goblet
molten tundra
#

Hi

#

Hi, stripe support developer !

#

I want some help from developers for my small business website

#

Please help me directly in coding.

#

That is built with python, django

dry hatch
#

Hi @molten tundra can you type in your question?

molten tundra
#

@dry hatch

#

Thanks for your reaching out me. I will share my datas

dry hatch
#

Don't share your key/any kind of credential. In here we only can help with code/integration

molten tundra
#

@dry hatch yes, thanks.

#

@dry hatch

#

@dry hatch

#

when user click plan, all are going to admin.

#

@dry hatch here, dispatcher trainer can introduce some students in this site.
In this case, student should pay 90% to admin and 10% to dispatcher trainer.

#

@dry hatch That is 4 logic in image.

#

@dry hatch I can't find how to code this part.

#

@dry hatch 1, 2, 3 logic is already added to code. need only 4 logic.

hushed escarp
#

Hello guys! is it best to use unit_amount or unit_amount_decimal if i want to support all currencies (including zero decimal ones)

USD, GBP, EUR, JPY etc
Which one is better to use 🙂

molten tundra
#

@dry hatch Hi, are you there?

dry hatch
molten tundra
#

@dry hatch OK. Thanks for your kind.

dry hatch
#

If you have any questions relate to Stripe API feel free to reach out

molten tundra
#

@dry hatch Thank you !

vocal wagon
#

I am still having trouble with getting "isApplePaySupported" to return true

Steps I did

  1. Create identifier
  2. Download cert signing request and upload it to stripe
  3. Enable Apple Pay as capability
  4. Added Apple Pay merchant according to photo
  5. Add card to wallet on iphone

And still , apple pay is not supported, what do I miss?

#

I have also added merchant ID to stripe provided inside my react native app

dry hatch
bleak breach
vocal wagon
#

@bleak breach Yes

bleak breach
vocal wagon
#

This boolean check here returns false, when I remove it and just try to present the payment sheet using presentApplePay function from the hook nothing happens

bleak breach
#

That's not Payment Request, that's React Native.

vocal wagon
#

Pardon, I meant react native

bleak breach
#

If isApplePaySupported isn't returning true on an iOS device, then the most likely reason is that there isn't a card saved in your Apple Wallet

vocal wagon
#

Let me try to add a new one

bleak breach
#

Bear in mind that it has to be a real card, not a Stripe test card. You won't get charged with Stripe when using your test keys. Apple Wallet won't accept a Stripe test card

peak flame
#

$customer = Customer::retrieve($plan->customer_id); $customer->sources->create(array("source" => $token)); $customer->save(); what does the $customer->save(); do?

#

Where does $customer->save(); customer information?

bleak breach
#

@peak flame That's how you update a customer in old versions of stripe-php

peak flame
#

Does old version of stripe-php use old stripe API ?

bleak breach
vocal wagon
#

@bleak breach the flow in our application is: We use the CardField component you provided inside the application to get the users info so that we can auto subscribe them to our product, we need the card information so that we can also charge them on the admin panel of our app. Is it possible to extract the card information f rom apple pay so that we can do this?

bleak breach
vocal wagon
#

I do not need to use one time payments, only subscription based payments

bleak breach
vocal wagon
#

@bleak breach I removed the old card and added a new one and now the payment sheet is presented! Thank you

kindred frigate
#

Hello,
Can you share payment-intent API code in Asp .net MVC

peak flame
#

Does old stripe-php use stripe API 2020-08-27 too?

#

$customer = Customer::retrieve($plan->customer_id); $customer->sources->create(array("source" => $token)); $customer->save(); what does the $customer->save(); do?
Where does $customer->save(); save or update customer information?

#

Does it save/update in dashboard?

vocal wagon
#

@bleak breach Just one more quesiton regarding the recurring payments for Apple Pay, what would be the flow, do I need to pass in a token? Where can I find a guide?

peak flame
#

Or inside of stripe?

bleak breach
peak flame
#

Yes for what?

#

Ok, understood.

#

$customer = Customer::retrieve($plan->customer_id); $customer->sources->create(array("source" => $token)); $customer->save(); what does the $customer->save(); do?
Where does $customer->save(); save or update customer information?
Does it save/update in dashboard?

#

Or inside of stripe?

#

Inside of customer database of stripe?

bleak breach
#

I don't understand what you mean by that @peak flame. When you save a customer it'll be stored on Stripe yes, you'll also be able to see that update on the dashboard

peak flame
#

Ok

bleak breach
bitter shale
#

I have implemented stripe payments on a web page using their API. A user says they cannot click in the fields to enter their credit card information. The majority of users are fine, and making payments ok.

bleak breach
bitter shale
#

no error, their screenshot just shows the area where the credit pard details usually go

peak flame
#

When adding a card, I got error for https://api.stripe.com/v1/tokens , Your card was declined. Your request was in live mode, but used a known test card. , what does that mean? I have used 4242 4242 4242 4242 card number.

bleak breach
#

The error is pretty clear. You were using your live API keys, but used the 4242 test card.

bitter shale
bleak breach
# bitter shale

That doesn't look like a problem with Stripe, more like a problem with your UI. You should ask for details from your user to see if you can recreate the problem.

kindred frigate
#

Hello,

Can i know what is difference between PaymentIntents or Checkout and which is preferred for 3d secure

peak flame
#

Bun .env file, I have used STRIPE_KEY="sk_test_..."

#

Is it called from javascript getting card information?

bleak breach
bleak breach
peak flame
bleak breach
#

There's no live or test mode endpoint, the only differentiating factor is which API key you use, your test key (sk_test_123) or your live key (sk_live_123)

#

The endpoint is always the same regardless of test or live mode

peak flame
#

Bun .env file, I have used STRIPE_KEY="sk_test..."

bleak breach
#

Are you tokenizing from the client? If so you are probably using your live publishable key pk_live_123

peak flame
#

Yes, it is creating token from javascript, Stripe.card.createToken(...

bitter shale
#

We have had 12 successful transactions, this is the first time we have seen this issue

peak flame
#

What does publishable key do?

#

Yes, there is Stripe.setPublishableKey('pk_live_...

bleak breach
#

The publishable key is the key you use on your frontend. It's used amongst other things to tokenize cards and confirm payments

vocal wagon
#

Is it possible to extract card info from apple pay so that the user can be charged from the admin panel?

What we have now is that the user adds his card via CardInput field, and then we save that for future surcharges, but with apple pay I don't see a way how I can extract that card information

bleak breach
bleak breach
river star
vocal wagon
#

I basically need to save the user's card in the stripe dashboard, via apple pay

#

I don't need immediate payments, just to save the users card

hollow prairie
#

@vocal wagon Hey, taking over for @bleak breach. Just getting caught up!

kindred frigate
#

Hello,
i am looking OTP integration means if user entering card details they get OTP in your phone and once enter the OTP it will process for further. so can you suggest

vocal wagon
#

Hi, okay! I can summarize for you real quick,
Without apple pay , we user the CardField to save the users card, and then we use that card info to subscribe the user to our product
We also use the card info if we need to apply a penalty fee to the user

#

I need to be able to save user's payment info somehow so that we can apply additional fees, without presenting any kind of payment sheet

#

hello, Is it possible to install the stripe in Spain on the shopify page?

hollow prairie
#

@river star Hmm, that's strange and hard to debug without some additional context. Can you provide any logs from the browser that indicate an error?

#

@kindred frigate Hey! You mean one-time password for additional payment auth?

kindred frigate
#

Yes

undone hound
#

Can i confirm this with someone, using multiparty payments where i receive money from alot of customers and pay out to alot of suppliers, require i make a stripe account for every single supplier?

hollow prairie
#

@vocal wagon So there's no initial payment when collecting payment details?

#

@undone hound Hello. Can you describe your business use case a little more? Sounds kind of like a marketplace, which Connect is perfect for

vocal wagon
hollow prairie
#

@vocal wagon Hello! That should be possible yes, although Shopify have their own payment flow built-in so not sure why you'd want to do that

undone hound
#

Its completely theoretical at the moment, but I was thinking of something like gumroad but for slightly more expensive things

#

It is like a marketplace

vocal wagon
#

So we have
a) User saves card
b) We auto subscribe them
c) Using the stripe dashboard, we can apply additional penalties

But our problem is, we can't "extract" card info from apple pay

undone hound
#

but I'm based in Malaysia, and the customers and suppliers might be businesses of themselves

#

So I'm not too sure about creating multiple stripe accounts for businesses

hollow prairie
river star
undone hound
#

Not to mention the actual payment gateway that I'm interested in implementing is FPX, which is local to malaysia, I also noticed a line that says the maximum is RM30,000 , which I think might be too low for some of the customers I intend to work with

hollow prairie
#

@river star You really need a way to replicate that issue directly so that we can help debug it

#

@vocal wagon We tokenise the Apple Pay card data on the client for this very reason

#

@undone hound If you wanted to automate multi-party payments then each party would need a Stripe account yes

vocal wagon
#

@hollow prairie So we should always go with the PaymentSheet , to first create an intent and then subscribe?

#

also, the PCI is EU based no? Our clients are from US

hollow prairie
#

@vocal wagon You're confusing PCI with SCA (I think). SCA is Europe focused (right now, nothing to say that won't change in the future - which is why we recommend building compliant payment flows regardless of where you currently operate)

#

@vocal wagon Everybody, regardless of geographic location, must be PCI compliant when handling card data. By using our APIs and libraries, you are PCI compliant because of how we tokenise payment data. If never actually touches your servers

#

@vocal wagon So objects like Payment Methods (pm_xxx) are tokenised versions of your customers payment data than can be re-used, without you ever actually touching the raw credit card data

vocal wagon
#

@hollow prairie But we don't save the card information in our database, we save the card on the Stripe Dashboard, however we do need the users Card Number and CCV ( we use dangerouslyGetFullCardDetails prop)

hollow prairie
#

@vocal wagon But you shouldn't be really (unless you have your own PCI compliance)

vocal wagon
#

So how do I save the card info, do I just need to use the Prebuilt Payment UI ?

#

I mean, in order to make additional charges in the future. Our only payment method is subscription base

hollow prairie
vocal wagon
#

So basically, I should use this for both regular payments and apple pay, even subscriptions only?

#

not by saving the card field

#

Do I also need to ask for permission to save data, even when using the prebuilt payment system as you linked?

hollow prairie
#

@vocal wagon You should, yes:

When saving card details to use for future off-session payments, especially in Europe because of regulations around card reuse, get permission to save a card. Include text in your checkout flow to inform your customer how you intend to use the card.

#

@vocal wagon Yes I would recommend building your integration this way to save payment data

kindred frigate
#

i am not clear about PaymentIntents or Checkout. can you explain and what are the features and how to integrate onetime password

hollow prairie
#

@kindred frigate Do you have any specific questions? They're our recommended products for building SCA compliant payment flows. Checkout is a (low-code) Stripe hosted solution, where as if you build your own custom checkout you'll be using PaymentIntents directly

vocal wagon
#

Hello, please can you tell me where exactly and how to call the handleStripeJsResult & handleServerResponse functions to trigger the 3DS call? Thank you
https://pastebin.com/VXguCkgG
https://stripe.com/docs/payments/accept-a-payment-synchronously?platform=web#web-handle-next-actions

river portal
#

Hello guys does stripe charges any fee when we transfer amount from our stripe account to connected account.

hollow prairie
#

@vocal wagon Hey! handleServerResponse is called in step 3 of that guide you've linked, in the Promise chain of the request to send the Payment Method object to your server

#

@river portal Hello! There is no fee to transfer between accounts, no. You can verify this in test mode

#

@vocal wagon Is there a specific use case for following the server-side finalisation guide? We generally advise against that flow unless absolutely necessary

vocal wagon
#

@hollow prairie I am in Custom, the capture can sometimes be triggered in a second step. Thank you for your answer, I don't understand why I can't find any of the elements of the guide in my original code which worked so far (bug for about 3 weeks with the 3DS). I don't know where to intervene to unlock this.

#

@hollow prairie Please help me, I'm not sure what to do? Do I have to completely re-code the client-side payment form (HTML / JS)?

hollow prairie
#

@vocal wagon You mean you're using an auth and capture flow?

vocal wagon
#

@hollow prairie The payment workflow varies according to certain conditions.
The most complete is:
1 / Customer payment (borrows) with 3DS if necessary
2 / Creation of the service provider (IBAN)
3 / Confirmation of the debit
4 / Transfer of funds to the service provider

#

@hollow prairie Is this why the pupop to request the 3DS is no longer triggered? Because payments without 3DS still work well.

hollow prairie
#

@vocal wagon In some cases 3DS may not be required. It's not always necessary, and it's up to the issuing bank to determine whether or not it's needed. We just relay that message and facilitate the auth capturing if needed

#

@vocal wagon So if the issue is that you're not seeing the 3DS prompt, perhaps you need to try one of those cards!

vocal wagon
rigid ridge
#

Hi! Is it possible to pay an invoice before it's finalised? I'd like to call directly Invoice.pay instead of having to do Invoice.finalize and then Invoice.pay

vocal wagon
#

@hollow prairie My problem is, my code was working fine.
I am now losing around 30% of my turnover.
I would like to understand what I need to change to resolve.

hollow prairie
vocal wagon
#

@hollow prairie I've been trying to get a clear answer for weeks. Via freenode, via chat support, via suppport calls and finally I find out that you have switched here.

Please give me a clear action to do, thank you

hollow prairie
#

@vocal wagon I'm still not sure what your actual issue is. Are you saying that your current code does not capture 3DS auth when required?

vocal wagon
#

@hollow prairie Yes exactly, the code no longer asks for the 3DS (The client side popup) when it is necessary on the client side before returning to the PHP execution.
For your information, however, I received this from you by email on May 12, 2021: "According to our information, your XXX account is already using our SCA ready solutions to accept payments with Stripe. Please note that we will apply exemptions and We will only ask for authentication when the cardholder's bank requires it. In addition, we will take into account for each country the timetable for the application of this regulation in order to limit the problems. "

hollow prairie
#

@vocal wagon Have you verified that the 3DS flow is actually broken by testing it with a test card? Is there a specific error in the browser you can share when the code breaks?

river portal
#

@hollow prairie

one more thing

how much charges apply on apple pay, google pay and debit card when we deduct amount from one of these using stripe token ?
how much transaction fee is applied on this transaction

vocal wagon
#

@hollow prairie Yes, I tested with a card, as said just before.
On the client side, I have no visible JS error.
On the PHP side, I end up with the require-action status

hollow prairie
#

@river portal Are you referring to Stripe transaction fees or anything Connect related?

vocal wagon
#

@hollow prairie Well, if I understood correctly, I have to replace PaymentIntent by confirmCardPayment and when it is done, it is on the PHP side that the 3DS will be called when necessary, you confirm?

hollow prairie
#

@river portal Same transaction fees apply, regardless of how the card details were collected (i.e. via a wallet like Apple Pay or collecting card details via Elements): https://stripe.com/pricing

#

@vocal wagon Where is your call to create the PaymentIntent?

vocal wagon
#

@hollow prairie Yes, this is the full code on the JS side

hollow prairie
#

@vocal wagon That's code to retrieve a PI. How are they created?

river portal
#

@hollow prairie

what specifically do you mean by this?

"regardless of how the card details were collected "

steady thorn
#

Hey !

I have a problem, in url field, we cant add space, but its actually working, how can i fix it ??

vocal wagon
#

@hollow prairie On the HTML / PHP form example here:
$ intent = \ Stripe \ PaymentIntent :: create ([
'amount' => $ tokens_price,
'currency' => 'eur',
'receipt_email' => $ util_email,
'payment_method_types' => ['card'],
'capture_method' => 'manual',
'description' => 'Recharge: 5',
'confirmation_method' => 'manual'
]);

hollow prairie
#

@river portal You mentioned Apple Pay and Google Pay as if the fee would be different. I was just confirming that isn't the case. Unless I misunderstood the question!

#

@steady thorn Hello there. url field for what exactly? Which API are you using?

steady thorn
#

hey, im trying to remove space from, i'll give you news later

hollow prairie
#

@vocal wagon You're doing both manual confirmation and manual capturing, so your flow is a little bit more complicated than the basic guide.

However your JS is missing the confirmCardPayment call which will invoke the 3DS flow if required (which is what requires_action indicates)

toxic quartz
#

hello there

How can I cancel the future invoice for the subscription and allow users to use until the current billing cycle

meager hawk
toxic quartz
#

@meager hawk which webhook event I will get at the billing end date ?

meager hawk
#

customer.subscription.deleted

toxic quartz
gentle thicket
#

Hello, I have simple problem. How can I add trial to the subscription using checkout? I see options like trial_period_days but this is for subscriptions. For Checkouts I found free trial on price, but it's legacy

gentle thicket
#

Ou, stupid me. Thank you!

frosty coyote
#

Is there an event for when a subscription is paid or is it just the standard invoice events?

meager hawk
vocal wagon
meager hawk
#

@vocal wagon you create the PaymentIntent on the backend, have an if-statement that checks if the stautus == "requires_action:" , if it is then you return the details to your frontend Javascript code and it calls those stripe.js functions.

frosty coyote
#

ok cool, i'll just use that. We're looking to notify our customers if their payment method is expiring soon.

We don't currently have the information, so was working out the best way for me to gather it without changing too much about the current process. I think invoice paid event, and then looking for subscriptions is the easiest approach to gather and keep a list for another service to then process and send notifications as required. Thanks

vocal wagon
#

@meager hawk Ok, thanks, I will try this.

river star
#

@meager hawk Hi,
Could you please tell me what's the error of "req_mF7GAVdib7owS5"?

meager hawk
#

@river star

"No such PaymentMethod: 'pm_1JDnu8DRAO5UDaqFV1uqFEe5'; OAuth key or Stripe-Account header was used but API request was provided with a platform-owned payment method ID. Please ensure that the provided payment method matches the specified account."

kindred frigate
#

What is mean SetupIntents and PaymentIntents

toxic quartz
meager hawk
#

@river star you can't use a PaymentMethod created on the platform account directly on a connected account. You have to either create the PaymentMethod on the connected account (https://stripe.com/docs/connect/authentication#adding-the-connected-account-id-to-a-client-side-application , as also described at https://stripe.com/docs/connect/creating-a-payments-page for Direct Charges); or you'd copy the PaymentMethod to the connected account : https://stripe.com/docs/payments/payment-methods/connect#cloning-payment-methods

#

@toxic quartz not really unfortunately! you could just cancel a test mode subscription immediately and it will generate the same event, so you can 'pretend' in your code that it actually happened later.

toxic quartz
river star
meager hawk
#

@river star to be clear you're asking a separate question now.

#

that's because you didn't register the domain for Apple Pay on the connected account

#

you need to make the API call described there (using your livemode API key) to register the domain for the connected account and then pass stripeAccount to stripe.js for Apple Pay to work in the Direct Charges scenario.

river star
river star
vocal wagon
#

@meager hawk When I call the JS for the handleCardAction function (backend side) I have the following error, any idea? "No such payment_intent: 'pi_1JDpcmBfAoJM0K2yN6mxto… ut a live mode key was used to make this request."

gentle thicket
#

I recived an error from Stripe API

Checkout does not support multiple prices with different billing intervals.

Is there workaround for this? I will have a two subscriptions to choose, one for 1 month (20 PLN) and the second for a year (40 PLN). Something like to the picture, but with 2 options. My actual solution is 2 buttons on my website. One for monthly subscription, second for yearly. It's the best possible solution?

meager hawk
#

@river star not sure I follow. That's a good thing right, you want the button to appear, right?

#

@gentle thicket yes the only option is to have two separate subscriptions for the customer (https://stripe.com/docs/billing/subscriptions/multiple), you can't have different intervals on a single subscription, since a subscription is basically a framework for generating a single Invoice on a given schedule

#

@vocal wagon I think the error is self-expanatory, sounds like you have mixed up your API keys since you create the PaymentIntent in test mode using a sk_test_xxx but try to do something with it using a livemode key pk_live_xxx so that won't work

gentle thicket
#

@meager hawk It makes sense. Thank you one more time. Have a nice weekend 😄

river star
meager hawk
#

@river star yep and that's usually fixed by registering the domain on the connected account

river star
#

You mean here?

meager hawk
#

no

#

is that a screenshot from your account, or the connected account's dashboard?

river star
#

That's our platform account. There are a few connected accounts as well.

meager hawk
#

this part :

#

what I'd usually recommend is setting up your system to make this call as soon as you connect a new account to your platform so they are setup and ready to go

vocal wagon
#

@meager hawk I manage to display the 3DS popup, during the 2nd call to the backend, despite my confirmation, the status remains at requires_action?
pi_1JDpzNBfAoJM0K2ytm7fAWa5

river star
#

@meager hawk Thanks... That's the missing part. 🙂

I'm using .NET version. So do I need to use that created variable {var domain} response for any further requests? I mean for confirmation or any other requests.

meager hawk
#

@river star nope! It's a one-off thing, once you make the registration call and it succeeds you don't need to retain or store anything from there

river star
#

@meager hawk Thanks! 🙂 It will be going to register each and every Apple Pay intent creation. Is that correct? Or is it just a one-time registration.

meager hawk
#

@river star it's a once-off for each account, you don't do it for each PaymentIntent or anything like that. As I mentioned a good approach is setting up your system to make this call as soon as you connect a new account to your platform, as like a step during onboarding the account, so they are setup and ready to go

river star
#

@meager hawk Ahhh... Got it. 🙂

slender relic
#

Hey there. In my app, there are 3 types of users. Each has 3 plans they can subscribe to. Right now, in Stripe those plans are set as 3 Products (one per user type) and each product has 3 prices (the plans the user can subscribe to).
I want to make a Billing Portal but when creating the portal configuration, it states "For each product, its price must have unique billing intervals."
The issue is: if I now create one product for each subscription, what will happen to all the current user's plans when accessing the Portal? They will still have the old plans/prices so how can I update that and keep the user's plan remaining days?

meager hawk
#

@slender relic hi! I'm not entirely sure I follow, but just creating new Products/Prices won't change anything for existing customers(except that they can maybe choose to switch to them in the Portal). If you want to explicitly change what the customer is subscribed to you'd do that directly by calling the API or using the dashboard to edit each individual subscription : https://stripe.com/docs/billing/subscriptions/upgrade-downgrade#changing

kindred frigate
#

Is there a need to create a customer in the PaymentIntents integration process?

slender relic
meager hawk
#

@kindred frigate no, it's optional. You can create and use one if you'd like to save payment details for the user to use for future payments for example but you can also do entirely standalone payments if you prefer

slender relic
#

Just another thing: how can we customize the plan features that appear under the plan name in the portal? My plans have multiple lines. When I edit a plan, in the Description field I cannot add line breaks.

meager hawk
#

@slender relic I don't really follow what a "non-portal-existing plan is" but if there's something wrong with your configuration you should get a failure earlier in the process like an API error when creating the configuration object or the Session object.

You can't edit the description beyond what you've seen there, I don't think there's any way to use line breaks or any special formatting.

river star
#

@meager hawk We have added that registration code into intent. And later we will remove it from payment intent and put to one-time registration...

Anyway, it's not fixed the previous issue.

meager hawk
#

@river star what's the ID acct_xxx of the connected account?

#

@river star also if you can give me a link directly to that page you're testing on that's the fastest way for me to help you

slender relic
# meager hawk <@!184482495264194560> I don't really follow what a "non-portal-existing plan is...

I have 3 plans (A, B and C) with 3 prices each. But this is not compatible with the Portal.

So I will create 9 new plans (D, E, F, G, H, I, J, K, L) with 1 price each so then I can use them in Portal.

Users with the current A plan, will only be able to see D, E and F in the portal. Users with the current B plan, will only be able to see G, H and I in the portal. Users with the current C plan, will only be able to see J, K and L in the portal. I will create multiple portal configurations for this.

So now when a user with plan B (can only see the new plans G, H and I) goes to their portal page, will that work? They will be able to change their plan to G, H or I, right? No B plan will be present, even if it's their current plan?

meager hawk
#

sorry, I think when you say "plan" you mean "Product". Plan has a specific meaning in Stripe as well so it's confusing me

slender relic
#

Yes, Product, sorry.

river star
meager hawk
#

I don't think I can give you a better answer than just testing it yourself as I'm having trouble following you. Like I don't actually know what "I have 3 products (A, B and C) with 3 prices each. But this is not compatible with the Portal." means

river star
kindred frigate
#

Is there any impact on recurring payments if we implement 3D Secure

meager hawk
#

@river star there's no domains registered on that account

novel heath
#

if we update the stripe npm package version, does that automatically upgrade the default API version that the code uses too?

meager hawk
#

so you either didn't make that API call or made it wrong(my guess is you didn't include StripeAccount in the RequestOptions)

#

@novel heath no, for stripe-node the version of the library and your Stripe API version are completely separate

#

(that's not the case for our Java/.NET/Golang libraries but that's different as they're typed languages)

#

@kindred frigate the short answer is yes but that's such a vague question I'm not sure what else I can say.

novel heath
#

ok great thank you @meager hawk

vocal wagon
#

@meager hawk hello there everyone, I'm new so I have no idea how this works. I am looking for a list of failure_messages sent within the payment intent, so that I may translate them. The pages available in the Stripe Docs don't look up to date (some messages are missing, others are different, etc etc)... anyone have any idea where I may find this info?

slender relic
# meager hawk I don't think I can give you a better answer than just testing it yourself as I'...

Like I said before, the way I have the Products/Prices set is incompatible with Stripe Portal. "For each product, its price must have unique billing intervals."
I get this error when creating a Portal Configuration using my current product/price.

I have 1 product called Agent Plan with 3 prices: Lite, Starter and Pro (each with their features and price)
Using this throws the error. So I need to change what I have.

I will need to have 3 Products: Agent Lite, Agent Starter and Agent Pro. Each of those Products will have only 1 price.

My question is: what happens when a user ends their subscription of their old Lite price in the old Agent plan? Will they be able to go to the Portal and upgrade to the new Produt Agent Lite?

river star
meager hawk
#

@vocal wagon the docs should be up to date so I don't quite follow. In general you'd usually use our client libraries like stripe.js and they return localised errors by default. If you're handling things manually then you'd look at the code field of the error. The easiest way to understand it is to test your code with the cards from https://stripe.com/docs/testing#cards-responses and expeirment with catching the errors and inspecting the data.

vocal wagon
#

hi @meager hawk i will keep trying then... i am located in italy and my browser is in italian, but I am getting error messages in english. we are using stripe.js and sepcifically the stripe magento integration

meager hawk
#

@river star not really unfortunately with Connect, it's not easy to debug unfortunately. I know I said you don't need the domain object but maybe try registering again and this time Console.WriteLine(domain.Id) and share that so we can have a look. To answer your other question I'd rather not get into a DM, if you're not comfortable sharing a link to your site then https://support.stripe.com/email can help directly

sick talon
vocal wagon
#

@sick talon ok thank you!

meager hawk
#

@slender relic Not sure what you mean by "end" but I think the answer is yes

#

sorry, I can really only suggest simply testing this out in test mode with your specific set up as it's the fastest way to see what's possible

vocal wagon
#

ok thank you !

#

haev a good day everyone!

river star
#

@meager hawk You were correct. The connected account isn't registered correctly before. Now it's working fine. Thank you so much. 🙂

meager hawk
#

@river star great!

kindred frigate
#

What is mean checkout and element ?

sick talon
river portal
#

as i could not understand @hollow prairie properly

i was saying that what charges does a user have to pay when he transfers money from google pay or apple pay into our stripe account
as per stripe documentation they charge 2.9% of amount transferred + 0.30 $ on each successful transaction.

is this applicable on all cases or varies for different cases

sick talon
# river portal as i could not understand <@!844978455355195413> properly i was saying that wh...

The support team would be answer any fee calculations specific to your account via https://support.stripe.com/contact (if the explanations on https://support.stripe.com/questions/pricing-for-apple-pay-with-stripe aren't sufficient)

sand tusk
#

Is storing the Terminal "ConnectionToken" ok? The docs say short lived but it's not clear what that means.

sick talon
sand tusk
sick talon
#

Regardless, you'd generate one immediately before using it (you'd never store one for later or reuse the same one again)

sand tusk
vocal wagon
#

I am using Private routes with Gatsby (Authenticated) but I can't seem to get my stripe webhooks work from it

#
app.post('/app/profile', express.json({type: 'application/json'}), (request, response) => {
  const event = request.body;

  // Handle the event
  switch (event.type) {
    case 'checkout.session.async_payment_succeeded':
      const paymentIntent = event.data.object;
      console.log(paymentIntent)
      //console.log(`PaymentIntent for ${paymentIntent.amount} was successful!`);
      // Then define and call a method to handle the successful payment intent.
      // handlePaymentIntentSucceeded(paymentIntent);
      break;
    case 'checkout.session.async_payment_failed':
      const paymentMethod = event.data.object;
      console.log(paymentIntent)
      // Then define and call a method to handle the successful attachment of a PaymentMethod.
      // handlePaymentMethodAttached(paymentMethod);
      break;

---
2021-07-16 09:16:50   --> customer.created [evt_1JDrqQDtAqr0NEuGqx2zpzJS]
2021-07-16 09:16:50  <--  [404] POST http://localhost:8000/app/profile [evt_1JDrqQDtAqr0NEuGqx2zpzJS]
2021-07-16 09:16:51   --> customer.updated [evt_1JDrqQDtAqr0NEuGShVhAnue]
2021-07-16 09:16:51   --> checkout.session.completed [evt_1JDrqQDtAqr0NEuG0i2KKQ9r]
2021-07-16 09:16:51  <--  [404] POST http://localhost:8000/app/profile [evt_1JDrqQDtAqr0NEuG0i2KKQ9r]
2021-07-16 09:16:51  <--  [404] POST http://localhost:8000/app/profile [evt_1JDrqQDtAqr0NEuGShVhAnue]
2021-07-16 09:16:51   --> payment_intent.succeeded [evt_1JDrqQDtAqr0NEuGO4u84XSg]
2021-07-16 09:16:51  <--  [404] POST http://localhost:8000/app/profile [evt_1JDrqQDtAqr0NEuGO4u84XSg]
2021-07-16 09:16:52   --> charge.succeeded [evt_1JDrqQDtAqr0NEuGSawdgW9T]
2021-07-16 09:16:52  <--  [404] POST http://localhost:8000/app/profile [evt_1JDrqQDtAqr0NEuGSawdgW9T]
2021-07-16 09:17:16   --> payment_intent.created [evt_1JDrqqDtAqr0NEuGoAkD9PvD]
2021-07-16 09:17:16  <--  [404] POST http://localhost:8000/app/profile [evt_1JDrqqDtAqr0NEuGoAkD9PvD]
sick talon
vocal wagon
#

Oh

#

So how would I handle payments with Stripe for users?

slender relic
#

When creating a Portal Configuration via API, how can we say what Products we want users to be able to pick from?

I'm using PHP and I am doing what the docs state:
https://stripe.com/docs/api/customer_portal/configurations/create?lang=php

The data I'm using is:

'features' => [
    //
    'subscription_update' => [
        'default_allowed_updates' => [
            'price',
            'promotion_code',
        ],
        'enabled' => true,
        'products' => [
            [
                'prices' => [
                    'price_XXX',
                ],
                'product' => 'prod_XXX',
            ],
            [
                'prices' => [
                    'price_XXX',
                ],
                'product' => 'prod_XXX',
            ],
        ],
        'proration_behavior' => 'create_prorations',
    ],
],

This creates the config but when I visit the page with this config, no plans appear to pick from.
Am I doing anything wrong?

vocal wagon
#

@sick talonalso I love your name, that movie is so good

sick talon
sick talon
vast grove
#

I have multiple locations with one reader/terminal per location. Would discoverReaders detect that specific terminal if they're on the same internet connection? Or do I need to specify which location it is at?

For example:
Location A at Terminal A <- works fine
Location B not picking up Terminal B. Is it due to the discoverReader() trying to find terminal A or should it discover B if connection between app+terminal are the same?

I'm simply just using:
const config = { simulated: false};
discoverResult = await terminal.discoverReaders(config);

slender relic
#

Does the bpc_XXX help?

sand tusk
# sick talon You'd use a ConnectionToken each time you connect a reader to a device/computer....

We're using Stripe Terminal in a box office (event ticketing) scenario where personnel on a single device will continually re-use the same reader. Right now we have add to cart, checkout, existing reader is pre-selected from a drop down, click "connect to reader" (terminal.connectReader), "collect payment" (terminal.collectPaymentMethod & terminal.processPayment). With automatic reconnection we can skip the "connect to reader" if the stored serial number matches a discovered reader. Outside of making automatic reconnection happen does that flow make sense? TIA

sick talon
sick talon
sick talon
vocal wagon
#

@sick talon is this up to date?

sand tusk
vocal wagon
#

Almost been a year since last edit. Moreover, I was trying to test webhooks from checkout but it seems to only work for UK? checkout.session.async_payment_failed (NOTE: needs to be run with a UK Stripe account) checkout.session.async_payment_succeeded (NOTE: needs to be run with a UK Stripe account)

sick talon
sick talon
vocal wagon
#

I am not sure. I am using stripe.redirectToCheckout(...) and I want to get if a payment was successful after the checkout is finished and I am using the webhook endpoints for checkout from the site

sick talon
vocal wagon
#

I have my webhooks looking at /app/profile which is a private route, is this bad practice? Should I have my webhooks in the root folder?

#

Ill describe what Im trying to do

sick talon
sick talon
vocal wagon
#

It should be using the CLI

sick talon
# vocal wagon It should be using the CLI

If you're using the CLI, the CLI opens a websockets connection and forwards the events locally to wherever you want. In a live mode integration you would stop using the CLI and use a webserver somewhere.

vocal wagon
#

I am not sure how to check if a payment is successful using redirectToCheckout()

#

That's my main issue, and I thought using the checkout endpoints was how I would test that but it seems not the case.

sick talon
#

Basically you set up a webhook endpoint (in test mode you can use the CLI for redirecting to a local endpoint) and watch for the events mentioned in that doc.

vocal wagon
#

Ok, I will give it a go and see if I can get it to work

#

Thank you

marble bolt
#

I'm attempting to change my account for payment but it's not allowing me to what can I do

cerulean pineBOT
#

:question: @marble bolt Have a non-technical question, account issue, or need one-on-one support?
We wish we could help, but this community is focused on developers and technical discussions. Our support team will be able to assist you better than we can: https://support.stripe.com/contact

marble bolt
#

Thank you in getting no where with that but I appreciate the response

desert ferry
#

Hello, can Venmo Mastercards (The Venmo Credit Card) be used with Stripe?

sick talon
# desert ferry Hello, can Venmo Mastercards (The Venmo Credit Card) be used with Stripe?

No idea on the Venmo part, but Mastercards is general are fine. The support team can likely answer definitively via https://support.stripe.com/contact

desert ferry
#

Thanks.

slender relic
karmic coral
#

How to connect stripe to my WordPress Website without Woo-Commerce???

bold basalt
#

@karmic coral hello, you'd have to use some plugin, or use PaymentLinks for a 'no code' integration

#

@slender relic hello, looking

quaint edge
#

Hey guys, I'm trying to set up a subscription with a 30 day trial at the beginning and a billing cycle starting at the following first day of the month after the trial ends. In the Licensed model it is possible to prorate the time after trial_end to the start of the billing_cycle_anchor, but the model I need to implement is the Metered billing. Here I have the problem that the end of the trial period resets my preset billing cycle. Do you guys have experience with this problem or know about a workaround for it?

karmic coral
bold basalt
naive phoenix
#

Hi there, is there any possibility to set tax reverse charge for a customer when using stripe.checkout.sessions.create to create the customer? So what I want to achieve is that for the customer that is created during the checkout by stripe, tax reverse charge is enabled. How is that possible without first creating the customer using a second API call?

slender relic
# bold basalt <@!184482495264194560> you can specify the Prices / Products that can be switche...

Am I not doing it in this example:

'features' => [
    // ...
    'subscription_update' => [
        'default_allowed_updates' => [
            'price',
            'promotion_code',
        ],
        'enabled' => true,
        'products' => [
            [
                'prices' => [
                    'price_XXX',
                ],
                'product' => 'prod_XXX',
            ],
            [
                'prices' => [
                    'price_XXX',
                ],
                'product' => 'prod_XXX',
            ],
        ],
        'proration_behavior' => 'create_prorations',
    ],
],

I have there two prices and two products in the features.subscription_update.products

bold basalt
#

@slender relic you are in this one, the request you linked me wasn't passing this

slender relic
#

Thing is, that was taken directly from the code that creates the request (in this case is an update to the config)

rotund briar
#

Hi, My web server use Classic ASP. It's is possible to use Stripe payments ? And have you help in french language ?

bold basalt
#

@slender relic gotcha, but the request you sent me wasn't passing a products: hash at all, is what I'm saying. You can look up the request in your dashboard to see what parameters are being passed in the request body

#

@rotund briar hello, yes I think it should be doable though I'm not experienced with ASP. This channel can help with English

rotund briar
#

tx, so I will learn english first. Tx

bold basalt
#

@naive phoenix ah you mean a tax_exempt enum?

slender relic
bold basalt
#

@quaint edge hello, not sure that is supported without resetting the billing cycle anchor, with metered bililng

naive phoenix
bold basalt
#

@naive phoenix gotcha, yeah Checkout doesn't support passing through a param like that, you'd have to update the Customer after creation

abstract compass
#

We are testing our fixed price subscription by changing it's trialEnd date and billingcycleanchor. However, we just realized that once it renews it opens an invoice then waits an hour to pay. https://stripe.com/docs/billing/invoices/subscription Is there anyway to get it to pay faster (at least in the test environment) so we can test renewals faster?

naive phoenix
bold basalt
#

@naive phoenix you can create a Customer first yes, then pass that to Checkout

#

@abstract compass hello, you can manually finalize and pay the Invoice via the API to get it to create a payment

naive phoenix
quaint edge
carmine lintel
#

hello - is there a way to show individual line items for a one-time charge? or is the description the only option?

bold basalt
#

@carmine lintel hello, Charges don't support line items right now

carmine lintel
#

@bold basalt is creating an invoice the only way to use line items?

bold basalt
#

@carmine lintel yes. Checkout also supports line items and the receipt email shows line items.

frail wigeon
#

Good morning!

bold basalt
#

@frail wigeon hello

carmine lintel
#

is there an additional fee to use Checkout?

bold basalt
#

@carmine lintel don't think there is an additional fee

carmine lintel
#

I like the line item/receipt capabilities of Invoices but I see that there will be an additional charge added

frail wigeon
#

I am a walking talking weird tech glitch magnet, I have caused more support people across very big tech to say you did what? wait how did you do that? or just silence! But I am a pastry chef who out of necessity has to learn to do it herself, so please if my questions sound very simple or if you think I should already know, trust this I lost all ego in asking for insight, experience, or any opportunity to learn when I took out my ENTIRE website putting in Bing bot and integrating payments.

heady pagoda
#

Hello Everyone

#

🙂

#

I have a question regarding connected accounts

#

The question is

#

if I want to know via a web hook or the stripe CLI, if an connected account has the ability to receive pay-outs

#

which webhook event or API request should i use to find out this information?

#

my server side code is writen in Python by the way

compact field
#

Hello,

I'm looking to use Stripe Checkout for one time purchases. The issue I'm encountering is automation. What is the best way to pass data over the checkout process and back to my server (PHP) once the purchase is paid?

#

I'm guessing something involving webhooks

bold basalt
#

@heady pagoda the account.updated webhook event is what you want to listen to

#

@compact field you'd implement webhook events and listen to checkout.session.completed event

compact field
#

Awesome thank you! How could I pass custom data over from checkout to be returned in that webhook?

bold basalt
#

@compact field that webhook event would be sent from Stripe to you, it will contain the whole CheckoutSession object in it. So you don't really "pass" anything from the Checkout page to your webhook endpoint, rather Stripe informs you "here is the Checkout Session that was just paid"

compact field
peak flame
#

If I do stripe listen from command line then will I have to do: striple trigger <some-event> from command line too?

#

Can't I check triggering event from PHP code?

bold basalt
#

@peak flame you can trigger webhook events from your PHP code, you just have to make the requests manually. The trigger command makes those requests for you.

valid hound
#

Is the arrival_date for a Payout intended to just be a YYYY-MM-DD date?

valid hound
bold basalt
#

@valid hound it is a UTC timestamp

vocal wagon
#

I have been trying for so long but I can't seem to get basic webhooks to work with Gatsby

#

I am using stripe CLI to trigger the events, is there something wrong with my server code?

valid hound
# bold basalt <@!865634257651892254> it is a UTC timestamp

Right but looking at the Stripe frontend that date isn't being converted to local time and is just displayed in UTC but just with the date part. It's causing a bit of confusion on our end since we do the time zone conversion by default for these timestamps in our app.

peak flame
#

How can I know which event is triggered for a request? For example, which event is triggered for Subsription::create()?

#

How to know related events for a request?

#

@bold basalt ?

bold basalt
#

@valid hound you mean on Dashboard?

#

@peak flame the docs cover this, but also a subscription creation API request would fire the customer.subscription.created and invoice.created and other events as Subscription and Invoices are created in your account, hence those webhooks would fire

peak flame
#

Which docs cover this?

bold basalt
#

@vocal wagon haven't set up webhooks on Gatsby before but what isn't working? you would have to explain more. Like are webhooks being received but not parsed out? signatures not verified? not hitting your endpoint at all? etc

peak flame
#

Can you please give the link of that doc?

bold basalt
abstract compass
#

We are creating a fixe price monthly subscription with free trial. Our goal is to have the user give us payment information before the trial is started, and for subsequent renewal to be charged automatically. However, we are having issues. Per Stripe document, we set the TrialPeriodDays when creating the subscription. Then create a SetupIntent and send the ClientSecret to the frontend JS. Looking at the call backs, it looks like the system automatically creates a subscription with an initial invoice of $0 for the trial, pays it automatically, and activates the subscription - this is all before I have a chance to colllect payment information from the user. How do we prevent that, instead only activate the trial once we have payment from the user?

vocal wagon
#

The above code is what I have for my server.js located in /src/server.js for my gatsby project. Then I am starting gatsby with gatsby develop on the terminal, listening with stripe using the command stripe listen --forward-to localhost:8000 for the local host in another terminal, then triggering events stripe trigger checkout.session.completed in a 3rd terminal

#

So my hooks aren't even being hit

#
const express = require('express');
const app = express();
const stripe = require('stripe')(process.env.GATSBY_STRIPE_SECRET_KEY);


app.post('/app/profile', express.json({type: 'application/json'}), (request, response) => {
  const event = request.body;

  // Handle the event
  switch (event.type) {
    case 'checkout.session.completed':
      const sess = event.data.object;
      console.log(sess)
      //console.log(`PaymentIntent for ${paymentIntent.amount} was successful!`);
      // Then define and call a method to handle the successful payment intent.
      // handlePaymentIntentSucceeded(paymentIntent);
      break;
    default:
      // Unexpected event type
      console.log(`Unhandled event type ${event.type}.`);
  }

  // Return a 200 response to acknowledge receipt of the event
  response.send();
});

app.listen(8000, () => console.log('Running on port 8000'));

WebSocket network error: The operation couldn’t be completed. Connection refused
Failed to load resource: Could not connect to the server.
#

@bold basalt

bold basalt
#

@abstract compass you create a Subscription with a trial, it'll have a pending_setup_intent . You then use the pending_setup_intent to collect a customer's card. If you don't the Subscription will never actually start cause there's no card to charge after the payment is over.
The alternative is you collect a Customer's card via a SetupIntent first, then create the Subscription.

thorn bone
#

hey man, I was looking at it... but it is not available on "invoice.payment_succeeded" event... why did you referred it to me? am I missing something?

bold basalt
#

@thorn bone can you link me the event ID

#

@vocal wagon where is the websocket error coming from? is that your gatsby page/endpoint not starting up?

thorn bone
bold basalt
#

@thorn bone yep it is there, you manually paid the Invoice so billing_reason: manual

vocal wagon
#

@bold basaltAh it is from Gatsby 😦

#

it occurs when I start gatsby develop

bold basalt
#

@vocal wagon yeah so theres some issue there, doesn't look like your server is even starting, so it isn't related to webhook events for now, from the looks of it. I don't know enough about Gatsby so can't help you troubleshoot that but you'd have to look online to StackOverflow etc on how you'd get your Gatsby project up and running

vocal wagon
#

Sounds good, thanks

valid hound
dim hearth
valid hound
# dim hearth In your dashboard settings, what timezone do you have set? (https://dashboard.st...

US-Mountain (-6), this is for connected accounts also. Not sure if the displayed dates when you're viewing a connected account changes depending on that setting.

But, for example, there's a payout with an arrival_date of 1626307200. Stripe displays that as Jul 15 on the dashboard. We have a simple dashboard for our connected account users except we're doing time zone conversion to local (since that's just what JavaScript does by default). So we end up displaying that as Jul 14 which actually is incorrect according to Stripe. Just seems weird that Stripe has that as a unix timestamp but doesn't do the time zone conversion just for this one field.

dim hearth
dim hearth
# valid hound `po_1JD7XoQnusORJZPIpEuQbzKX`

Ah, I think I understand the confusion here (and I'm sorry this isn't well documented). They key thing is that arrival_date is just a date, and shouldn't be considered as an accurate timestamp for the time a payout should arrive (because we have no idea what that could be on our end). So in your example, the arrival_date is 1626307200 which is midnight Jul 15 (in UTC time) which means the payouts is expected to arrive sometime on that day. There isn't any need for you to translate this timestamp back into your own timezone.

#

Does that make sense? (I know it's a bit weird)

fringe plaza
#

I posted this in the wrong channel:

hey! I am a college undergrad who is creating an app startup with a couple of friends. Learn more about it a @ https://pik.farm/. I was wondering if we could talk to anyone who has some experience with stripe and take them through our custom stripe integration. It would help us a lot to get some feedback as to how it can improve and be more scalable. We need help specifically with how to best implement webhooks into our current infrastructure.

Pikfarm
valid hound
dim hearth
radiant bough
#

I am working to provide a predicted stripe-conect payment for the coming month to help manage expectations of our executives.

I can see "Gross Volume" under the Connect Reports in the portal. I can even navigate through to see the payments that make up that gross volume in the connected accounts in the portal. I know I can multiply our gross volume by our revshare terms to get a predicted payment for the upcoming month.

What I can't seem to do is access those charges on connected accounts via the API.

To restate - I am trying to access transaction details that are not on the account I have credentials for, but on all of the connected accounts to that account. Specifically I am trying to recreate the number (and hopefully the detail behind) the "Gross Volume" report on https://dashboard.stripe.com/connect/overview.

Can anyone point me in the right direction?

dim hearth
radiant bough
#

but the response says that charge does not exist

dim hearth
radiant bough
#

I did not (reading now)

#

That did it!

#

thank you

thin river
#

How do I disable this "Invoice was finalized and automatically marked as paid because the amount due was $0.00"

#

Im trying to collect payment method on a 30-day free trial

dim hearth
thin river
#

It is a subscription and I am doing it manually through stripe

#

I am trying to collect payment via the stripe invoice

#

They will have to add payment after the 30 day trial via reminder email?

dim hearth
# thin river I am trying to collect payment via the stripe invoice

Gotcha - unfortunately, that's just not something that's supported. If the invoice is $0, then we mark it automatically as paid and the customer can't provide a payment method through the hosted invoice page. If you want to be sure to collect a payment for a trialing subscription upon creation you would need to do so through Stripe Checkout or through Elements. Otherwise you would need to wait until the first non-zero invoice for a user to be able to give their payment info

thin river
#

Great thanks. I will look into the check out feature

#

the payment links is the way to go

dim hearth
worldly python
#

Hello, and thanks once again for the Q&A yesterday! I'm wondering since Stripe RN doesn't support web deployment, what are the thoughts on using React Native Webview as a workaround so the app can be deployed on web/ios/android? I found this article talking talking about it, not sure if it breaks any rules or what not...
https://dev.to/impdp/stripe-card-payment-in-react-native-without-3p-library-3l49

DEV Community

UPDATE Stripe released an official library for react-native. check this out - https://github.com/str...

dim hearth
#

@kind python I deleted your most recent message because your code includes your test secret key - I'd suggest rolling it when you get the chance.

Can you provide more details on what specifically isn't working? Are you seeing an error? At what point is the flow broken?

kind python
#

When I click the Submit Payment button I get this error: client.js:35 Uncaught ReferenceError: clientSecret is not defined at HTMLFormElement.<anonymous> (client.js:35) at e._formSubmit ((index):1) at (index):1 at (index):1 at Array.forEach (<anonymous>) at n._emit ((index):1) at e._handleMessage ((index):1) at e._handleMessage ((index):1) at (index):1

#

I was getting help from alex-stripe, orakaro, and Paul but they all had to go

dim hearth
dim hearth
kind python
#

Ya I believe so also the clientSecret won't pass

dim hearth
kind python
#

Ok

#

I can't figure out what's wrong I think it's with the routing could you take a look and tell me how to fix it as I can't find how to do it?

#

@dim hearth Are you still here?

dim hearth
# kind python Ok

You really need to be looking at your own code and adding breakpoints or log lines to understand what's going wrong - I have no access to your logs. If you give me specifics on what errors you're seeing I can help

kind python
#

app.get('/secret', async (req, res) => { const paymentIntent = await stripe.paymentIntents.create({ amount: 1099, currency: 'usd', // Verify your integration in this guide by including this parameter metadata: {integration_check: 'accept_a_payment'}, }); res.json({client_secret: paymentIntent.client_secret}); }); this code is creating a paymentIntent correct?'

dim hearth
kind python
#

Yes I am receiving clientSecret not defined

#

var response = fetch('/secret').then(function(response) { return response.json(); }).then(function(responseJson) { var clientSecret = responseJson.client_secret; // Render the form to collect payment details, then // call stripe.confirmCardPayment() with the client secret. }); isn't this code getting the secret this is in my clent.js

dim hearth
kind python
#

ok how would I fix that?>

#

<form id="payment-form" data-secret="{{ client_secret }}"> in the {{ cleint_secret }} is something wrong?

dim hearth
# kind python ok how would I fix that?>

Again, instead of looking at your front-end logs you should check your server logs. This can be any number of things - it may be that the request is never even reaching your server (maybe wrong endpoint), or your server is not correctly set up, or maybe it's your actual request to Stripe that isn't successful. You'll be able to know more from your server logs. Just pasting code isn't enough to know what's wrong without getting more details

kind python
#

Where are my server logs?

#

do i need to link my app.js to checkout.html?

dim hearth
kind python
#

Are server logs my errors?

fast mantle
#

In Chrome that's under the Network tab in the developer tools

#

You'll be able to see whether the request to your server failed, and if not, what the response was

kind python
#

This is what I see in the network tab

#

And clicking on it shows this:

#

How to fix this

fast mantle
#

@kind python The URL that you're using for your fetch() call is wrong. You'll need to consult the replit documentation for how to make that access a correct URL

kind python
#

I just checked the documentation it is correct https://replit.com/talk/learn/JS-Fetch-API-Tutorial/48837

replit

, the modern way to make HTTP requests in Javascript . There are many ways to make your HTTP requests like using XHR however, some of them aren't as simple as . Today, we'll be discussing how to use for AJAX/HTTP requests. Overview: fetch( reqLink , options* :optional*) The options argument should be an object/JSON data-type. The reqLi...

#

I don't think it's creationg the '/secret' properly

abstract compass
# bold basalt <@!148906736802070528> you create a Subscription with a trial, it'll have a `pen...

So, I decided to try to collect a customer's card via a SetupIntent before creating the subscirption. It seems to work ok for trial subscription. But we also have some subscriptions without trial. For those, it seems that the subscription that's created has an open-invoice that isn't paid automatically (we are trying to use the same flow/process for both types of subscription). What can I do to auto pay that invoice?

dim hearth
compact field
#

Do webhooks trigger if in test mode for checkout?

dim hearth
compact field
#

huh interesting. I haven't seen anything

dim hearth
compact field
#

I think I've figured it out

#

I didn't have the "viewing test data" slider on that page enabled

#

So I didn't create a test webhook

#

only a live one

abstract compass
#

We are doing fix-price subscriptions. Most of our subscriptions have trial period, a few don't. We also don't want to let a user start a trial subscription unless we have payment in place (to make sure we can auto-charge when the user transitions from trial->pay). You can see the various challenges we faced along the way in our discord threads. To make it work, we tweaked the stock Stripe example to: Create Customer -> When user selects price a price, system creates a SetupIntent and redirect user to subscribe page -> User enters credit card info for SetupIntent-> Server then 1) attach the payment as default on the customer, 2) create the new subscription using the price selected earlier. We are hoping this would then allow the subscription to auto charge regardless of trial/no-trial.

abstract compass
# dim hearth How are you creating your subscriptions? Can you go into a bit more detail about...

We are doing fix-price subscriptions. Most of our subscriptions have trial period, a few don't. We also don't want to let a user start a trial subscription unless we have payment in place (to make sure we can auto-charge when the user transitions from trial->pay). You can see the various challenges we faced along the way in our discord threads. To make it work, we tweaked the stock Stripe example to: Create Customer -> When user selects price a price, system creates a SetupIntent and redirect user to subscribe page -> User enters credit card info for SetupIntent-> Server then 1) attach the payment as default on the customer, 2) create the new subscription using the price selected earlier. We are hoping this would then allow the subscription to auto charge regardless of trial/no-trial.

dim hearth
abstract compass
dim hearth
abstract compass
dim hearth
cloud river
#

I have a setup where a customer with a Connected Account can pay for a transaction partially via their Connected Account balance (using a Charge) and partially via a processed card / PaymentIntent; is there any way for this setup to also take advantage of the source_transaction feature of separate charges and transfers to make sure this payment is then forwarded on to a different Connected Account as a single transaction? (I.E. if the Charge succeeds immediately but the card PaymentIntent becomes available a few days later, to make a single Transfer at the later point in time?)

This might be something that just requires an external scheduler / webhook to do, but I was curious if there's any kind of native functionality to tie multiple charges to one transfer via source_transaction.

sick talon
compact field
#

What does the webhook return? JSON data?

I'm attempting to read it in PHP with $_POST but its returning nothing

cloud river
#

Sample:

66 charge = await stripe.charges.create({
67 amount: amountToChargeStripe,
68 source: stripeAccountId,
69 currency: 'usd'
70 });

stripe.charges.create to debit the connected account.

sick talon
compact field
#

thanks!

sick talon
abstract compass
sick talon
abstract compass
calm trellis
#

Hi, I have a quick question please. Can anyone recommend me the quickest possible way to integrate a bookings and payment system please?

sick talon
calm trellis
#

Would it be recommended to use one of stripes 3rd party partners?

sick talon
# calm trellis Hi, I have a quick question please. Can anyone recommend me the quickest possibl...

The support team can advise on the best way to model your business via https://support.stripe.com/contact and if you have specific technical questions when implementing, we can help here with those.

calm trellis
#

Thank you

calm trellis
abstract compass
# sick talon ok, and are you setting that card up with a SetupIntent before you try to charge...

Yes, our process is we capture the card information against a setupIntent. Only after our server receives the paymentMethodID from the client does it 1) set that payment method as default on the customer, 2) create the subscription. Looking at the invoice, I see that it thinks that it needs additional authentication. But I have already clicked on "authorize" on the popup that shows up.

sick talon
#

That's required to use the setup details on a payment that requires 3DS

abstract compass
sick talon
abstract compass
abstract compass
sick talon
wispy zinc
#

Trying to add the Payment Request Button to show for users instead of the Elements Form but we cant get any of the Wallet buttons to show up in our testing environments. Are we missing something other than whats documented here? https://stripe.com/docs/stripe-js/elements/payment-request-button?html-or-react=react

bold basalt
#

@wispy zinc lets start here, can you send me your account ID?
And do you see the PaymentReqeuestButton on that page you linked above?

abstract compass
bold basalt
#

@abstract compass one sec looking

abstract compass
cloud river
#

Hopefully quick question: is there any way to top up a platform balance such that the funds are available more quickly than the ~week turnaround? I've noticed in testing that debiting connected accounts pushes funds to 'available' almost immediately, but both standard payment processing and top-ups have a significant waiting period.

rapid imp
#

Well this is a bummer lol. What's the best approach around this? Context:

i'm using connect and using direct charges for connected accounts using the Stripe-Account header set to the connect account ID

This is a test card that was turned into a payment method id using the stripe iOS SDK using my API keys.

I read up on cloning customers etc. but why do test cards require customers created? it's supposed to be a one off payment method not being saved for future use.

Is this simply because I used my platforms API keys to create the payment method and not the connected account header to create the payment method? If so then im unsure of how to pass the connect header to the iOS SDK.

Any help would be appreciated 🙂

bold basalt
#

@rapid imp one sec

#

@cloud river hello, not sure there is, maybe Support knows more about that

#

@rapid imp ok so there's a lot here but ultimately, this is a misconfiguration of API keys <> Stripe Account IDs
to answer:

but why do test cards require customers created?
they don't for cloning, you don't need to attach to Customer, you can clone a PaymentMethod to a PaymetnMethod directly too
If so then im unsure of how to pass the connect header to the iOS SDK.
are you using STPPaymentHandler? I assume this is the issue, that your STPAPIClient doesn't have the stripeAccount ID set to it when confirming a PaymentIntent

worldly python
#

Hey guys, I'm just posting this again in case it got burried... hoping the team can provide some guidance: I'm wondering since Stripe RN doesn't support web deployment, what are the thoughts on using React Native Webview as a workaround so the app can be deployed on web/ios/android? I found this article talking talking about it, not sure if it breaks any rules or what not...
https://dev.to/impdp/stripe-card-payment-in-react-native-without-3p-library-3l49

DEV Community

UPDATE Stripe released an official library for react-native. check this out - https://github.com/str...

somber sundial
#

hello and happy Friday! Does Stripe offer ACH Debit in Canada?

bold basalt
#

@worldly python hello, yes you could do that

#

@somber sundial hello, I don't think so but Support would be the best team for that question

rapid imp
#

@bold basalt
Let me be more clear with the flow

  1. Payment method is being created in IOS without a StripeCustomer (one off) from card details
  2. After the payment method has been created locally using the iOS SDK, i then send that pm_1234 to my server to create a payment intent directly
let stripe = req.stripe
// Specify the business owners stripe account to create a direct charge.
stripe.paymentIntents.headers.add(name: "Stripe-Account", value: businessOwnerConnectAccount)
                    
return stripe.paymentIntents.create(amount: total,
                                    currency: .usd,
                                    confirm: true,
                                    confirmationMethod: .automatic,
                                    errorOnRequiresAction: true,
                                    paymentMethod: "pm_1234",
                                    expand: ["payment_method"])

And i'm using STPAPIClient.shared.createPaymentMethod(with: STPPaymentMethodParams(...) then passing that response to the server in step 2.

bold basalt
#

@rapid imp sure, yeah laying out the steps clearly will help

rapid imp
#

Never saw a place to pass the businessOwnerConnectAccountID. when creating a PaymentMethod with the iOS SDK

bold basalt
#

@rapid imp how are you confirming your PaymentIntent? using STPPaymentHandler I presume?

rapid imp
#

Nope confirm is set to true in the paymentIntent call.

#

No client secret etc.

bold basalt
#

@rapid imp ok one sec. At which API call are you getting that iOS error? The server-side stuff is irrelevant there right, the error is on your iOS client

#

@rapid imp I get the first parts of
1/ create a PaymentMethod
2/ send it to server, create and confirm a PaymentIntent
I'm assuming there are steps after that

rapid imp
#

Nope that's all that's happening. Some DB operations server side but no more stripe API calls at all

bold basalt
#

@rapid imp where is this error happening then? the screenshot you shared, that looks like it is from your iOS app...

rapid imp
#

Yea its from a custom alert but im pretty confident it's happening server side.

#

That string is passed back from server

#

the paymentintent.create call

bold basalt
#

@rapid imp ah that makes it simple

#

@rapid imp you aren't cloning the PaymentMethod then
But since this is Direct Charges, why don't you create the PaymentMethod directly on the Connect account?
You can do that directly from your iOS app

rapid imp
#

How would i do that from iOS SDK?

#

Don't see any extra parameters :\ unless i'm blind.

bold basalt
rapid imp
#

HOLY CRAP

#

Stand by.....

wispy zinc
split sparrow
#

Hi

#

My account has been paused. I need help.

bold basalt
#

@wispy zinc do you mean a private chat with me and dev/PM?

#

@split sparrow account related questions are answered by Stripe Support at https://support.stripe.com/contact. For context, this channel can help if you have a coding/technical integration related question with Stripe's API.

rapid imp
#

It works! Thanks so much, Stripe Discord is the best thing to happen all year. This woulda taken like 4 days via twitter DMs 😅

bold basalt
#

@rapid imp glad to help! yeah it is great to just bounce ideas/suggestions back/forth like that

#

@rapid imp also I think you meant me? or did you mean the other user lol

rapid imp
#

Ooof yea

wispy zinc
#

@bold basalt yes

bold basalt
#

@wispy zinc lets continue here, I'll be able to unblock you here just fine, we won't be discussing any private info anyways.

wispy zinc
#

@bold basalt ok sounds good, let us get the account ID real quick. And I cant see the PaymentRequestButton on the Stripe page I linked. I only see the image of them at the top

bold basalt
#

@wispy zinc let's start with this:
1/ https://stripe.com/docs/stripe-js/elements/payment-request-button on this page, are you able to see Google or Apple Pay in Chrome and Safari respectively?
2/ what is your account ID? (that way I can look up Apple Pay domain registration)

fresh burrow
bold basalt
#

@fresh burrow ok so are we only referring to the Google Pay button then for now? (not showing up)?

wispy zinc
#

@bold basalt yes Gpay and Microsoft Pay

bold basalt
#

@wispy zinc ok so I am not entirely sure about Microsoft Pay as I haven't tried it out on PaymentRequest Button but can help with GPay
do you know the answer to 1/ above? do you see GPay button on our docs there?

#

@wispy zinc that alone will tell us if your Chrome browser is set up correctly or not

wispy zinc
#

@bold basalt nope, I do not

fresh burrow
bold basalt
#

@wispy zinc right between the title and the "HTML+JS / React" tabs

#

@fresh burrow ^ , so almost at the top of the page

#

@fresh burrow @wispy zinc there^

fresh burrow
wispy zinc
#

@bold basalt Same here, I see it on my personal device but not on my work machine

bold basalt
#

@fresh burrow so that means your Chrome browser that doesn't see it, isn't set up for GPay correctly, it can be a bit complex for "why" it isn't (as I've discovered over the years)
1/ check pay.google.com and verify you have > 1 card added there

fresh burrow
#

@bold basalt yea i think there's some complexity there - we're not allowed to set up payments accounts on work computer at the moment.. so the experience won't even load if it doesn't sense a wallet is available / set up?

bold basalt
#

@fresh burrow ahh yes that is expected then, PaymentRequest Button only shows Google Pay as an option if you're set up for it, i.e. you have a card in your wallet and are logged into the browser

#

@fresh burrow so I would just test your PaymentRequest Button integration with your personal devices, as long as you're using test mode API keys, there will never be a charge

fresh burrow
#

@bold basalt ok follow up question - Damir is able to see the Google Pay button on the (Stripe docs) page with his personal device, but when we use his personal device in lower environment with our integration, the google pay experience isn't loading in Chrome. We were able to set up domain registration for Apple Pay in lower environment, and that experience did load for Damir. So, it seems like something wonky is happening specifically with Google Pay now.

bold basalt
#

@fresh burrow couple of qs:
1/ what do you mean by lower environment?
2/ "the google pay experience isn't loading in Chrome" -> the button shows up and the payment sheet doesn't work? something else? do you have the page up where I can try it out?

fresh burrow
#

@bold basalt we have 3 environments, SIT (For developers), UAT (For testing/staging), prod (for customers). we now see Apple Pay in UAT but not Google Pay

bold basalt
#

@fresh burrow lower then means UAT? sorry wasn't clear

fresh burrow
#

@bold basalt ah yes, lower means UAT

bold basalt
#

@fresh burrow ok, could you answer my other questions above too? I need as much detail as you can provide

#

referring to
2/ "the google pay experience isn't loading in Chrome" -> the button shows up and the payment sheet doesn't work? something else? do you have the page up where I can try it out?

fresh burrow
#

@bold basalt sorry - we don't see anything for Google Pay. just loads the standard form for manual entry

#

@bold basalt Damir can share credentials with you in a DM

bold basalt
#

ok yeah DM is fine for that

wispy zinc
#

Awesome, incoming

bold basalt
#

@wispy zinc give me a sec, looking

sterile turret
#

is there anyone to help me out on laravel stripe integrations

#

i have done this

#

but i cant see the payment in my stripe dashboard

dim hearth
bold basalt
#

@wispy zinc and @fresh burrow responded in DM with screenshot but works for me and shows the GPay payment sheet (and obv button too) as expected

sterile turret
#

i think payment is done

#

but i cant see the payment in my stripe dashboard

languid bolt
#

Hey 👋 hope you are doing well.
Got a question regarding invoice items: Do invoice items that are created with a subscription id get automatically deleted if the subscription is canceled at the end of the billing period? I noticed that it removes it when canceling it immediately but I'm not sure about what it does if canceled at the end of the period. Thanks for your time

dim hearth
# sterile turret

Where are you looking for it? And do you mind just putting that charge ID in a message here (not as a screenshot)

sterile turret
dim hearth
sterile turret
#

its basically return json