openapi: 3.2.0
info:
title: Firstpromoter Payout Methods API
version: '1.0'
description: 'Operations tagged Payout Methods across 2 of this provider''s published API definitions: firstpromoter-v2-advanced-payout-methods-openapi.yml, firstpromoter-v2-affiliate-payout-methods-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.firstpromoter.com/api/v2/company
- url: https://api.firstpromoter.com/api/v2/affiliate
tags:
- name: Payout Methods
paths:
/payout_methods:
get:
summary: Get all payout methods
description: "This endpoint gets all payout methods \n **HTTP Request**
`GET https://api.firstpromoter.com/api/v2/company/payout_methods`"
operationId: adminGetPayoutMethods
tags:
- Payout Methods
parameters:
- name: filters[promoter_id]
in: query
required: true
schema:
type: integer
description: Promoter id
responses:
'200':
description: List of payout methods
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PayoutMethod'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
security:
- BearerAuth: []
accountId: []
post:
summary: Create a payout method
description: "This endpoint creates a payout method under a promoter \n **HTTP Request**
`POST https://api.firstpromoter.com/api/v2/company/payout_methods`"
operationId: adminCreatePayoutMethod
tags:
- Payout Methods
parameters:
- $ref: '#/components/parameters/AccountId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PayoutMethodCreate'
responses:
'200':
description: Created payout method
content:
application/json:
schema:
$ref: '#/components/schemas/PayoutMethod'
'400':
$ref: '#/components/responses/ValidationError'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/InvalidParams'
security:
- BearerAuth: []
accountId: []
servers:
- url: https://api.firstpromoter.com/api/v2/company
/payout_methods/{id}:
get:
summary: Get a payout method
description: "This endpoint gets a payout method \n **HTTP Request**
`GET https://api.firstpromoter.com/api/v2/company/payout_methods/{id}`"
operationId: adminGetPayoutMethod
tags:
- Payout Methods
parameters:
- name: id
in: path
required: true
schema:
type: integer
description: Payout method ID
responses:
'200':
description: Payout method details
content:
application/json:
schema:
$ref: '#/components/schemas/PayoutMethod'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
security:
- BearerAuth: []
accountId: []
put:
description: "This endpoint updates a payout method under a promoter \n **HTTP Request**
`PUT https://api.firstpromoter.com/api/v2/company/payout_methods/{id}`"
summary: Update a payout method
operationId: adminUpdatePayoutMethod
tags:
- Payout Methods
parameters:
- name: id
in: path
required: true
schema:
type: integer
description: Payout method ID
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PayoutMethodUpdate'
responses:
'200':
description: Updated payout method
content:
application/json:
schema:
$ref: '#/components/schemas/PayoutMethod'
'400':
$ref: '#/components/responses/ValidationError'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/InvalidParams'
security:
- BearerAuth: []
accountId: []
delete:
summary: Delete a payout method
operationId: adminDeletePayoutMethod
tags:
- Payout Methods
parameters:
- $ref: '#/components/parameters/AccountId'
- name: id
in: path
required: true
schema:
type: integer
description: Payout method ID
responses:
'200':
description: Payout method deleted
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
$ref: '#/components/responses/Conflict'
security:
- BearerAuth: []
accountId: []
servers:
- url: https://api.firstpromoter.com/api/v2/company
components:
schemas:
CryptoDetails:
type: object
required:
- wallet_address
- crypto_currency
properties:
wallet_address:
type: string
crypto_currency:
type: string
PayoutMethodUpdate:
type: object
required:
- details
- method
- promoter_id
properties:
method:
type: string
enum:
- paypal
- bank
- wise
- crypto
- custom
- dots
is_disabled:
type: boolean
is_selected:
type: boolean
promoter_id:
type: integer
description: Id of the promoter
details:
type: object
oneOf:
- $ref: '#/components/schemas/PaypalDetails'
- $ref: '#/components/schemas/BankDetails'
- $ref: '#/components/schemas/WiseDetails'
- $ref: '#/components/schemas/CryptoDetails'
Error:
type: object
properties:
message:
type: string
code:
type: string
PayoutMethodCreate:
type: object
required:
- method
- details
- promoter_id
properties:
method:
type: string
enum:
- paypal
- bank
- wise
- crypto
- custom
- dots
is_disabled:
type: boolean
is_selected:
type: boolean
promoter_id:
type: integer
description: Id of the promoter
details:
type: object
oneOf:
- $ref: '#/components/schemas/PaypalDetails'
- $ref: '#/components/schemas/BankDetails'
- $ref: '#/components/schemas/WiseDetails'
- $ref: '#/components/schemas/CryptoDetails'
PayoutMethod:
type: object
properties:
id:
type: integer
method:
type: string
enum:
- paypal
- bank
- wise
- crypto
- custom
- dots
date_added:
type: string
format: date-time
is_disabled:
type: boolean
meta:
type: object
is_selected:
type: boolean
details:
type: object
oneOf:
- $ref: '#/components/schemas/PaypalDetails'
- $ref: '#/components/schemas/BankDetails'
- $ref: '#/components/schemas/WiseDetails'
- $ref: '#/components/schemas/CryptoDetails'
managed_payouts:
type: boolean
BankDetails:
type: object
required:
- bank_country
- account_holder_name
properties:
bank_country:
type: string
enum:
- AD
- AE
- AL
- AT
- AU
- AZ
- BA
- BE
- BG
- BH
- BR
- BY
- CA
- CH
- CI
- CR
- CV
- CY
- CZ
- DE
- DK
- DO
- EE
- EG
- ES
- FI
- FO
- FR
- GA
- GB
- GE
- GI
- GL
- GR
- HR
- HU
- IE
- IL
- IQ
- IS
- IT
- JO
- KW
- KZ
- LB
- LI
- LT
- LU
- LV
- MC
- MD
- ME
- MG
- MK
- MR
- MT
- MU
- NL
- 'NO'
- PK
- PL
- PS
- PT
- QA
- RO
- RS
- SA
- SC
- SE
- SI
- SK
- SM
- SV
- TN
- TR
- UA
- US
- VA
- VG
- XK
account_holder_name:
type: string
account_number:
type: string
routing_aba_number:
type: string
country:
type: string
state:
type: string
postal_code:
type: string
address:
type: string
city:
type: string
transit_number:
type: string
institution_number:
type: string
bsb_code:
type: string
sort_code:
type: string
iban:
type: string
swift_bic_code:
type: string
bank_name:
type: string
bank_city:
type: string
bank_address:
type: string
WiseDetails:
type: object
required:
- wise_email
properties:
wise_email:
type: string
format: email
PaypalDetails:
type: object
required:
- paypal_email
properties:
paypal_email:
type: string
format: email
PayoutMethodUpdate_2:
type: object
required:
- details
properties:
method:
type: string
enum:
- paypal
- bank
- wise
- crypto
- custom
- dots
is_disabled:
type: boolean
is_selected:
type: boolean
details:
$ref: '#/components/schemas/PayoutMethodDetails'
Error_2:
type: object
properties:
message:
type: string
code:
type: string
errors:
type: object
additionalProperties:
type: array
items:
type: string
PayoutMethodCreate_2:
type: object
required:
- method
- details
properties:
method:
type: string
enum:
- paypal
- bank
- wise
- crypto
- custom
- dots
is_disabled:
type: boolean
is_selected:
type: boolean
details:
$ref: '#/components/schemas/PayoutMethodDetails'
PayoutMethodDetails:
type: object
properties:
paypal_email:
type: string
wise_email:
type: string
wallet_address:
type: string
crypto_currency:
type: string
bank_country:
type: string
enum:
- AD
- AE
- AL
- AT
- AU
- AZ
- BA
- BE
- BG
- BH
- BR
- BY
- CA
- CH
- CI
- CR
- CV
- CY
- CZ
- DE
- DK
- DO
- EE
- EG
- ES
- FI
- FO
- FR
- GA
- GB
- GE
- GI
- GL
- GR
- HR
- HU
- IE
- IL
- IQ
- IS
- IT
- JO
- KW
- KZ
- LB
- LI
- LT
- LU
- LV
- MC
- MD
- ME
- MG
- MK
- MR
- MT
- MU
- NL
- 'NO'
- PK
- PL
- PS
- PT
- QA
- RO
- RS
- SA
- SC
- SE
- SI
- SK
- SM
- SV
- TN
- TR
- UA
- US
- VA
- VG
- XK
account_holder_name:
type: string
account_number:
type: string
routing_aba_number:
type: string
country:
type: string
state:
type: string
postal_code:
type: string
address:
type: string
city:
type: string
transit_number:
type: string
institution_number:
type: string
bsb_code:
type: string
sort_code:
type: string
iban:
type: string
swift_bic_code:
type: string
bank_name:
type: string
bank_city:
type: string
bank_address:
type: string
PayoutMethod_2:
type: object
properties:
id:
type: integer
method:
type: string
enum:
- paypal
- bank
- wise
- crypto
- custom
- dots
date_added:
type: string
format: date-time
is_disabled:
type: boolean
meta:
type: object
is_selected:
type: boolean
details:
$ref: '#/components/schemas/PayoutMethodDetails'
managed_payouts:
type: boolean
responses:
Conflict:
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
message: Failed to destroy Rewards::Providers::Account
code: destroy_failed
InvalidParams:
description: Invalid Parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
message: Invalid method
code: invalid_params
ValidationError:
description: Validation Error
content:
application/json:
schema:
type: object
properties:
message:
type: string
errors:
type: object
additionalProperties:
type: array
items:
type: string
code:
type: string
example:
message: 'Validation failed: Details paypal email can''t be blank'
errors:
details.paypal_email:
- can't be blank
- is invalid
code: invalid_record
Forbidden:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
message: Invalid user type
code: forbidden
NotFound:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
message: Record not found
code: not_found
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Conflict_2:
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
ValidationError_2:
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
Forbidden_2:
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
UnprocessableEntity:
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
NotFound_2:
description: Record not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error_2'
parameters:
AccountId:
name: Account-ID
in: header
required: true
description: Account identifier that specifies which account is making the request
schema:
type: string
example: acc_123456
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: Access token passed as a Bearer token in the Authorization header
accountId:
type: apiKey
in: header
name: ACCOUNT-ID
description: Account identifier that specifies which account is making the request
x-refined-from:
- firstpromoter-v2-advanced-payout-methods-openapi.yml
- firstpromoter-v2-affiliate-payout-methods-openapi.yml