(partners)
- create - Create a new partner
- createLink - Create a link for a partner
- analytics - Retrieve analytics for a partner
- updateSale - Update a sale for a partner.
- upsertLink - Upsert a link for a partner
Create a new partner for a program. If partner exists, automatically enrolls them.
declare(strict_types=1);
require 'vendor/autoload.php';
use Dub;
use Dub\Models\Operations;
$sdk = Dub\Dub::builder()
->setSecurity(
'DUB_API_KEY'
)
->build();
$request = new Operations\CreatePartnerRequestBody(
programId: '<id>',
name: '<value>',
email: '[email protected]',
linkProps: new Operations\LinkProps(
tagIds: [
'clux0rgak00011...',
],
externalId: '123456',
),
);
$response = $sdk->partners->create(
request: $request
);
if ($response->object !== null) {
// handle response
}
Parameter | Type | Required | Description |
---|---|---|---|
$request |
Operations\CreatePartnerRequestBody | ✔️ | The request object to use for the request. |
?Operations\CreatePartnerResponse
Error Type | Status Code | Content Type |
---|---|---|
Errors\BadRequest | 400 | application/json |
Errors\Unauthorized | 401 | application/json |
Errors\Forbidden | 403 | application/json |
Errors\NotFound | 404 | application/json |
Errors\Conflict | 409 | application/json |
Errors\InviteExpired | 410 | application/json |
Errors\UnprocessableEntity | 422 | application/json |
Errors\RateLimitExceeded | 429 | application/json |
Errors\InternalServerError | 500 | application/json |
Errors\SDKException | 4XX, 5XX | */* |
Create a new link for a partner that is enrolled in your program.
declare(strict_types=1);
require 'vendor/autoload.php';
use Dub;
use Dub\Models\Operations;
$sdk = Dub\Dub::builder()
->setSecurity(
'DUB_API_KEY'
)
->build();
$request = new Operations\CreatePartnerLinkRequestBody(
programId: '<id>',
linkProps: new Operations\CreatePartnerLinkLinkProps(
tagIds: [
'clux0rgak00011...',
],
externalId: '123456',
),
);
$response = $sdk->partners->createLink(
request: $request
);
if ($response->linkSchema !== null) {
// handle response
}
Parameter | Type | Required | Description |
---|---|---|---|
$request |
Operations\CreatePartnerLinkRequestBody | ✔️ | The request object to use for the request. |
?Operations\CreatePartnerLinkResponse
Error Type | Status Code | Content Type |
---|---|---|
Errors\BadRequest | 400 | application/json |
Errors\Unauthorized | 401 | application/json |
Errors\Forbidden | 403 | application/json |
Errors\NotFound | 404 | application/json |
Errors\Conflict | 409 | application/json |
Errors\InviteExpired | 410 | application/json |
Errors\UnprocessableEntity | 422 | application/json |
Errors\RateLimitExceeded | 429 | application/json |
Errors\InternalServerError | 500 | application/json |
Errors\SDKException | 4XX, 5XX | */* |
Retrieve analytics for a partner within a program. The response type vary based on the groupBy
query parameter.
declare(strict_types=1);
require 'vendor/autoload.php';
use Dub;
use Dub\Models\Operations;
$sdk = Dub\Dub::builder()
->setSecurity(
'DUB_API_KEY'
)
->build();
$request = new Operations\RetrievePartnerAnalyticsRequest(
programId: '<id>',
);
$response = $sdk->partners->analytics(
request: $request
);
if ($response->oneOf !== null) {
// handle response
}
Parameter | Type | Required | Description |
---|---|---|---|
$request |
Operations\RetrievePartnerAnalyticsRequest | ✔️ | The request object to use for the request. |
?Operations\RetrievePartnerAnalyticsResponse
Error Type | Status Code | Content Type |
---|---|---|
Errors\BadRequest | 400 | application/json |
Errors\Unauthorized | 401 | application/json |
Errors\Forbidden | 403 | application/json |
Errors\NotFound | 404 | application/json |
Errors\Conflict | 409 | application/json |
Errors\InviteExpired | 410 | application/json |
Errors\UnprocessableEntity | 422 | application/json |
Errors\RateLimitExceeded | 429 | application/json |
Errors\InternalServerError | 500 | application/json |
Errors\SDKException | 4XX, 5XX | */* |
Update an existing sale amount. This is useful for handling refunds (partial or full) or fraudulent sales.
declare(strict_types=1);
require 'vendor/autoload.php';
use Dub;
use Dub\Models\Operations;
$sdk = Dub\Dub::builder()
->setSecurity(
'DUB_API_KEY'
)
->build();
$request = new Operations\UpdatePartnerSaleRequestBody(
programId: '<id>',
invoiceId: '<id>',
);
$response = $sdk->partners->updateSale(
request: $request
);
if ($response->object !== null) {
// handle response
}
Parameter | Type | Required | Description |
---|---|---|---|
$request |
Operations\UpdatePartnerSaleRequestBody | ✔️ | The request object to use for the request. |
?Operations\UpdatePartnerSaleResponse
Error Type | Status Code | Content Type |
---|---|---|
Errors\BadRequest | 400 | application/json |
Errors\Unauthorized | 401 | application/json |
Errors\Forbidden | 403 | application/json |
Errors\NotFound | 404 | application/json |
Errors\Conflict | 409 | application/json |
Errors\InviteExpired | 410 | application/json |
Errors\UnprocessableEntity | 422 | application/json |
Errors\RateLimitExceeded | 429 | application/json |
Errors\InternalServerError | 500 | application/json |
Errors\SDKException | 4XX, 5XX | */* |
Upsert a link for a partner that is enrolled in your program. If a link with the same URL already exists, return it (or update it if there are any changes). Otherwise, a new link will be created.
declare(strict_types=1);
require 'vendor/autoload.php';
use Dub;
use Dub\Models\Operations;
$sdk = Dub\Dub::builder()
->setSecurity(
'DUB_API_KEY'
)
->build();
$request = new Operations\UpsertPartnerLinkRequestBody(
programId: '<id>',
linkProps: new Operations\UpsertPartnerLinkLinkProps(
tagIds: [
'clux0rgak00011...',
],
externalId: '123456',
),
);
$response = $sdk->partners->upsertLink(
request: $request
);
if ($response->linkSchema !== null) {
// handle response
}
Parameter | Type | Required | Description |
---|---|---|---|
$request |
Operations\UpsertPartnerLinkRequestBody | ✔️ | The request object to use for the request. |
?Operations\UpsertPartnerLinkResponse
Error Type | Status Code | Content Type |
---|---|---|
Errors\BadRequest | 400 | application/json |
Errors\Unauthorized | 401 | application/json |
Errors\Forbidden | 403 | application/json |
Errors\NotFound | 404 | application/json |
Errors\Conflict | 409 | application/json |
Errors\InviteExpired | 410 | application/json |
Errors\UnprocessableEntity | 422 | application/json |
Errors\RateLimitExceeded | 429 | application/json |
Errors\InternalServerError | 500 | application/json |
Errors\SDKException | 4XX, 5XX | */* |