#knuppi.
1 messages ยท Page 1 of 1 (latest)
Hello! We'll be with you shortly. Below are links to other discussions we've had with you in the past week in case you want to review that information. If your question is related to one of these previous discussions, please provide a comprehensive summary of the current state and what you need help with now. We help many users simultaneously, so a summary allows us to resolve your issue as soon as possible.
- knuppi-payouts, 2 days ago, 60 messages
- knuppi-subscription-events, 5 days ago, 46 messages
I started a discussion with your team here: https://discord.com/channels/841573134531821608/1197941253556416593
Are the accounts on manual or automatic payouts?
Ok, great. Specifically what details are you looking to find? You can find the transactions included in a payout via the API: https://stripe.com/docs/expand/use-cases#charges-in-payout
Let me check the information from your link
The use-case is;
Some of our Connected Accounts are using an accounting software which we are keeping up-to-date through an API. Every time an end-user (a customer of our Connected Account) makes a purchase we are creating an invoice in the accounting platform - this works very well.
However, the problem is that when we receive the Payout from Stripe we get them grouped - and there's no clear/simple way to connect the funds received to Invoice X, Y, or Z
Will the link you shared help us achieve this?
It should be able to help you understand what charges are included in the payout yes. Depending on what specific details you need you may need to 'expand' additional fields beyond the example I shared
I recommend trying it out, seeing if you can reconcile as you need, and if not we can figure out a way
When I try stripe.BalanceTransaction.list(payout="po_1MjXvUPskzKJRhmCkMFA76Br", stripe_account=company.stripe_id, type="charge", expand=["data.source"]) I get 403 error. Is it because stripe_account is included?
when I remove the stripe_account I get a 404 instead
Can you share the ID (req_xxx) of the failing API request? https://support.stripe.com/questions/finding-the-id-for-an-api-request
Find help and support for Stripe. Our support site provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
sorry, used the wrong API key. it gets a bit confusing from time to time ๐
stripe.BalanceTransaction.list(payout="po_1MjXvUPskzKJRhmCkMFA76Br", stripe_account=company.stripe_id, type="charge", expand=["data.source"])
Returned 200 OK:
<ListObject list at 0x26d96ef8f90> JSON: {
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/balance_transactions"
}
If you check https://dashboard.stripe.com/acct_1MiwxqPskzKJRhmC/test/payouts/po_1MjXvUPskzKJRhmCkMFA76Br there is an associated Transaction, why isn't it visible in the Payout?
Checking
Can you share the ID (req_xxx) of the API request? https://support.stripe.com/questions/finding-the-id-for-an-api-request
Find help and support for Stripe. Our support site provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
I tried with another Payout ID: po_1ObCJHPskzKJRhmCc6yZYe19, this gave me much more information.
Lastly, is there documentation showing me what everything under the data.source means?
Well the source field is the API object related to the transaction: https://stripe.com/docs/api/balance_transactions/object#balance_transaction_object-source
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Sorry, I still seem to have a problem;
So it could be any number of objects, depending on type: https://stripe.com/docs/api/balance_transactions/object#balance_transaction_object-type
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
When you create a Payout, the statement descriptor seems to be some generated strings e.g. "STRIPE XYZABC".
In https://stripe.com/docs/expand/use-cases#charges-in-payout, how do I see which bank transfer correlates with a payment?
Sorry, I don't understand. You mean how can you map a payout on a bank statement to a Payout object?
This is a grouped Payout received from Stripe
The only reference the accountant has is STRIPE I0I3L8
Where do I find this string ("STRIPE I0I3L8") through the BalanceTransaction API? (or any other endpoint)
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
So, what type should I set in the BalanceTransaction.list?
Well if you want the balance transactions related to payments on the account, then charge as per the example
But 'it depends' really on what kind of Connect payments you're doing as to what type you'll need to use
I'm only interested in tracking the Payout which Stripe are doing to the bank account designated by the Connect Account (designated during their onboarding)
Sorry, I think there's some confusion here. Your connected accounts are receiving payouts with funds from their payments made using your platform, yes?
Ok, then what kind of payments are you doing as a platform? Direct? Destination?
Direct payments (iirc) with stripe_account in all requests
Ok, then type: 'charge' should be sufficient
We're using application_fee_amount to pay ourselves
Can you share an example pi_xxx you're creating?
Using type="charge" gives me a lot of useful information, however the most important statement_descriptor is missing
Where are you looking for that field?
This is JSON for one of the objects in the type=charge
uh, where exactly? These are the top level keys in the JSON object
If I use type="payout", then I see the description (what I assume is statement_description). But then there's no information whatsoever about the charges which are included in the Payout
Again that is a Balance Transaction object (https://stripe.com/docs/api/balance_transactions/object), not the Payout object. You're going to need to lookup the full po_xxx ID alongisde that list too
I have the po_XXX.
Question is; in one single request, is it possible to find the statement_descriptor and all the charges? Or do I need to create two queries?
It'll be 2 separate queries: one to lookup the Payout with the po_xxx (https://stripe.com/docs/api/payouts/retrieve), the other to lookup the associated transactions as you are now
OK, I'll try to work with this information. Thanks for now.
Hopefully I won't have to bother you again! ๐
np! happy to help
Sorry, maybe this is a bit redundant but in the payout.paid webhook, there is a field named description. Is it the same as statement_descriptor?
I'm asking since I'm starting this chain of requests with us receiving your webhook
hi! I'm taking over this thread.
no it's different. you cna learn more about it here: https://stripe.com/docs/api/payouts/object#payout_object-description
Hi @willow horizon
From having the po_XXX, I need to find the statement_descriptor
Can you please confirm that "STRIPE I0I3L8" is what would be found inside statement_descriptor?
I just deleted your attachment
please remember that Discord is public, so don't share sensitive information here
From having the po_XXX, I need to find the statement_descriptor
Give me a few minutes to look into this
Did you manage to see what I meant with the "STRIPE I0I3L8" string?
I see that string in your screenshot, but I have no ideas what it means or where it comes from.
That string is typically the message accompanied in a bank transfer. Reading through your documentation it seems to me that it's the statement_descriptor, I just want to be 100% sure that it's correct
@willow horizon can you ask with your colleagues?
sorry Discord is busy, will have a look soon
well the Payout object does have a statement_descriptor field: https://stripe.com/docs/api/payouts/object#payout_object-statement_descriptor
so retrieve the po_xxx object you have, and check if the statement_descriptor match the string you saw
OK, I'll do that. I'll work with this in mind
Another question; where do I see webhooks sent wrt connected accounts?
you can create a connected webhook endpoint to listen to events on connected account
this is explained here: https://stripe.com/docs/connect/webhooks
I'm trying to resend it through the CLI, but receive:
$ stripe events resend evt_1ObCaUPskzKJRhmCWUTMyg27
{
"error": {
"code": "resource_missing",
"doc_url": "https://stripe.com/docs/error-codes/resource-missing",
"message": "No such notification: 'evt_1ObCaUPskzKJRhmCWUTMyg27'",
"param": "id",
"request_log_url": "https://dashboard.stripe.com/test/logs/req_O4Nu9Eof8d6ENf?t=1705923635",
"type": "invalid_request_error"
}
}
and when trying to add stripe-account to the header:
$ stripe events resend evt_1ObCaUPskzKJRhmCWUTMyg27 --stripe-account acct_1MiwxqPskzKJRhmC
{
"error": {
"message": "You are not permitted to configure webhook endpoints on a connected account. Did you mean to create a Connect webhook on your account instead?",
"request_log_url": "https://dashboard.stripe.com/acct_1MiwxqPskzKJRhmC/test/logs/req_Hz8GK01DXFFihP?t=1705923811",
"type": "invalid_request_error"
}
}
give me a few minutes to try to reproduce this
I got the same error on my end
looking into this...
Cheers, thanks
hmm, it's probably a gap in CLI+Connect and resend is not supported in this case unfortunately. Maybe try doing it through the dashboard(on your platform account go to Developers>Webooks>the specific Connect endpoint>find the event there>look for a Retry button)
We have two types of Webhooks, both Account and Direct. payout.paid (when a Payout is sent from Stripe to Standard Connect Account) is normally sent to which Webhook?
connect
cheers, thanks
Now I have to wait 24 hours until the next payout.paid event is sent?
you could I suppose manually send the JSON to whatever code it is you're testing for the actual handling of the payout logic and cut skip the webhook-receiving logic
but if I'm correct, the JSON shown on here: https://dashboard.stripe.com/acct_1MiwxqPskzKJRhmC/test/events/evt_1ObCaUPskzKJRhmCWUTMyg27 isn't complete. there should be an "account"-key as well with information about which account the webhook is aimed for, no?
yeah
I don't think it would block you, you can just stub something in for the purposes of testing your code using the raw data(I would assume you build a webhook endpoint that does the work of signature verification and parsing the JSON and checking the account, and can just call your handlePayoutOnAccount(payload, accountID) function with crafted JSON for testing, for example).
I'll see what I can cook up. Thanks
please create an internal bug report/ticket about this. either to fully support it, or create a better error message