Braintree: Recurring payment status report - braintree

How does the information about recurring payment failure/success reach me?
Do I have to ping it myself or does BT send the response?
If it is the first case then when exactly should I check that? E.g when billing date is 1st August, then at what time it is done?

Full disclosure: I work at Braintree. If you have any further questions, feel free to contact support.
You can set up webhooks that notify you when the status of your subscriptions change. These webhooks are set up in the Braintree Control Panel and send POST requests to your server endpoints when needed.

Related

Is there a refund webhook for Braintree?

I didn't find some refund webhook in webhooks list.
Is Disbursment webhook something what can help me in this case https://developers.braintreepayments.com/reference/general/webhooks/disbursement/php ?
[Edit #1]: I've tested it and found that Disbursment webhook won't trigger after refund button is clicked in Braintree sandbox admin.
So I presume there is no webhook for refunds. For now I ended up with scheduled cron task to get refund transactions from the Braintree API:
$collection = Braintree_Transaction::search([
Braintree_TransactionSearch::createdAt()->greaterThanOrEqualTo($hourAgo),
Braintree_TransactionSearch::type()->is(Braintree_Transaction::CREDIT),
Braintree_TransactionSearch::refund()->is(true)
]);
P.S. hey, downvoters, why wouldn't you argument your opinion in comments? At least it could be helpful for someone who will find this thread.
Full disclosure: I work at Braintree. If you have any further questions, feel free to contact support.
Braintree does not have a webhook which fires when a refund is created. Webhooks are used for asynchronous events—in other words, events which are not triggered directly by an API call made by your integration. You get immediate feedback on the success or failure of a refund via the result object from the refund API call. Use that result to trigger whatever action you wanted to take when a refund occurs.
(If what you're actually looking for is to get information when a refund transaction disburses—i.e., when the funds for a refund are moved out of your bank account—then you actually do want a disbursement webhook. Disbursements represent the sum of your incoming and outgoing funds.)

Zendesk and Smooch integration: I can receive SMS in Zendesk but can't reply to the SMS

As per the question title, I've integrated Twilio and Zendesk with Smooch. I can send SMS to my Twilio number and receive this in Zendesk, however when I reply to the ticket in Zendesk the reply just goes to space and doesn't reach the number that initiated the ticket.
I've removed all integrations in Smooch and added them back in with no success - I have no idea what to. I have upgraded my Twilio account from the trial to a paid one, whereas my Zendesk account is a trial account.
I've tested this to/from SMS using Slack in lieu of Zendesk and I have a similar problem i.e. I receive the SMS in Slack but cannot reply. The only way a reply works is when I use "/sk" followed by the reply. Is there something similar that has to happen when replying to SMS generated tickets in Zendesk?
Any help would be much appreciated!
OK so after a bit of investigating what I have found is that the automatic integration Smooch setup in Zendesk didn't work properly. This is because the trigger Smooch applied was based on the incoming SMS having a tag=smooch. The Trigger that was set up was based on the tag=smooch...something else (I can't remember what it was).
I changed the trigger value to be tag=smooch and now I can respond to SMS received in Zendesk.
I wasn't able to reproduce your issue.
When Smooch configures the trigger on Zendesk that allows the agent to respond to the customer, it doesn't check for equality with "supportkit smooch", it checks whether the ticket has a tag that is "smooch" OR "supportkit".
So it's unlikely that editing the condition solved the problem, unless it had been previously manually changed for some reason.
Maybe you were just unlucky. If you encountered your issue around August 22, 2016, it's may be that Zendesk had trouble fulfilling trigger actions at that time (https://twitter.com/ZendeskOps/status/767850822038351872).
Alternatively, perhaps you did your initial testing with a Twilio trial account and responded to a number other then the one that was used to set up the account. In that case Twilio will not deliver messages.
Note on /sk:
Using a slash command is the only way for an agent to respond to the customer on Slack, otherwise you're just writing into the Slack channel for your team's benefit. The equivalent to the slash command in Zendesk is just responding to the ticket.

How to get contact's "FreeBusyStatus" in Microsoft Outlook using REST Api?

See above mentioned image, it gives different status but don't know how to get it.
Check Outlook API.
Thanks in advance :-)
You can use GET https://outlook.office.com/api/v2.0/me/events/{event_id}?$select=ShowAs to retrieve the FreeBusyStatus of attendee(yourself) for a particular meeting, the return type is something like below,
If you want to check the response from a particular attendee, use GET https://outlook.office.com/api/v2.0/me/events/{event_id}?$select=ShowAs,Attendees, and check on the "Response" from the "Status" response.
This enumeration is used for 'Specifies the availability status of an attendee for a meeting.' At present, the Office 365 REST API is not able to retrieve the contacts' meetings status. And you can submit the feedback from here if you want to the Office 365 REST to support this feature.
We are able to add other’s users’ calendar manually, then we could see the status of the appoint/meet of him/her. Here is an figure that show the others calendar for your reference:
If you want to retrieve the free/busy information of EWS is a possible workaround. Please refer to here for more detail. And if you require these information to schedule a meeting, you can try to use the Find meeting times (preview).

Braintree Webhooks: How can I notify customer that their subscription has been canceled

When I receive the subscription canceled webhook I can't retrieve the customers information via their payment info because it is deleted. Specifically I am trying to get the customers e-mail.
Full disclosure: I work at Braintree.
You can extract the customer id from the webhook. You didn't specify your client library language, but this is how you would do it in Ruby:
webhook_notification = Braintree::WebhookNotification.parse(
bt_signature_param, bt_payload_param
)
customer_id = webhook_notification.subject.subscription.transactions.first.customer.id
Pass the customer id from your webhook into a Customer.find call. Then inspect the result object to extract the email address.
More information on parsing webhooks here.
If you have any additional questions, feel free to reach out to Braintree support.

