Skip to main content

Partnerships API

A partnership links a partner account with a merchant account. It records the partnership type (AFFILIATE or ISV), the sell-rate pricing profile, the subscription product and the state.

Base path: /api/v2.0/join-program/partnerships · Permission: JOIN_PROGRAM_ACCESS

MethodPathDescription
POST/create-affiliateCreate an affiliate partnership (new merchant)
POST/create-isvCreate an ISV partnership (new sub-account)
POST/create-simpleCreate a partnership for an existing account
GET/List all partnerships
GET/searchSearch partnerships
GET/{id}Retrieve a partnership
PATCH/{id}Update a partnership (e.g. state)
DELETE/{id}Delete a partnership

Create an affiliate partnership​

Invites a new merchant into the affiliate program. The merchant receives an email invitation; the partnership is created during the merchant's signup and confirmed once signup is finished.

POST /api/v2.0/join-program/partnerships/create-affiliate
{
"merchantEmailAddress": "merchant@example.com",
"partnerAccountId": 100,
"pricingProfileSellRateId": 4001,
"subscriptionProductId": 301
}

Response: 200 OK

Create an ISV partnership​

Creates the partnership immediately: a new sub-account (with a space) is created under your partner account and the merchant is invited as a user. Since sub-accounts inherit the parent account's setup, no subscription product is provisioned for the sub-account itself.

POST /api/v2.0/join-program/partnerships/create-isv
{
"merchantEmailAddress": "merchant@example.com",
"partnerAccountId": 100,
"pricingProfileSellRateId": 4001
}

Response: 200 OK

{
"id": 5020,
"state": "ACTIVE",
"partnershipType": "ISV",
"createdOn": "2026-03-05T16:00:00Z"
}

Create a partnership for an existing account​

Links an account that already exists to your join program — to connect an independent account or to correct a wrong setup. For AFFILIATE only existing regular accounts can be linked; for ISV only existing sub-accounts.

POST /api/v2.0/join-program/partnerships/create-simple
{
"partnerAccount": { "id": 100 },
"merchantAccount": { "id": 200 },
"subscriptionProductId": 301,
"pricingProfileSellRate": { "id": 4001 },
"partnershipType": "AFFILIATE"
}

Response: 200 OK

{
"id": 5010,
"state": "ACTIVE",
"partnerAccount": { "id": 100 },
"merchantAccount": { "id": 200 },
"subscriptionProductId": 301,
"pricingProfileSellRate": { "id": 4001 },
"partnershipType": "AFFILIATE",
"createdOn": "2026-03-05T15:10:00Z"
}

Retrieve a partnership​

GET /api/v2.0/join-program/partnerships/{id}

Response: 200 OK

{
"id": 5001,
"state": "ACTIVE",
"partnerAccount": { "id": 100 },
"merchantAccount": { "id": 200 },
"subscriptionProductId": 301,
"pricingProfileSellRate": { "id": 4001 },
"partnershipType": "AFFILIATE",
"createdOn": "2026-03-05T12:30:00Z"
}

List & search partnerships​

GET /api/v2.0/join-program/partnerships
GET /api/v2.0/join-program/partnerships/search

Response: 200 OK

{
"entities": [
{ "id": 5001, "state": "ACTIVE", "partnershipType": "AFFILIATE", "createdOn": "2026-03-05T12:30:00Z" },
{ "id": 5002, "state": "PENDING", "partnershipType": "ISV", "createdOn": "2026-03-06T10:00:00Z" }
],
"count": 2
}

Update a partnership​

PATCH /api/v2.0/join-program/partnerships/{id}
{ "state": "INACTIVE" }

Response: 200 OK with the updated partnership.

Delete a partnership​

DELETE /api/v2.0/join-program/partnerships/{id}

Response: 204 No Content

Validation​

  • AFFILIATE partnerships require a subscription product.
  • ISV partnerships must not have a subscription product (sub-accounts have no own subscription).
  • The pricing profile sell rate must be one of the profiles enabled in your partner configuration.
  • Requests with missing or invalid inputs return 400 with a message identifying the field.

Full request/response schemas: interactive API client.