Dev 1807: Validate issue with balance response and apply fix#40
Dev 1807: Validate issue with balance response and apply fix#40ShreyaThapa merged 5 commits intomainfrom
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.
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.
| * 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.
| * 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.
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.
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.
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.
| 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.
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.
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) |
spencerhunter
left a comment
There was a problem hiding this comment.
@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.