I’m going to attempt with this blog post to make a very complex thing very simple. Dwolla’s platform has a ledger at its core. This ledger is highly available and performant. It is currently used by millions of people throughout the US transacting billions of dollars.

The Dwolla ledger is pretty darn good and we’re starting to see it used in new ways which is where Labels comes in. We noticed developers creating multiple accounts for their users for unique reasons.

I’ll explain. A company is creating an application that helps an end user, let’s call her Erika, save money for various future purposes.  Previously that company would need to create multiple accounts for Erika’s savings. The multiple accounts, or Verified Customer Records (VCR), would require duplicate processes to create and verify each record for Erika. This duplication creates undue complexity/costs for both the company and Erika.

labels multiple vcrs image

That’s 3 VCR accounts. That’s a lot of data flying around and creating each new account requires validating Erika four different times even though the account owner is the same.

Now, Labels streamlines the process of being able to easily identify the allocation of funds by allowing the company to create multiple Labels for Erika. The Labels are all associated to her single account, but remove the need to create and verify multiple accounts.

labels diagram image

The funds are always owned by the VCR owner, Erika, and the subaccounting is easy, instant and real-time. Using Labels, there is no need to create multiple VCR accounts.

Each label carries an ID which is referenced in the API when updating it. To create a label you simply POST to the appropriate endpoint the amount of funds you want applied to the label:

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

{
	"amount": {
		"currency": "USD",
		"value": "10.00"
	}
}

To update a label or associate funds from one label to another.

POST https://api-sandbox.dwolla.com/labels/{{labelId}}/ledger-entries
Accept: application/vnd.dwolla.v1.hal+json
Content-Type: application/vnd.dwolla.v1.hal+json
Authorization: Bearer pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqO

{
	"amount": {
		"currency": "USD",
		"value": "25.00"
	}
}

 

The applications for Labels are quite vast which is what I love about it and marketers may hate about it. You can use Labels as a subaccounting function for things like savings intentions in your applications, pre-payment terms without the receiver holding funds where funds stay in the sender’s name while they are separately accounted for until an action happens removing the need to create separate accounts entirely.

Labels empower software developers to apply rules to the funds flow without ever taking ownership of the money. The funds are always owned by the end user. I’m sure many of you can think up a number of reasons you’d want to Label some money before or after something else happens.

I selfishly dream of a world where Labels represent things, like cars that are authorized to make payments based on their activity on behalf of the owner of the vehicle.

Developers can now leverage the ledger to do subaccounting at scale without creating multiple accounts and without creating secondary systems or complex funds flows of their own.

Labels is now available to all Scale and Enterprise accounts.

 

Visit our developer docs to get started on creating your first label.

labels dashboard image

Stay Updated with Dwolla