Dub Payouts API
The Payouts API from Dub — 1 operation(s) for payouts.
The Payouts API from Dub — 1 operation(s) for payouts.
openapi: 3.0.3
info:
title: Dub Analytics Payouts API
description: Dub is the modern link attribution platform for short links, conversion tracking, and affiliate programs.
version: 0.0.1
contact:
name: Dub Support
email: support@dub.co
url: https://dub.co/support
license:
name: AGPL-3.0 license
url: https://github.com/dubinc/dub/blob/main/LICENSE.md
servers:
- url: https://api.dub.co
description: Production API
tags:
- name: Payouts
paths:
/payouts:
get:
operationId: listPayouts
x-speakeasy-name-override: list
summary: List all payouts
description: Retrieve a paginated list of payouts for your partner program.
tags:
- Payouts
security:
- token: []
parameters:
- in: query
name: status
schema:
description: Filter the list of payouts by their corresponding status.
type: string
enum:
- pending
- processing
- processed
- sent
- completed
- failed
- canceled
description: Filter the list of payouts by their corresponding status.
- in: query
name: partnerId
schema:
description: Filter the list of payouts by the associated partner. When specified, takes precedence over `tenantId`.
type: string
description: Filter the list of payouts by the associated partner. When specified, takes precedence over `tenantId`.
- in: query
name: tenantId
schema:
description: Filter the list of payouts by the associated partner's `tenantId` (their unique ID within your database).
type: string
description: Filter the list of payouts by the associated partner's `tenantId` (their unique ID within your database).
- in: query
name: invoiceId
schema:
description: Filter the list of payouts by invoice ID (the unique ID of the invoice you receive for each batch payout you process on Dub). Pending payouts will not have an invoice ID.
type: string
description: Filter the list of payouts by invoice ID (the unique ID of the invoice you receive for each batch payout you process on Dub). Pending payouts will not have an invoice ID.
- in: query
name: sortBy
schema:
default: amount
description: The field to sort the list of payouts by.
type: string
enum:
- amount
- initiatedAt
- paidAt
description: The field to sort the list of payouts by.
- in: query
name: sortOrder
schema:
default: desc
description: The sort order for the list of payouts.
type: string
enum:
- asc
- desc
description: The sort order for the list of payouts.
- in: query
name: page
schema:
description: The page number for pagination.
example: 1
deprecated: false
type: number
minimum: 0
exclusiveMinimum: true
description: The page number for pagination.
- in: query
name: pageSize
schema:
default: 100
description: The number of items per page.
example: 50
type: number
minimum: 0
exclusiveMinimum: true
maximum: 100
description: The number of items per page.
responses:
'200':
description: The list of payouts.
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
invoiceId:
nullable: true
type: string
amount:
type: number
currency:
type: string
status:
type: string
enum:
- pending
- processing
- processed
- sent
- completed
- failed
- canceled
description:
nullable: true
type: string
periodStart:
nullable: true
type: string
periodEnd:
nullable: true
type: string
createdAt:
type: string
updatedAt:
type: string
initiatedAt:
nullable: true
type: string
paidAt:
nullable: true
type: string
failureReason:
nullable: true
type: string
mode:
nullable: true
type: string
enum:
- internal
- external
method:
nullable: true
type: string
enum:
- connect
- stablecoin
- paypal
traceId:
nullable: true
type: string
partner:
type: object
properties:
id:
type: string
description: The partner's unique ID on Dub.
name:
type: string
maxLength: 190
description: The partner's full legal name.
email:
nullable: true
description: The partner's email address. Should be a unique value across Dub.
type: string
maxLength: 190
image:
nullable: true
description: The partner's avatar image.
type: string
defaultPayoutMethod:
nullable: true
description: 'The partner''s default payout method. Connect: Bank account payouts via Stripe Connect; Stablecoin: USDC payouts directly to a crypto wallet; PayPal: Payouts via PayPal'
type: string
enum:
- connect
- stablecoin
- paypal
payoutsEnabledAt:
nullable: true
description: The date when the partner enabled payouts.
type: string
country:
nullable: true
description: The partner's country (required for tax purposes).
type: string
groupId:
description: The partner's group ID on Dub.
nullable: true
type: string
tenantId:
nullable: true
description: The partner's unique ID within your database. Can be useful for associating the partner with a user in your database and retrieving/update their data in the future.
type: string
required:
- id
- name
- email
- image
- defaultPayoutMethod
- payoutsEnabledAt
- country
- tenantId
additionalProperties: false
user:
nullable: true
type: object
properties:
id:
type: string
name:
nullable: true
type: string
email:
nullable: true
type: string
image:
nullable: true
type: string
required:
- id
- name
- email
- image
additionalProperties: false
required:
- id
- invoiceId
- amount
- currency
- status
- periodStart
- periodEnd
- createdAt
- initiatedAt
- paidAt
- mode
- method
- partner
additionalProperties: false
'400':
$ref: '#/components/responses/400'
'401':
$ref: '#/components/responses/401'
'403':
$ref: '#/components/responses/403'
'404':
$ref: '#/components/responses/404'
'409':
$ref: '#/components/responses/409'
'410':
$ref: '#/components/responses/410'
'422':
$ref: '#/components/responses/422'
'429':
$ref: '#/components/responses/429'
'500':
$ref: '#/components/responses/500'
components:
responses:
'500':
description: The server has encountered a situation it does not know how to handle.
content:
application/json:
schema:
x-speakeasy-name-override: InternalServerError
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- internal_server_error
description: A short code indicating the error code returned.
example: internal_server_error
message:
x-speakeasy-error-message: true
type: string
description: A human readable explanation of what went wrong.
example: The requested resource was not found.
doc_url:
type: string
description: A link to our documentation with more details about this error code
example: https://dub.co/docs/api-reference/errors#internal-server_error
required:
- code
- message
required:
- error
'429':
description: The user has sent too many requests in a given amount of time ("rate limiting")
content:
application/json:
schema:
x-speakeasy-name-override: RateLimitExceeded
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- rate_limit_exceeded
description: A short code indicating the error code returned.
example: rate_limit_exceeded
message:
x-speakeasy-error-message: true
type: string
description: A human readable explanation of what went wrong.
example: The requested resource was not found.
doc_url:
type: string
description: A link to our documentation with more details about this error code
example: https://dub.co/docs/api-reference/errors#rate-limit_exceeded
required:
- code
- message
required:
- error
'422':
description: The request was well-formed but was unable to be followed due to semantic errors.
content:
application/json:
schema:
x-speakeasy-name-override: UnprocessableEntity
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- unprocessable_entity
description: A short code indicating the error code returned.
example: unprocessable_entity
message:
x-speakeasy-error-message: true
type: string
description: A human readable explanation of what went wrong.
example: The requested resource was not found.
doc_url:
type: string
description: A link to our documentation with more details about this error code
example: https://dub.co/docs/api-reference/errors#unprocessable-entity
required:
- code
- message
required:
- error
'403':
description: The client does not have access rights to the content; that is, it is unauthorized, so the server is refusing to give the requested resource. Unlike 401 Unauthorized, the client's identity is known to the server.
content:
application/json:
schema:
x-speakeasy-name-override: Forbidden
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- forbidden
description: A short code indicating the error code returned.
example: forbidden
message:
x-speakeasy-error-message: true
type: string
description: A human readable explanation of what went wrong.
example: The requested resource was not found.
doc_url:
type: string
description: A link to our documentation with more details about this error code
example: https://dub.co/docs/api-reference/errors#forbidden
required:
- code
- message
required:
- error
'404':
description: The server cannot find the requested resource.
content:
application/json:
schema:
x-speakeasy-name-override: NotFound
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- not_found
description: A short code indicating the error code returned.
example: not_found
message:
x-speakeasy-error-message: true
type: string
description: A human readable explanation of what went wrong.
example: The requested resource was not found.
doc_url:
type: string
description: A link to our documentation with more details about this error code
example: https://dub.co/docs/api-reference/errors#not-found
required:
- code
- message
required:
- error
'401':
description: Although the HTTP standard specifies "unauthorized", semantically this response means "unauthenticated". That is, the client must authenticate itself to get the requested response.
content:
application/json:
schema:
x-speakeasy-name-override: Unauthorized
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- unauthorized
description: A short code indicating the error code returned.
example: unauthorized
message:
x-speakeasy-error-message: true
type: string
description: A human readable explanation of what went wrong.
example: The requested resource was not found.
doc_url:
type: string
description: A link to our documentation with more details about this error code
example: https://dub.co/docs/api-reference/errors#unauthorized
required:
- code
- message
required:
- error
'400':
description: The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
content:
application/json:
schema:
x-speakeasy-name-override: BadRequest
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- bad_request
description: A short code indicating the error code returned.
example: bad_request
message:
x-speakeasy-error-message: true
type: string
description: A human readable explanation of what went wrong.
example: The requested resource was not found.
doc_url:
type: string
description: A link to our documentation with more details about this error code
example: https://dub.co/docs/api-reference/errors#bad-request
required:
- code
- message
required:
- error
'409':
description: This response is sent when a request conflicts with the current state of the server.
content:
application/json:
schema:
x-speakeasy-name-override: Conflict
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- conflict
description: A short code indicating the error code returned.
example: conflict
message:
x-speakeasy-error-message: true
type: string
description: A human readable explanation of what went wrong.
example: The requested resource was not found.
doc_url:
type: string
description: A link to our documentation with more details about this error code
example: https://dub.co/docs/api-reference/errors#conflict
required:
- code
- message
required:
- error
'410':
description: This response is sent when the requested content has been permanently deleted from server, with no forwarding address.
content:
application/json:
schema:
x-speakeasy-name-override: InviteExpired
type: object
properties:
error:
type: object
properties:
code:
type: string
enum:
- invite_expired
description: A short code indicating the error code returned.
example: invite_expired
message:
x-speakeasy-error-message: true
type: string
description: A human readable explanation of what went wrong.
example: The requested resource was not found.
doc_url:
type: string
description: A link to our documentation with more details about this error code
example: https://dub.co/docs/api-reference/errors#invite-expired
required:
- code
- message
required:
- error
securitySchemes:
token:
type: http
description: Default authentication mechanism
scheme: bearer
x-speakeasy-example: DUB_API_KEY