Here are my PHP codeigniter functions to create Test Customers. System is able to create the customer but the response is not returning CUSTOMER ID created. It just prints 1 there. Any help??
public function createTestCustomers() {
$data = array(
‘firstName’ => “Andy”,
‘lastName’ => “Ron”,
‘email’ => “andy@xyz.com”,
‘type’ => “receive-only”
);
spencer
(Spencer Hunter - Lead Developer Advocate @ Dwolla)
2
Hi @Sharma, As referenced in our docs, POSTs to the the API to create a new resource will return a link to the resource (which includes the ID) in the Location response header. It looks like you’re attempting to decode the response body, which in this case would be empty.
{“code”:“ValidationError”,“message”:“Validation error(s) present. See embedded errors list for more details.”,"_embedded":{“errors”:[{“code”:“Restricted”,“message”:“Sender restricted.”,“path”:"/_links/source/href","_links":{}}]}}
Hi @Sharma – Thanks for posting a detailed req/res log. It looks like, while the sender has a verified funding-source (id: 2ee1759d-090d-464d-acdc-5ce27a3b5e59), the sender itself was created as a Receive-only Customer (RO). ROs aren’t able to send funds.
You’d want to create the sender as a Verified Customer type in order to send funds to the Receiver (which is also an RO). Please check out this resource on Customer Types in Dwolla for more information on what types there, what limitations each have, and which types you would want to choose based on your use-case. Let us know if you come across any questions!
spencer
(Spencer Hunter - Lead Developer Advocate @ Dwolla)
6
Hi @sharma, A Restricted error (either sender or receiver) typically implies an issue with the underlying Customer type you have created for your end-user. An example can include invalid user status such as deactivated or suspended. In this specific instance, the Sender restricted error is returned due to the underlying business rules tied to the sending Customer Type being used in this request. The sending party is created as a Receive-only User, which are only eligible to receive funds from an identity verified account. For more information on the different types of Customer types, refer to this resource article. Keep in mind, as the name implies, a Receive-only user can only receive funds and not send funds.
Hightlighting an important paragraph within the article I linked to which is key to a successful integration.
As you decide what Customer types to create for your application, a good thing to keep in mind is Customer Identification Program (CIP) Verification. Remember that regardless of your application type, a transfer between two parties requires that at least one party must be CIP verified. It is your decision about which party completes this process based on your business model. Your own Dwolla Master Account can count as a verified party. You may also consider having both parties complete CIP verification, as we also require CIP verification in order for a customer to hold funds in the Dwolla network in the form of a balance.
Any one of the following combination of Customer types will work for facilitation funds flows:
Unverified Customer A → Verified Customer B
Verified Customer A → Unverified Customer B
Verified Customer A → Verified Customer B
Verified Customer A → Receive-only User B
Hope this helps, please let us know if you have any follow up questions!
Thanks Shreya! Thats helpful. Follow up questions:
In the sandbox environment, if I have the customer already created as “Receive-only” - is there any User Interface to make it Verified ? If there any API to update it?
I am using PLAID + DWOLLA - My customers are going to have plaid access code - how do I create these customers Verified customer in DWOLLA - do I have to ask for SSN last 4 and address on my app or can DWOLLA get that from PLAID?
Sorry to bug you with this - but here is what I just tried:
I created a verified Customer and I already have “Receive-Type” customer.
[DEBUG] HTTP Request body ~BEGIN~
{“_links”:{“source”:{“href”:“https://api-sandbox.dwolla.com/funding-sources/2ee1759d-090d-464d-acdc-5ce27a3b5e59”},“destination”:{“href”:“https://api-sandbox.dwolla.com/funding-sources/c971ae70-eec0-4a08-bb59-de56f51db8f2”}},“amount”:{“currency”:“USD”,“value”:“23.00”},“correlationId”:“8a2cdc8d-629d-4a24-98ac-40b732222f33”}
~END~
[DEBUG] HTTP Response body ~BEGIN~
{“code”:“ValidationError”,“message”:“Validation error(s) present. See embedded errors list for more details.”,“_embedded”:{“errors”:[{“code”:“Restricted”,“message”:“Sender restricted.”,“path”:“/_links/source/href”,“_links”:{}}]}}
~END~
Hello @Sharma, hope your week is going well.
We can refer to the request example you specified above and break this down by source and destination.
Your source Customer - a292db07-cd0d-4169-a8c7-4bfa7d20667f - is classified as receive-only
Your source Funding Source - 2ee1759d-090d-464d-acdc-5ce27a3b5e59 - has a status of verified.
Even though the Funding Source is in a verified status, due to your Customer being classified receive-only, they are not able to send funds
Your destination Customer - 50f7e383-1c24-48cc-8c5e-1d8397a01062 - has a status of verified
Your destination Funding Source - c971ae70-eec0-4a08-bb59-de56f51db8f2 - has a status of verified.
It looks like this Customer and Funding Source are eligible to send funds.
I would recommend switching your source to be the verified Customer’s Funding Source.
And the destination to be the receive-only Customer’s Funding Source.
Awesome thanks Cory! That did the magic. You guys are awesome! Thank you!
One more question.
My use case is - users login to my portal to send and recieve money to other folks in the network and part of my portal.
I am using PLAID to get my customers onboarded - with that I am having the following steps:
Create customer using DWOLLA API - creating “VERIFIED” users as user can send and recv money
Get and register funding source for customers - input for this is the PLAID PROCESSOR TOKEN for DWOLLA
Initiate Transfer
Question is for step 1 - for me to make everybody VERIFIED customer - I have to ask their Address and Last 4 of SSN. Is there a way to avoid SSN ask to make customer VERIFIED?
I have to ask their Address and Last 4 of SSN. Is there a way to avoid SSN ask to make customer VERIFIED?
In order to create a Verified Customer, Dwolla requires the last four of a user’s SSN to comply with Know Your Customer (KYC) compliance. Currently, there is no way to avoid passing an SSN to create a Verified Customer.