Reconcile Bank Statement

We plan to use ACH processor from Dwolla. Once the customer initiates a transfer from their bank a/c to our account we want to instantly creates a receipt in our back end system ( Oracle EBS). Also, we would like to apply the receipts to the customer selected invoices.
We don’t want to clear the receipts until the funds reach our bank. I know that we can receive webhook notification when the funds hit our back.
I have few questions around this.

  1. When we initialize transfer, can we include the receipt number and also the invoices numbers to which the payment relates to?
  2. On the web hook call back, can you reference the receipt number and invoice numbers?
    How do we reconcile the back statement? Will the bank provide individual transaction details with receipt numbers and invoke numbers thru lock box ?

Hi @Nithin_Shetty,

  1. Yes. There are 3 ways that you can include additional information with a transfer request in Dwolla. You can utilize the metadata object with the transfer request, the addenda object, or the correlationId parameter (which can also be used as a search parameter on transfers). All parameters are optional fields in a transfer request, but can be used to attach additional information to a transfer resource. Note the Addenda feature is only applicable to Business to Business transfers and needs further approval from the Dwolla team to be enabled for a Master Account.

    metadata - A metadata JSON object with a maximum of 10 key-value pairs (each key and value must be less than 255 characters).

    correlationId - A string value attached to a customer which can be used for traceability between Dwolla and your application. Must be less than 255 characters and contain no spaces. Acceptable characters are: a-Z , 0-9 , - , . , and _ . More information can be found in our Docs.

    addenda - An addenda object contains a values key which is an array of comma separated string addenda values. Addenda record information is used for the purpose of transmitting transfer-related information from a business. Transfers must be sent to/from a business entity’s bank to guarantee addenda delivery. Please find more details in our Docs regarding these features.

Here’s an example transfer request with all of the above parameters,

POST https://api-sandbox.dwolla.com/transfers
Accept: application/vnd.dwolla.v1.hal+json
Content-Type: application/vnd.dwolla.v1.hal+json
Authorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY
Idempotency-Key: 19051a62-3403-11e6-ac61-9e71128cae77

{
   "_links": {
       "source": {
           "href": "https://api-sandbox.dwolla.com/funding-sources/707177c3-bf15-4e7e-b37c-55c3898d9bf4"
       },
       "destination": {
           "href": "https://api-sandbox.dwolla.com/funding-sources/AB443D36-3757-44C1-A1B4-29727FB3111C"
       }
   },
   "amount": {
       "currency": "USD",
       "value": "10.00"
   },
   "metadata": {
       "paymentId": "12345678",
       "note": "payment for completed work Dec. 1",
       "receiptNumber": "xxxxxxxxx"
   },
   "achDetails": {
       "source": {
           "addenda": {
               "values": ["ABC123_AddendaValue"]
           }
       },
       "destination": {
            "addenda": {
                  "values": ["ZYX987_AddendaValue"]
            }
       }
 }
 "correlationId": "8a2cdc8d-629d-4a24-98ac-40b735229fe2"
}

...

HTTP/1.1 201 Created
Location: https://api-sandbox.dwolla.com/transfers/74c9129b-d14a-e511-80da-0aa34a9b2388
  1. I’m afraid the webhook callback we deliver has a set payload and doesn’t include any of the above additional parameters. It’s recommended to store information on the actual resource itself within a metadata or correlationId field. When you receive the webhook, you’d then call the Dwolla API to obtain information that you passed into those fields.

    Whenever a transfer is created and has exported on our ACH file, the transfer resource is assigned a unique individualAchId. This ID will also appear in the bank line alongside the transfer. This field can be used to reconcile bank statements. However, this won’t correspond with the Receipt# on your end. You may be able use the addenda feature to pass you Receipt# as an addendum with the transfer, and the number will appear in the bank line, given that the bank belongs to a Business. It’s ultimately up to the individual Financial Institution on whether or not they choose to display information passed in the Addenda record field.

Hope that helps. Let me know if you have any questions!

Hi Shreya,

You mentioned that:

You may be able use the addenda feature to pass you Receipt# as an addendum with the transfer, and the number will appear in the bank line, given that the bank belongs to a Business

Instead of addenda feature, if we send the receipt# in metdata, will the bank add these details to the bank statement or they only add info in addenda object?

Hi Nithin,

Passing information to appear in the bank line is only available with the Addenda feature. The metadata object would only be tied to a transfer resource in the API. You can view the metadata in the transfer response.

Based on your sample above, can you show how the bank statement will look like?

Do you work with Union Bank? How would I know what our bank file will look like based on the data that Dwolla sends to Union Bank.

Also, if we sign up with Dwolla, will someone from Dwolla work with our Bank in terms of data transfer format from Dwolla to Union Bank and Union Bank to our company?

I don’t have an example of what it would look like, but the bank line by default reads
a) the Company Name tied to the Master Account and a field called the individualAchId which is a unique id that dwolla generates and sends.
OR
b) If facilitating transactions between Customers, we could potentially have it display the sending Customer records name on the ACH credit entry and the receiving Customer records name on the ACH debit entry. This is an account setting that could be turned on upon further approval.

Dwolla doesn’t work with individual banks other than our own FBO Bank. Would you mind elaborating on what you meant by data transfer format?