How do I trigger a webhook for transaction settlement in sandbox?

I am trying to create a new webhook endpoint for my braintree integration. I added an endpoint to the Control Panel. I am using the Python library and created a a bunch of transactions. Also, I manually settled the transaction using the testing gateway. But I do not get a webhook notification. When is the webhook triggered and I=is there a way to trigger it manually?
Full disclosure: I work at Braintree. If you have any further questions, feel free to contact support.
The Transaction -> Disbursed webhook fires when the transaction has settled, and braintree has begun to move funds from their account to yours. While settling the transaction manually in the control panel would start the process, it does not fire the webhook right away.
There isn't any way to trigger this manually, instead braintree has sample payloads and a way to trigger a "Check" webhook in the control panel.
To answer the question in your comment, this type of webhook does not cover voided transactions.
I also asked a similar question to Braintree support, and the answer may be useful for others, even if I decided to go with Stripe (I found stripe much better after all my tests ;).
Question
Hi,
Just integrating Braintree, but can’t find how I’m supposed to get a transaction confirmation (meaning it has correctly been ‘charged’). When I create a ‘transaction.sale’ (including submitForSettlement) I always get (sandbox) a response indicating the status ‘Submitted for settlement’, and the transaction doesn't go to settled until Braintree globally process it (at night, etc.). I also can’t find a related webhook to get payment confirmation (as I currently get using PayPal - IPN).
When/how can I get a payment confirmation so I can then ‘deliver’ the purchased item? By checking your docs, it’s like you can’t get a confirmation until the next day… how does it work exactly?
Thank you!
Answer
Hi Nacho,
Thanks for reaching out!
A Braintree transaction goes through several steps, the second of which is submitted for settlement. This means that the money has begun to move from the customers account, and is the immediate state of a transaction after being submitted; it's not possible to get an immediate 'settled' or 'complete' status on submission. Transactions in this state will generally move to settling, then settled, within 24 hours, although it can depend on your processing bank.
It is very unusual for a transaction to fail when moving from submitted for settlement to settled, as the amount will have been authorised prior to submission for settlement. Authorising a transaction means the funds are put on hold within the customers account, for a certain timeframe depending on payment method, until they are settled. We get an immediate response from the processing bank as to whether an authorisation is successful, which you'll see in the Braintree_Transaction response object.
As such, you can generally rely on the status of submitted for settlement to reflect a valid, successful transaction.
We don't offer webhooks for transactions - instead, our API is designed to give instant feedback via the response object. Because of this, we only provide webhooks for asynchronous events that aren't triggered by an API call (such as billing a subscription or disbursing funds). We encourage our customers to avail of our API responses, in addition to our reporting system and comprehensive search call options, for any extra functionality they require.
If you wanted to pull updated statuses for transactions, such as to confirm a payment has settled, you could use the Transaction.find() API request, pass in the transaction ID and read in the status from the response object. This could easily be run as a script that iterates through the previous days transaction IDs and updates the status of each on a daily basis.
I hope this explains the transaction process with more clarity and offers you some options!
Kind regards,
Braintree
Just in case it helps!
I also asked kind of the same question to Braintree I got the same answer to check the transaction with Transaction::find() and then asked about the possibility of having a transaction not settled after having a SUBMITTED_FOR_SETTLEMENT status, here is the response, very clear and complete:
Hi Alban,
Thanks for reaching out with this question! Happy to help.
Settlement Declined:
In rare cases, a transaction that has been submitted for settlement will reach a status of settlement declined. For sales, this will only occur with a PayPal transaction. For refunds, this can occur with both PayPal and credit card transactions.
This occurs if the processor declined to settle the sale or refund request, and the result is unsuccessful. This can happen for a number of reasons, but the processor settlement response code may have more information about why the transaction was declined. Again, this status is rare, and only certain types of transactions can be affected.
PayPal sale: We recommend checking the settlement status of all PayPal sale transactions before shipping goods or providing services to customers. To reduce these types of declines, submit your PayPal transactions for settlement either upon creation or within 3 days of creation.
PayPal refund: We recommend contacting PayPal for details on refunds that are Settlement Declined.
Credit card refund: Settlement declines can be hard or soft, just as with authorizations. In regions that support an immediate decline response for refunds, we will return Settlement Declined if the processor responds with a hard decline.
Settlement Pending:
This status indicates that the transaction has not yet fully settled. This status is rare, and it does not always indicate a problem with settlement. Only certain types of transactions can be affected.
--> PayPal sale:
If using multiple partial settlements: Settlement Pending is a normal part of the transaction flow. The parent authorization will remain in this status until all child transactions are settled or the authorization expires. See the multiple partial settlement reference for more details.
If not using multiple partial settlements: Almost all Settlement Pending PayPal transactions will settle without intervention, so we always return a successful result. In general, you can expect these to be updated to Settled within a few days as we confirm their status with PayPal. In the rare case we can't settle a Settlement Pendingtransaction, we'll contact you to resolve the issue.
--> Credit card, Android Pay, and Apple Pay sales: You will only see Settlement Pendingauthorizations if you have contacted us to enable a specific API feature that uses this status.
I hope that provides insight, Alban! Let us know if further questions arise.
Best,
xxxxx.
Braintree

Resources