-
Notifications
You must be signed in to change notification settings - Fork 32
customers: support additional implementations #550
Comments
The idea is to send Creating transfer should look like : {
"amount": 123
"source": {
"customer": { ... } // customer data
"account": { ... } // account data
}
"destination": {
"customer": { ... } // customer data
"account": { ... } // account data
}
"description": string
"sameDay": boolean
} |
To add to the previous comment and the issue description, this change would enable existing modular cores to easily connect with ACH infrastructure (through paygate) without needing to orchestrate the low-level API's provided by the ACH project. We would assume that an existing core has
and is only looking to call PayGate to pass all payments related data through a simple API. So the existing API would introduce optional parameters as shown below
I will follow up on "schemeSpecificOptions" later on as we integrate with more US payment schemes and have more specific use-cases. |
We're looking to have I'm still unsure if we want to accept full customer blocks for these transfers. I think supporting another Customers impl makes more sense than expanding the API endpoint. |
@adamdecaf : Fair enough. Just an update that we ended up using the ACH project for our use-case |
PayGate Version:
v0.8.0
What were you trying to do?
Some users of PayGate want to use a different implementation of Customers. This is because they have an external KYC/CRM system and don't need to track Customer information in our services. What complicates this is account information which is required by PayGate. We need to figure out how to pull that account and customer information. It might be easier to split the interface.
Configuration
I think adding a sub-object in the config file for new implementations would be the way to go.
Required Calls
From the v0.8.0 Customers client there are a few required calls. We can split these out into a different Go interface.
FindAccount(customerID, accountID string) (*moovcustomers.Account, error)
DecryptAccount(customerID, accountID string) (*moovcustomers.TransitAccountNumber, error)
We require several fields of the
Customer
model as well.The text was updated successfully, but these errors were encountered: