#Kshitij - Connect Payments

1 messages ยท Page 1 of 1 (latest)

swift saddle
#

Hi ๐Ÿ‘‹

#

Hmm I've seen a few different discussions about this.

fallen socket
#

Hi there...apologies, I missed doing a keyword search in the channel first. Basically

  • I wanted to know if the calculated_statement_descriptor automatically get carried across to the destination payment charge or do I need to update it on the charge via API after the payment intent has succeeded?
  • I do not see a specific field on the destination payment page for the statement_descriptor. So does that mean one will need to view the charge.updated event json to verify the statement_descriptor on the dashboard?
swift saddle
#

Do you have any request IDs as examples I could take a look at?

fallen socket
#

Here is one example of a card payment intent:
Card Payment Intent request: req_ceW2a2k9USog4A
Transfer tr_3KP5JdIU9AZQojgN2oahFQPz
Destination payment py_1KP5JeELDcrwbzESAmk1g0CS

swift saddle
#

I am looking into this at present. Sorry for the delay

#

Okay so for the initial Create Payment Intent you pass in statement_descriptor: "connect-credit-000001", and we see that in resulting Payment Intent calculated_statement_descriptor: "CONNECT-CREDIT-000001",

fallen socket
#

Np.
that's correct, however if I retrieve the destination payment charge py_1KP5JeELDcrwbzESAmk1g0CS via API,
CalculatedStatementDescriptor: null
StatementDescriptor: null

are both null

#

should it automatically copied across or does one need to manually update the destination payment charge?

fervent moss
#

hello @fallen socket, stepping in on behalf of snufkin. To clarify, the py_1KP5JeELDcrwbzESAmk1g0CS is the result of a transfer - this will not have a statement descriptor. The statement descriptor that will show on the customer's credit card statement will be what you pass through in the create payment intent

fallen socket
#

Hi @fervent moss
Yes that is correct py_1KP5JeELDcrwbzESAmk1g0CS is the destination payment.

Oh ok. So its not being copied across.. that is why there are no fields displayed for the StatementDescriptor on that page.

The premise for this question is the clients were expecting the same statement descriptor to be reflected on the connected payment as well for reconciliation.

Is it possible to manually update the calculated_statement_descriptor & statement_descriptor fields from the payment intent to the destination payment charge via API?

#

If yes, since there is no field on the dashboard, I'm guessing the only place to verify would be the json of the update event on the destination payment charge?

fervent moss
#

i would say that it's possible to pass that result on to the py_ object, but you are going to need to implement the logic. Let me put together a high level explanation on how to achieve that

fallen socket
#

thanks

fervent moss
#

After the payment is successful, you would have a Charge object.

  1. Retrieve the Charge and at the same time expand [0] transfer [1]. The response should contain transfer.destination_payment. [2]
  2. You can then make a request to update the metadata [3] or description [4] on the transfer.destination_payment object. Remember to use the StripeAccount header [5] to make the update as this object exists on the connected account.

[0] https://stripe.com/docs/api/expanding_objects
[1] https://stripe.com/docs/api/charges/object#charge_object-transfer
[2] https://stripe.com/docs/api/transfers/object#transfer_object-destination_payment
[3] https://stripe.com/docs/api/charges/update#update_charge-metadata
[4] https://stripe.com/docs/api/charges/update#update_charge-description
[5] https://stripe.com/docs/connect/authentication

#

let me know if this doesn't work for you

fallen socket
#

Thanks for these links.

I've already tried updating the description field....so I guess I can do the same for the calculated_statement_descriptor, statement_descriptor fields

#

So something like below should work:

  • when the payment_intent.succeeded webhook event is recieved, fetch the transferId, destinationAccountId, calculated_statement_descriptor, statement_descriptor from the json payload
  • retrieve the Transfer object for that transferId, destinationAccountId
  • get the destinationPaymentId from the transfer object;
  • retrieve the charge for the destination payment id, specifying the connected account header
  • update the destination payment charge, passing in the calculated_statement_descriptor, statement_descriptor properties as params to be changed
#

does this look right to you?

fervent moss
#

you can't update the calculated_statement_descriptor and statement_descriptor properties on the py_ object. You can only update the description and metadata (amongst some other fields). [6]

[6] https://stripe.com/docs/api/charges/update

fallen socket
#

ahh gotcha...
Yeah we have separate texts on statement descriptor and description so both need to be copied across. So for

  • description: I can update the description property of the py_object
  • calculated_statement_descriptor and statement_descriptor: will need to into the meta_data of the py_object

Will give that a go

Thanks for your help @fervent moss

fervent moss
#

you're welcome, feel free to reach out again in case you run into any issues!

fallen socket
#

will do. Have a great day

fallen socket
#

Hi @fervent moss
Sorry I have a loosely related query

Where & when is the static statement descriptor set on the connected account used?

I could not see it reflected anywhere on a connected destination payment received by the connected account.

Is that statement descriptor only set on payment intents that the connected account in turn makes?

fervent moss
fallen socket
#

thx. I'll take a look at that

fallen socket
#

I'm a bit fuzzy about the static connect statement descriptors.

Say the connected account has a static statement descriptor configured.

As per that link, when the on_behalf_of is used for a card payment, the connected account's customer statement should show the static descriptor that was configured on that connected account

Is there a way to confirm from the dashboard of a test platform or connected account if that is being set? Our clients are saying they are not even seeing that in their statements

fervent moss
#

to confirm, you're referring to credit card statements?

fallen socket
#

yes

tribal karma
#

Hello, stepping in and catching up

fervent moss
#

@fallen socket can you provide an example of a live Charge/PaymentIntent id where the customer has said they're not seeing the correct statement descriptor in their statement?

#

for context, what the bank decides to display on the statement is not something which we can control. We can check if the integration is passing in the correct statement descriptors though

fallen socket
#

Sorry for the delay.. I don't have a live example on me at the moment.
I just found out the client are discussing with their Stripe account manager.

I was just curious if there was some way to view from the dashboard or detect via API what was being set... but appears there may not be a way.

I think I'm good for now.. Thanks for your help today.

fervent moss
#

alright, feel free to reach out if you have anything else that we can help with ๐Ÿ˜„

fallen socket
#

๐Ÿ‘