---
title: "Create Supplier Provider"
method: POST
path: "/supplier_provider"
---

# Create Supplier Provider

`POST /supplier_provider`

## Request

- Base URL: `https://dc-region.zuperpro.com/api`
- URL: `https://dc-region.zuperpro.com/api/supplier_provider`
- Auth: API key in header `x-api-key`

Connects a supplier account (SRS, ABC Supply or QXO) to your company. Only one provider of each type is allowed, so a second one of the same type fails with 409. Zuper authenticates with the supplier before saving, so the provider is created as `CONNECTED` only when the supplier accepts the details; otherwise nothing is saved. For SRS, Zuper signs in with its own SRS partner access (send `credentials_keys` as `{}`) and verifies the customer account given in `customer_data`: `customer_code` plus either `invoice_number` and `invoice_date`, or `integration_key`. For ABC Supply and QXO, send the account's OAuth `refresh_token` in `credentials_keys`; Zuper exchanges it for an access token and keeps it refreshed. The new provider becomes the preferred supplier automatically when the company has no active preferred one. The response returns only the new provider's UID. Requires supplier integration to be enabled for the company; otherwise the request fails with 400. Admin only: the API key must belong to an admin user; other roles receive 405 Access Denied.

## Request body

- object
  - `supplier_provider` object, required: Required. The provider to connect.
    - `supplier_provider_name` string, required: Required. Name shown for this provider in Zuper. At least 3 characters.
    - `supplier_provider_type` 'SRS' | 'ABC_SUPPLY' | 'QXO', required: Required. The supplier. Only one provider of each type is allowed per company.
    - `supplier_provider_keys` object, required: Required. Supplier credentials and account details. Never returned by any endpoint.
      - `credentials_keys` object, required: Required. Send `{}` for SRS.
        - `refresh_token` string: Required for `ABC_SUPPLY` and `QXO`: the OAuth refresh token for the customer's account with that supplier. Not used for SRS.
      - `customer_data` object: Required for `SRS`; identifies the customer's SRS account. Provide `customer_code` plus either `invoice_number` and `invoice_date`, or `integration_key`.
        - `customer_code` string: Required for `SRS`. The customer's SRS account number.
        - `invoice_number` string: SRS only. Number of an SRS invoice on the account; send together with `invoice_date`.
        - `invoice_date` string: SRS only. Date of the invoice in `invoice_number`.
        - `integration_key` string: SRS only. SRS integration key for the account; use instead of `invoice_number` and `invoice_date`.

## Response `200`

200

- object
  - `type` 'success'
  - `title` string
  - `message` string
  - `data` object
    - `supplier_provider_uid` string

## Other responses

- `400`: 400
- `405`: 405
- `409`: 409

## Changes

- **2026-11-03** `3c21bc232e16`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zuper/apis/zuper-pro-api/changes/supplier_provider/post.md)

---

[API](https://skmtc.dev/zuper/apis/zuper-pro-api.md) - [All operations](https://skmtc.dev/zuper/apis/zuper-pro-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zuper/apis/zuper-pro-api/revisions/3c21bc232e16?raw)
