Skip to content

Payments API (1.0)

The payments API allows you to initiate and manage payments and vendors from your Brex business accounts.

Download OpenAPI description
Languages
Servers
Production
https://api.brex.com
Staging (Note: This is not a sandbox. It will not work with customer tokens.)
https://api-staging.brex.com

Endpoints to manage vendors

Operations

Request

This endpoint lists all existing vendors for an account. Takes an optional parameter to match by vendor name.

Security
OAuth2(Required scopes:
vendors.readonly
)
Query
cursorstring or null
limitinteger or null(int32)
namestring or null
curl -i -X GET \
  https://api.brex.com/v1/vendors \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Returns a list of vendor objects.

Bodyapplication/json
next_cursorstring or null
itemsArray of objects(VendorResponse)required
items[].​idstringrequired

Vendor ID: Can be passed to /transfers endpoint to specify counterparty.

items[].​company_namestring or null
items[].​emailstring or null
items[].​phonestring or null
items[].​payment_accountsArray of objects or null(PaymentAccountResponse)
Response
application/json
{ "next_cursor": "string", "items": [ {} ] }

Request

This endpoint creates a new vendor.

Security
OAuth2(Required scopes:
vendors
)
Headers
Idempotency-Keystringrequired
Bodyapplication/jsonrequired
company_namestringrequired

Name for vendor. The name must be unique.

emailstring or null(email)

Email for vendor.

phonestring or null

Phone number for vendor.

payment_accountsArray of objects or null(PaymentAccountRequest)

Payment accounts associated with the vendor.

curl -i -X POST \
  https://api.brex.com/v1/vendors \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: string' \
  -d '{
    "company_name": "string",
    "email": "user@example.com",
    "phone": "string",
    "payment_accounts": [
      {
        "details": {
          "type": "ACH",
          "routing_number": "string",
          "account_number": "string",
          "account_type": "CHECKING",
          "account_class": "BUSINESS",
          "beneficiary_name": "string"
        }
      }
    ]
  }'

Responses

createVendor 200 response

Bodyapplication/json
idstringrequired

Vendor ID: Can be passed to /transfers endpoint to specify counterparty.

company_namestring or null
emailstring or null
phonestring or null
payment_accountsArray of objects or null(PaymentAccountResponse)
Response
application/json
{ "id": "string", "company_name": "string", "email": "string", "phone": "string", "payment_accounts": [ {} ] }

Request

This endpoint gets a vendor by ID.

Security
OAuth2(Required scopes:
vendors.readonly
)
Path
idstringrequired
curl -i -X GET \
  'https://api.brex.com/v1/vendors/{id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Returns a vendor object.

Bodyapplication/json
idstringrequired

Vendor ID: Can be passed to /transfers endpoint to specify counterparty.

company_namestring or null
emailstring or null
phonestring or null
payment_accountsArray of objects or null(PaymentAccountResponse)
Response
application/json
{ "id": "string", "company_name": "string", "email": "string", "phone": "string", "payment_accounts": [ {} ] }

Request

Updates an existing vendor by ID.

Security
OAuth2(Required scopes:
vendors
)
Path
idstringrequired
Headers
Idempotency-Keystring or null
Bodyapplication/jsonrequired
company_namestring or null

Name for vendor

emailstring or null(email)

Email for vendor

phonestring or null

Phone number for vendor

payment_accountsArray of objects or null(PaymentAccountRequest)

To update payment instruments, we require the entire payload for each payment instrument that is being updated.

beneficiary_namestring or null

Name for the Beneficiary

curl -i -X PUT \
  'https://api.brex.com/v1/vendors/{id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "company_name": "string",
    "email": "user@example.com",
    "phone": "string",
    "payment_accounts": [
      {
        "details": {
          "type": "ACH",
          "routing_number": "string",
          "account_number": "string",
          "account_type": "CHECKING",
          "account_class": "BUSINESS",
          "beneficiary_name": "string"
        }
      }
    ],
    "beneficiary_name": "string"
  }'

Responses

updateVendor 200 response

Bodyapplication/json
idstringrequired

Vendor ID: Can be passed to /transfers endpoint to specify counterparty.

company_namestring or null
emailstring or null
phonestring or null
payment_accountsArray of objects or null(PaymentAccountResponse)
Response
application/json
{ "id": "string", "company_name": "string", "email": "string", "phone": "string", "payment_accounts": [ {} ] }

Request

This endpoint deletes a vendor by ID.

Security
OAuth2(Required scopes:
vendors
)
Path
idstringrequired
curl -i -X DELETE \
  'https://api.brex.com/v1/vendors/{id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

deleteVendor 200 response

Endpoints to initiate transfers and view transfer statuses. Note that for all transfer endpoints, the 'money' field is positive or unsigned for outgoing transfers (debits), and negative for incoming transfers (credits).

Operations

Endpoint to view connected linked accounts

Operations