Skip to main content
POST
cURL
Select a currency, bank country, and payout type below to see exactly which payoutMethod fields are required and their format rules, plus a matching example request.

Authorizations

Authorization
string
header
required

Basic authentication using the partner API keys from https://console.grainfinance.co/keys

Body

application/json

Request body for POST /v1/vendors. Creates a vendor with a single payout method. The conditional contact fields (contactState, contactTaxId, contactPhoneNumber, companyRegisterNumber) are required for some countries.

externalVendorId
string
required

The vendor id, as identified within your system.

Pattern: ^[A-Za-z0-9_.\-]{1,64}$
Example:

"vendor_001"

contactFullName
string
required

The full name of the vendor's contact person or business.

Example:

"Acme Supplies Ltd"

contactCountry
string
required

The alpha-2 ISO 3166 country code of the vendor.

Pattern: ^[A-Za-z]{2}$
Example:

"US"

contactCity
string
required

The city of the vendor's address.

Example:

"New York"

contactEmail
string
required

The email address of the vendor.

Example:

"billing@acmesupplies.com"

contactStreetName
string
required

The street name of the vendor's address.

Example:

"Madison Avenue"

contactBuildingName
string
required

The building name or number of the vendor's address.

Example:

"383"

contactPostalCode
string
required

The postal code of the vendor's address.

Example:

"10017"

payoutMethod
object
required

The payout method to register for the vendor.

contactState
string

The ISO state code of the vendor's address. Required for vendors in US, CA, NZ and AU.

Example:

"NY"

contactTaxId
string

The tax id of the vendor. Required for vendors in some countries.

Example:

"901234567"

contactPhoneNumber
string

The phone number of the vendor's contact. Required for vendors in some countries.

Example:

"+13212312321"

companyRegisterNumber
string

The company register number of the vendor. Required for vendors in some countries.

Example:

"514455544"

Response

Vendor created

A Vendor represents a payee that payouts can be sent to. Returned by POST /v1/vendors, GET /v1/vendors/{vendorId}, and GET /v1/vendors.

vendorId
string<uuid>
required

The id of the vendor within the Grain platform.

Pattern: [0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}
Example:

"1b0ada1e-fa1b-4cfe-a553-01b340c5650e"

externalVendorId
string
required

The vendor id, as identified within your system.

Pattern: ^[A-Za-z0-9_.\-]{1,64}$
Example:

"vendor_001"

contact
object
required

The contact details of the vendor.

payoutMethods
object[]
required

The payout methods registered for the vendor.

createdAt
string<date-time>
required

When the vendor was created, as an ISO-8601 date-time in UTC.

Example:

"2026-05-15T09:12:28.000Z"

updatedAt
string<date-time>
required

When the vendor was last updated, as an ISO-8601 date-time in UTC.

Example:

"2026-05-15T09:12:28.000Z"