Reverse Transaction Lifecycle

Hello team TabaPay 👋 Question, we're seeing a number of \[Resource Statuses](<>) when it comes to reversing a Transaction: - REVERSAL - REVERSED - COMPLETED 1. Do the statuses go in that order post execution? 2. What's the timeframe we can expect it to complete? (Same day, next day?) 3. How common is it for a reversal not to go through? What are the factors that play to stop it from going through? Thank you!

Convenience Fees sent to different bank accounts

Hello team TabaPay 👋 We collect convenience fees on pull/push transactions. However want to depending different circumstances send these convenience fees to different bank accounts of ours. For example: - Gift card purchase: service fees goes to Bank A - Stream service subscription: service fees goes to Bank B How is it we can send these different Bank accounts' info to TabaPay? How is it we can reference these Bank accounts when doing transactions, such that convenience fees go there accordingly? Thank you!

JSON Content-types for responses

Hello :wave: Per our discussion \[here](<>) we discussed TabaPay updating all API endpoints' content-type headers to JSON. I was wondering if there's an update to that. We're refactoring our network module and finding it difficult to override our responses from TabaPay accordingly. Thanks!

Create Card allows 1 char for first/last name, but 3ds/lookup requires 2 chars

The \[Query Card](<>), \[Create Account](<>), and \[Create Transaction](<>) API calls all allow a single character for the `first` name and `last` name fields for the owner, but the \[3D Secure Lookup](<>) call requires 2 characters in both. The 2-character requirement is not documented and is inconsistent. I realize that the back-end API that you're using requires a minimum of 2 characters for first and last names, but this should be called out in the documentation, especially because it is inconsistent.

Query Card with AVS expiry date validation

Query Card with AVS validates CVV properly but it doesn't validates expiry date. I tried query card with correct account number, cvv and wrong expiry date but it didn't give any error. I thought we were suppose to get error regarding invalid expiry in networkRC but it has 00 value in all cases. Does Query card with AVS validates expiry date? If yes, where is it represented?

We've noticed a lot of declined payment attempts

Hi, We are seeing a lot of declines for payments on cards that have been used before. For example, two different Mastercards were declined with a NC of 82. On another Visa card, we received a NC 59. An hour later, the card was used and the payment was accepted. Any reason why this is occuring?

3-D Secure: JWT validation after continueWithTransaction?

The [documentation for JWT validation]( says that the response from the mobile SDKs continueWithTransaction... method can be validated by calling the [TabaPay 3D Secure Authenticate API]( That API appears to be required but is not mentioned in the [sequence diagram]( By the way, that sequence diagram is _incredibly helpful_, which is why I'm pointing out the potential gap.

iOS 3DS challenge Flow callback

I am following the to implement 3DS. I am able to successfully create Frictionless transactions as well as transactions that have Step up/Challenge response. However, the behavior I am seeing is slightly different from what the guide states. When I use sandbox test card for lookup Challenge/StepUp from specifically 4000000760000002, I get the challenge and I get the JWT in the callback but the validateResponse is nil. I am able to successfully create transactions with the JWT returned in this callback, but there is no way to check the actionCode ``` func cardinalSession(cardinalSession session: CardinalSession!, stepUpValidated validateResponse: CardinalResponse!, serverJWT: String!) { switch validateResponse.actionCode { case .success: // Handle successful transaction, send JWT to backend to verify break case .noAction: // Handle no actionable outcome break case .failure: // Handle failed transaction attempt break case .error: // Handle service level error break case .cancel: // Handle transaction canceled by user break case .timeout: // Handle transaction timedout break } } ``` Am I doing something wrong or should I ignore the `validateResponse.actionCode` in step 12 of this guide. Thanks!

What does error Card Data PK refer to?

What does error 400 Card Data PK refer to? Can you please explain?

Sandbox test card number

None of the Amex or Discover test card numbers work in sandbox, all receive the response "Sorry this type of card does not accept fund disbursement." How can we test Amex and Discover?