openapi: 3.2.0
info:
title: Firstpromoter Contract Documents API
version: '1.0'
description: 'Operations tagged Contract Documents across 2 of this provider''s published API definitions: firstpromoter-v2-affiliate-contract-documents-openapi.yml, firstpromoter-v2-contract-documents-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.firstpromoter.com/api/v2/affiliate
- url: https://api.firstpromoter.com/api/v2/company
security:
- BearerAuth: []
tags:
- name: Contract Documents
paths:
/contract_documents:
get:
summary: Get current version contract documents
description: "Returns the current contract document \n **HTTP Request**
` GET https://api.firstpromoter.com/api/v2/affiliate/contract_documents`"
tags:
- Contract Documents
parameters:
- $ref: '#/components/parameters/AccountId'
responses:
'200':
description: List of contract documents
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ContractDocument'
'401':
description: Unauthorized
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://api.firstpromoter.com/api/v2/affiliate
/contract_documents/{id}:
get:
summary: Get contract documents by id (html/pdf)
description: "Gets contract document and returns it in the selected format \n **HTTP Request**
` GET https://api.firstpromoter.com/api/v2/affiliate/contract_documents/{id}`"
tags:
- Contract Documents
parameters:
- $ref: '#/components/parameters/AccountId'
- name: id
in: path
required: true
schema:
type: integer
description: Contract document ID
- name: content_type
in: query
required: true
schema:
type: string
enum:
- html
- pdf
description: Format of the document content
responses:
'200':
description: Document content
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
content:
type: string
application/pdf:
schema:
type: string
format: binary
'401':
description: Unauthorized
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://api.firstpromoter.com/api/v2/affiliate
/contract_documents/{id}/sign:
post:
summary: Sign a document with id
description: "Signs a contract document with id \n **HTTP Request**
` GET https://api.firstpromoter.com/api/v2/affiliate/contract_documents/{id}/sign`"
tags:
- Contract Documents
parameters:
- $ref: '#/components/parameters/AccountId'
- name: id
in: path
required: true
schema:
type: integer
description: Contract document ID
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
ip:
type: string
description: IP address of the signer
responses:
'200':
description: Signed document
content:
application/json:
schema:
$ref: '#/components/schemas/ContractDocument'
'400':
description: Invalid IP format
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
'401':
description: Unauthorized
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://api.firstpromoter.com/api/v2/affiliate
/contract_documents/draft:
post:
parameters:
- $ref: '#/components/parameters/AccountId'
summary: Get the draft content of the contract
description: "Returns the draft content of the contract with user details \n **HTTP Request**
` GET https://api.firstpromoter.com/api/v2/affiliate/contract_documents/draft`"
tags:
- Contract Documents
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
contract_id:
type: integer
description: ID of the contract
details:
type: object
description: User details to parse
properties:
email:
type: string
profile:
type: object
properties:
first_name:
type: string
responses:
'200':
description: Draft content
content:
application/json:
schema:
type: object
properties:
content:
type: string
'404':
description: Contract not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://api.firstpromoter.com/api/v2/affiliate
components:
schemas:
Promoter:
type: object
properties:
id:
type: integer
email:
type: string
name:
type: string
profile:
type: object
properties:
avatar:
type: string
ContractDocument:
type: object
properties:
id:
type: integer
status:
type: string
enum:
- signed
signed_ip:
type: string
contract_version_id:
type: integer
signed_at:
type: string
format: date-time
promoter:
$ref: '#/components/schemas/Promoter'
contract_version:
$ref: '#/components/schemas/ContractVersion'
contract:
$ref: '#/components/schemas/Contract'
ValidationError:
type: object
properties:
message:
type: string
errors:
type: object
additionalProperties:
type: array
items:
type: string
code:
type: string
Error:
type: object
properties:
message:
type: string
code:
type: string
ContractVersion:
type: object
properties:
added_at:
type: string
format: date-time
changes_made:
type:
- string
- 'null'
external_link:
type:
- string
- 'null'
content_hosted:
type: boolean
Contract:
type: object
properties:
id:
type: integer
name:
type: string
DocumentSorting:
type: object
properties:
created_at:
type: string
enum:
- asc
- desc
signed_at:
type: string
enum:
- asc
- desc
DocumentFilters:
type: object
properties:
status:
type: string
enum:
- pending
- signed
promoter_id:
type: integer
contract_id:
type: integer
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 ID required with bearer token
x-refined-from:
- firstpromoter-v2-affiliate-contract-documents-openapi.yml
- firstpromoter-v2-contract-documents-openapi.yml