Skip to main content
Asking vendors to email you a voided check or a bank letter is slow and risky. Instead, have Nickel collect their details: you trigger a request, the vendor fills in a secure hosted form, and their delivery method appears on the vendor record — without their account number ever passing through your systems.
Before you start: You need a vendor (see Pay a Vendor Bill) and a webhook subscription to hear when the vendor completes the form.
1

Send the request

Call POST /vendor/{vendorId}/requestDeliveryDetails. Nickel emails the addresses you pass — or the vendor’s emails on file if you omit emails — a link to the secure form:
curl -X POST https://rest.staging.nickel.com/vendor/cmra1j4un00013u02spto0xz7/requestDeliveryDetails \
  -H "Authorization: Bearer $NICKEL_SANDBOX_KEY" \
  -H "Content-Type: application/json" \
  -d '{"emails": ["billing@brooklynpapersupply.com"]}'
{
  "url": "https://nickel.staging.nickelpayments.com/vendor?token=eyJhbGciOi..."
}
The returned url is the same form the email links to — share it directly over your own channel if you prefer. The link is vendor-specific and expires, so request a fresh one rather than storing it.
2

The vendor fills in the form

The vendor chooses how they want to be paid — bank account for ACH, mailing address for checks — and submits. Nothing to build or host on your side.
3

Get notified

When the vendor submits, your webhook receives vendor.payout_method_updated with the vendor’s ID in associated_object_id. Fetch the vendor and read the new delivery method:
curl https://rest.staging.nickel.com/vendor/cmra1j4un00013u02spto0xz7 \
  -H "Authorization: Bearer $NICKEL_SANDBOX_KEY"
{
  "id": "cmra1j4un00013u02spto0xz7",
  "name": "Brooklyn Paper Supply",
  "vendorDeliveryMethods": [
    {
      "id": "cmra1jcxw00033u02rdotftsr",
      "type": "ACH",
      "routingNumber": "101050001",
      "accountType": "checking",
      "bankName": "First Bank of the United States",
      ...
    }
  ],
  ...
}
Full account numbers are never returned — the delivery method carries only what you need to recognize and use it.
vendor.payout_method_updated fires on both create and update. If a vendor corrects their details, the delivery method changes — always refetch the vendor rather than caching vendorDeliveryMethods[].id from months ago.
4

Pay them

Use the vendorDeliveryMethods[].id as the vendorDeliveryMethodId in POST /bill/pay — pick up Pay a Vendor Bill at the “Create the bill” step.

Where to go next

Pay a vendor bill

The end-to-end payable flow this plugs into.

Receive webhooks

The receiver that hears vendor.payout_method_updated.