Skip to content

Add a manufacturer partner

POST
/api/v1/products/partners
curl --request POST \
--url https://app.prokure.ca/api/v1/products/partners \
--header 'Content-Type: application/json' \
--data '{ "name": "example", "relationship": "example", "source_url": "https://example.com" }'

Authorizes a manufacturer partner and adds the name to the company profile’s manufacturer_partners list. Re-posting a name already on file re-authorizes it; it does not reactivate that partner’s discontinued products.

Media typeapplication/json

Authorizes a manufacturer partner and adds the name to the company profile’s manufacturer_partners list. Re-posting a name already on file re-authorizes it; it does not reactivate that partner’s discontinued products.

object
name
required

The manufacturer’s name, as it should appear on the company profile.

string
>= 1 characters <= 200 characters
relationship
Any of:
string
>= 1 characters <= 200 characters
source_url
Any of:
string format: uri
Examplegenerated
{
"name": "example",
"relationship": "example",
"source_url": "https://example.com"
}

Default Response

Media typeapplication/json
object
id
required
string
name
required
string
authorized
required

Whether the company is currently an authorized reseller for this manufacturer.

boolean
relationship
required
Any of:
string
source_url
required
Any of:
string
active_product_count
required
integer
>= -9007199254740991 <= 9007199254740991
discontinued_product_count
required
integer
>= -9007199254740991 <= 9007199254740991
created_at
required
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$/
Examplegenerated
{
"id": "example",
"name": "example",
"authorized": true,
"relationship": "example",
"source_url": "example",
"active_product_count": 1,
"discontinued_product_count": 1,
"created_at": "2026-04-15T12:00:00Z"
}

Default Response

Media typeapplication/json
object
error
required
string
Allowed values: unauthorized forbidden no_membership membership_disabled unverified_email identity_conflict insufficient_scope validation_failed not_found missing_file unsupported_type file_too_large empty_document unreadable_document context_doc_cap_reached rule_cap_reached already_reverted superseded already_exists partner_not_authorized invalid_import rate_limited internal
message
required
string
requestId
required
string
issues
Array
issue_count
integer
>= -9007199254740991 <= 9007199254740991
Example
{
"error": "unauthorized"
}

Default Response

Media typeapplication/json
object
error
required
string
Allowed values: unauthorized forbidden no_membership membership_disabled unverified_email identity_conflict insufficient_scope validation_failed not_found missing_file unsupported_type file_too_large empty_document unreadable_document context_doc_cap_reached rule_cap_reached already_reverted superseded already_exists partner_not_authorized invalid_import rate_limited internal
message
required
string
requestId
required
string
issues
Array
issue_count
integer
>= -9007199254740991 <= 9007199254740991
Example
{
"error": "unauthorized"
}

Default Response

Media typeapplication/json
object
error
required
string
Allowed values: unauthorized forbidden no_membership membership_disabled unverified_email identity_conflict insufficient_scope validation_failed not_found missing_file unsupported_type file_too_large empty_document unreadable_document context_doc_cap_reached rule_cap_reached already_reverted superseded already_exists partner_not_authorized invalid_import rate_limited internal
message
required
string
requestId
required
string
issues
Array
issue_count
integer
>= -9007199254740991 <= 9007199254740991
Example
{
"error": "unauthorized"
}

Default Response

Media typeapplication/json
object
error
required
string
Allowed values: unauthorized forbidden no_membership membership_disabled unverified_email identity_conflict insufficient_scope validation_failed not_found missing_file unsupported_type file_too_large empty_document unreadable_document context_doc_cap_reached rule_cap_reached already_reverted superseded already_exists partner_not_authorized invalid_import rate_limited internal
message
required
string
requestId
required
string
issues
Array
issue_count
integer
>= -9007199254740991 <= 9007199254740991
Example
{
"error": "unauthorized"
}

Default Response

Media typeapplication/json
object
error
required
string
Allowed values: unauthorized forbidden no_membership membership_disabled unverified_email identity_conflict insufficient_scope validation_failed not_found missing_file unsupported_type file_too_large empty_document unreadable_document context_doc_cap_reached rule_cap_reached already_reverted superseded already_exists partner_not_authorized invalid_import rate_limited internal
message
required
string
requestId
required
string
issues
Array
issue_count
integer
>= -9007199254740991 <= 9007199254740991
Example
{
"error": "unauthorized"
}