Facilitator fee to a 3rd party

The “Take Charge Of Each Transaction” page says that “charging for the coordination of that payment is the app’s way of being compensated for their service”. So, as an app maker, I want to get my fee when I facilitate transfers from one customer to another. But according to a moderator’s answer in another thread (and to errors that I get) that’s not actually permitted:

A facilitator-fee can only be charged to one of the parties involved in a transfer. … You can replace the Customer ID in the url with another Customer ID that belongs to either the sender, or the receiver in the above transfer request.

If that’s the case, then how am I supposed to use the facilitator’s fee feature?

Hi @ye-petrov, That thread references an issue relating to an invalid Customer ID used when attempting to charge the fee. They used an example customer ID that is shown in our docs and not one that is owned by their application/account. Customers belong to a single Dwolla account that owns the application that is used when onboarding the end-user.

As long as the Customer is on-boarded via your application then you can charge a fee as outlined in our documentation.

Ok, I’ll be more specific. When I make this request

{
    "_links": {
        "source": {
            "href": "https://api-sandbox.dwolla.com/funding-sources/b100ab23-47ed-4d79-a7e7-e90492a5b1d0"
        },
        "destination": {
            "href": "https://api-sandbox.dwolla.com/funding-sources/696233e6-54b8-409a-b76e-8e9dd21b5c62"
        }
    },
    "amount": {
        "currency": "USD",
        "value": "20"
    },
    "metadata": {
        "paymentId": "5e9f469a49fd6226bc055508"
    },
    "fees": [
        {
            "_links": {
                "charge-to": {
                    "href": "https://api-sandbox.dwolla.com/accounts/a876532c-7271-4557-8567-1433726fd3cf"
                }
            },
            "amount": {
                "value": "1",
                "currency": "USD"
            }
        }
    ]
}

… I get the following response …

{
    "code": "ValidationError",
    "message": "Validation error(s) present. See embedded errors list for more details.",
    "_embedded": {
        "errors": [
            {
                "code": "Invalid",
                "message": "Unable to charge fee to specified destination.",
                "path": "/fees/_links/charge-to/href",
                "_links": {}
            }
        ]
    }
}

Both source and destination funding sources belong to customers that belong to the same charge-to account. In other words, all IDs are from my own sandbox. And yet Dwolla is unable to charge fee to specified destination. Why?

Speaking of the docs, I read the following:

The _links object contains charge-to , which represents the associated source or destination Customer or Account resource that will assume the fee

So it does have to match either the source or the destination. And if the source is my customer A and the destination is my customer B, then how do I get the fee? Is it because I’m gonna get it either way and “chrage-to” only specifies who to get that fee from, not whom to send it to?

Correct. Charge-to would be the Customer URL that identifies the user that is being charged the fee (either Customer A or Customer B). When the transaction completes, the portion of the fee you’re collecting as the facilitator will go to the Dwolla Account balance of your account. The account that owns the application that is facilitating the transaction via the API.

If the source Customer is being charged the fee, the charge-to object will look like:

"charge-to": {
                    "href": "https://api-sandbox.dwolla.com/customers/b100ab23-47ed-4d79-a7e7-e90492a5b1d0"
                }

If the destination Customer is being charged the fee, the charge-to object will look like:

 "charge-to": {
                        "href": "https://api-sandbox.dwolla.com/customers/d355f631-0ff4-48aa-800c-f2e3cfa8b10b"
                    }

Sorry for the confusion, we’ll update our docs for clarity!

1 Like