-
Notifications
You must be signed in to change notification settings - Fork 8
Dev 1807: Validate issue with balance response and apply fix #40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
gram/overlay.yml
Outdated
| - Customer must exist (use get_customer or list_customers to verify if needed) | ||
| - Choose appropriate funding source creation method based on available data: | ||
| * Use account/routing numbers for traditional manual entry | ||
| * Use Plaid token if bank account was verified through Plaid |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should remove plaidToken as an option for this request since it will likely be deprecated at some point in favor of the exchange solution?
gram/overlay.yml
Outdated
| - Choose appropriate funding source creation method based on available data: | ||
| * Use account/routing numbers for traditional manual entry | ||
| * Use Plaid token if bank account was verified through Plaid | ||
| * Use exchange resource if bank was connected via IAV (Instant Account Verification) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| * Use exchange resource if bank was connected via IAV (Instant Account Verification) | |
| * Use exchange resource if bank was connected via Instant Account Verification (IAV) through an Open Banking provider (e.g. Plaid, MX, Finicity, Flinks) |
gram/overlay.yml
Outdated
| * Use account/routing numbers for traditional manual entry | ||
| * Use Plaid token if bank account was verified through Plaid | ||
| * Use exchange resource if bank was connected via IAV (Instant Account Verification) | ||
| * Use virtual account type for creating Virtual Account Numbers (VANs) for receiving funds |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| * Use virtual account type for creating Virtual Account Numbers (VANs) for receiving funds | |
| * Use virtual account type for creating Virtual Account Numbers (VANs) for enabling ACH transactions to and from a Dwolla Balance (digital wallet) |
gram/overlay.yml
Outdated
| <workflow> | ||
| 1. Determine which funding source creation method to use based on available data | ||
| 2. For traditional method: Obtain valid US routing number and account number | ||
| 3. For Plaid method: First obtain a Plaid processor token |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similar comment as above. Should we remove plaidToken reference?
gram/overlay.yml
Outdated
| * Use Plaid token if bank account was verified through Plaid | ||
| * Use exchange resource if bank was connected via IAV (Instant Account Verification) | ||
| * Use virtual account type for creating Virtual Account Numbers (VANs) for receiving funds | ||
| - Ensure customer type supports the chosen funding source method |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any additional context we can provide here with what we mean by this bullet point?
gram/overlay.yml
Outdated
| 1. Determine which funding source creation method to use based on available data | ||
| 2. For traditional method: Obtain valid US routing number and account number | ||
| 3. For Plaid method: First obtain a Plaid processor token | ||
| 4. For exchange method: First create an exchange session and obtain exchange resource |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Exchange session isn't always required in order to create a funding source.
gram/overlay.yml
Outdated
| 2. For traditional method: Obtain valid US routing number and account number | ||
| 3. For Plaid method: First obtain a Plaid processor token | ||
| 4. For exchange method: First create an exchange session and obtain exchange resource | ||
| 5. Specify bank account type (checking, savings, or for VANs: checking only) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| 5. Specify bank account type (checking, savings, or for VANs: checking only) | |
| 5. Specify bank account type (checking, savings, or for VANs: virtual) |
gram/overlay.yml
Outdated
| Instant Account Verification (IAV) partners like MX, Plaid, or Finicity. | ||
| </context> | ||
| <when_to_use> | ||
| - Customer connected their bank through Dwolla's Open Banking flow |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we include the secure token exchange solution here? These bullets seem to lean towards our Open Banking solution that uses exchange sessions and exchanges.
gram/overlay.yml
Outdated
| - Create an exchange session first (use exchange partner integration) | ||
| - Customer must complete the bank connection through IAV flow | ||
| - Obtain the exchange resource URL from the successful connection | ||
| - Use list_available_connections to see which banks were connected |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This endpoint/tool is pretty complex which in turn makes it difficult to bullet point pre-requisites. Maybe we should think about this more broadly to start? TLDR; wonder if we should remove this bullet point
| <prerequisites> | ||
| - Customer must be a verified customer with Dwolla Balance access | ||
| - Virtual account type must be set to "virtual" | ||
| - Bank account type must be "checking" (only supported type for VANs) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this be virtual?
spencerhunter
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ShreyaThapa A few recommendations are ready for review!
retrieveFundingSourceBalance.ymlto fix Zod union discrimination. Without required fields, the validator always matched the first schema, causingavailableandclosingfields to be dropped from Bank Balance responses./gramfolder that houses theoverlay.ymland generateopenapi.ymlfile used in Gram MCPgram/openapi.ymlfile, use the following Speakeasy CLI command:speakeasy overlay apply --overlay=gram/overlay.yml --schema=openapi.yml --out=gram/openapi.ymlverifiedfield definition inCreateCustomerFundingSource.ymlto prevent Speakeasy from generating it as a required field. This allows the Zod union to correctly match the account-numbers schema when creating funding sources with routing/account numbers.