openapi: 3.0.3
info:
title: Reimbursement API
contact:
email: devs-web@santevet.com
version: 1.0.0
servers:
- url: https://reimbursement.api.santevet.com
description: Production
- url: https://staging.reimbursement.api.santevet.com
description: Staging
- url: https://{user}.reimbursement-api.srv-dev-web-2021.santevet.lan
description: Development
variables:
user:
enum:
- xch
- gle
- mau
- tpe
default: xch
description: The developer trigram
paths:
/api/v1/reimbursements/{reimbursementId}:
get:
tags:
- Reimbursement
summary: Retrieve a reimbursement.
operationId: findReimbursement
parameters:
- name: reimbursementId
in: path
description: The identifier of the reimbursement
required: true
schema:
type: integer
responses:
'200':
description: Reimbursement founded
content:
application/json:
schema:
$ref: '#/components/schemas/ApiReimbursement'
'400':
description: Invalid identifier supplied
'404':
description: Reimbursement not found
patch:
tags:
- Reimbursement
summary: Update a reimbursement.
operationId: updateReimbursement
parameters:
- name: reimbursementId
in: path
description: The identifier of the reimbursement
required: true
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateThirdPartyPaymentRequest'
responses:
'200':
description: Reimbursement updated
content:
application/json:
schema:
$ref: '#/components/schemas/ReimbursementIdResponse'
/api/v1/animals/{animalId}/reimbursements:
get:
tags:
- Reimbursement
summary: Retrieve a collection of reimbursements by an animal identifier.
operationId: findAllReimbursementsByAnimal
parameters:
- name: animalId
in: path
description: The identifier of the animal
required: true
schema:
type: integer
responses:
'200':
description: Collection of reimbursements
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ApiReimbursement2'
'404':
description: Animal not found
/api/v1/clients/{clientId}/reimbursements:
get:
tags:
- Reimbursement
summary: Retrieve a collection of reimbursements by a client identifier.
operationId: findAllReimbursementsByClient
parameters:
- name: clientId
in: path
description: The identifier of the client
required: true
schema:
type: integer
responses:
'200':
description: Collection of reimbursements
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ApiReimbursement3'
'404':
description: Client not found
/api/v1/reimbursements:
post:
tags:
- Reimbursement
summary: Create a new reimbursement.
operationId: createReimbursement
requestBody:
required: true
content:
multipart/form-data:
schema:
required:
- type
discriminator:
propertyName: type
mapping:
'1': '#/components/schemas/CreateReimbursementClaimRequest'
'2': '#/components/schemas/CreateThirdPartyPaymentRequest'
'3': '#/components/schemas/CreateLossQuotationRequest'
'4': '#/components/schemas/CreateDeathRegistrationRequest'
oneOf:
- $ref: '#/components/schemas/CreateReimbursementClaimRequest'
- $ref: '#/components/schemas/CreateThirdPartyPaymentRequest'
- $ref: '#/components/schemas/CreateLossQuotationRequest'
- $ref: '#/components/schemas/CreateDeathRegistrationRequest'
encoding:
file:
contentType: application/pdf, application/x-pdf, image/png, image/jpg, image/jpeg, image/gif
responses:
'200':
description: Reimbursement created
content:
application/json:
schema:
$ref: '#/components/schemas/ReimbursementIdResponse'
/api/v1/third-party-payments/{coverageId}/schedule:
get:
tags:
- Reimbursement
summary: Retrieve schedule for a Third Party Payment by its Coverage identifier.
operationId: findSchedule
parameters:
- name: coverageId
in: path
description: The identifier of the coverage
required: true
schema:
type: integer
responses:
'200':
description: Schedule founded
content:
application/json:
schema:
$ref: '#/components/schemas/ApiSchedule'
components:
schemas:
ApiReimbursement:
properties:
id:
description: The reimbursement identifier
type: integer
type:
description: 'The reimbursement type
`1`: Reimbursement claim, `2`: Third party payment, `5`: Loss quotation,
`6`: Death registration'
type: integer
status:
description: 'The reimbursement status
`0`: Reimbursement in error, `1`: Reimbursement pending analysis, `2`:
Reimbursement processing analysis, `3`: Reimbursement pending payment, `4`: Reimbursement processed, `5`: Reimbursement
refused, `6`: Reimbursement to be completed, `7`: Duplicated reimbursement, `9`: Third party payment pending veterinary
validation, `10`: Third party payment canceled by veterinary, `11`: Expired third party payment, `12`: Accepted
third party payment, `13`: Refused third party payment, `14`: Processing third party payment, `15`: Processed
third party payment, `16`: Third party payment veterinary processing payment, `17`: Third party payment veterinary
payment terminated'
type: integer
contract_id:
description: The contract identifier
type: integer
origin_id:
description: 'The origin identifier
`1`: Mobile application, `2`: Veterinary area, `3`: Veterinary software,
`4`: Client area, `5`: Paper'
type: integer
coverage_id:
description: The coverage identifier, (identifiant demande prise en charge)
type: integer
nullable: true
file_path:
description: The file path
type: string
example: treatment-forms/496735/1609843279
nullable: true
amount_spent:
description: The reimbursement amount spent
type: number
format: float
nullable: true
amount_reimbursed:
description: The reimbursement amount reimbursed
type: number
format: float
nullable: true
outstanding_amount:
description: The reimbursement outstanding amount client has to pay for third party payment
type: number
format: float
nullable: true
clinic_id:
description: The clinic identifier, which must be replaced by Clinic that is now a composite with ID and Name but
removing the ID has impacts we don't have time to handle now.
type: integer
nullable: true
clinic:
title: Clinic is now a composite with ID and Name but removing the ID has impacts we don't have time to handle now.
description: The clinic
nullable: true
allOf:
- $ref: '#/components/schemas/ApiClinic'
veterinary_id:
description: The veterinary identifier
type: integer
nullable: true
visit_reason:
description: The reason of the visit
type: string
nullable: true
sinister_types:
type: array
items:
type: integer
nullable: true
sinister_date:
description: The date of the sinister, also the visit date
type: string
nullable: true
transfer_date:
description: The transfer date of the reimbursement
type: string
nullable: true
reception_date:
description: The reception date of the reimbursement
type: string
nullable: true
typologies:
description: The typologies
type: array
items:
$ref: '#/components/schemas/ApiTypology'
nullable: true
sinister_notification_id:
description: The sinister id used to download reimbursement notification file
type: integer
nullable: true
entry_date:
description: The compensation entry date
type: string
nullable: true
next_debit_date:
description: The next debit date for outstanding amount
type: string
nullable: true
veterinary_action_date:
description: The veterinary action date, date at which the veterinary received or cancelled the demand
type: string
nullable: true
correspondence_id:
description: The correspondence identifier
type: integer
nullable: true
has_schedule:
description: True if the third party payment has schedule, otherwise false, nullable for other reimbursement types
type: boolean
nullable: true
type: object
UpdateThirdPartyPaymentRequest:
properties:
first_symptom_date:
title: The date of first symptom
type: string
nullable: true
sinister_date:
title: The date of first symptom
type: string
nullable: true
visit_reason:
title: The visit reason
type: string
nullable: true
clinic_id:
title: The id of the clinic
type: integer
nullable: true
veterinary_id:
title: The id of the veterinary
type: integer
nullable: true
updated_clinic_amount:
title: The amount
type: number
format: float
minimum: 0
exclusiveMinimum: true
nullable: true
invoice_number:
title: The invoice number
type: string
nullable: true
type: object
ReimbursementIdResponse:
properties:
reimbursement_id:
description: The reimbursement identifier
type: integer
type: object
ApiReimbursement2:
properties:
id:
description: The reimbursement identifier
type: integer
type:
description: 'The reimbursement type
`1`: Reimbursement claim, `2`: Third party payment, `5`: Loss quotation,
`6`: Death registration'
type: integer
status:
description: 'The reimbursement status
`0`: Reimbursement in error, `1`: Reimbursement pending analysis, `2`:
Reimbursement processing analysis, `3`: Reimbursement pending payment, `4`: Reimbursement processed, `5`: Reimbursement
refused, `6`: Reimbursement to be completed, `7`: Duplicated reimbursement, `9`: Third party payment pending veterinary
validation, `10`: Third party payment canceled by veterinary, `11`: Expired third party payment, `12`: Accepted
third party payment, `13`: Refused third party payment, `14`: Processing third party payment, `15`: Processed
third party payment, `16`: Third party payment veterinary processing payment, `17`: Third party payment veterinary
payment terminated'
type: integer
contract_id:
description: The contract identifier
type: integer
origin_id:
description: 'The origin identifier
`1`: Mobile application, `2`: Veterinary area, `3`: Veterinary software,
`4`: Client area, `5`: Paper'
type: integer
file_path:
description: The file path
type: string
example: treatment-forms/496735/1609843279
nullable: true
amount_spent:
description: The reimbursement amount spent
type: number
format: float
nullable: true
amount_reimbursed:
description: The reimbursement amount reimbursed
type: number
format: float
nullable: true
outstanding_amount:
description: The reimbursement outstanding amount client has to pay for third party payment
type: number
format: float
nullable: true
clinic_id:
description: The clinic identifier, which must be replaced by Clinic that is now a composite with ID and Name but
removing the ID has impacts we don't have time to handle now.
type: integer
nullable: true
clinic:
title: Clinic is now a composite with ID and Name but removing the ID has impacts we don't have time to handle now.
description: The clinic
nullable: true
allOf:
- $ref: '#/components/schemas/ApiClinic2'
veterinary_id:
description: The veterinary identifier
type: integer
nullable: true
visit_reason:
description: The reason of the visit
type: string
nullable: true
sinister_types:
type: array
items:
type: integer
nullable: true
sinister_date:
description: The date of the sinister, also the visit date
type: string
nullable: true
transfer_date:
description: The transfer date of the reimbursement
type: string
nullable: true
reception_date:
description: The reception date of the reimbursement
type: string
nullable: true
sinister_notification_id:
description: The sinister id used to download reimbursement notification file
type: integer
nullable: true
type: object
ApiReimbursement3:
properties:
id:
description: The reimbursement identifier
type: integer
type:
description: 'The reimbursement type
`1`: Reimbursement claim, `2`: Third party payment, `5`: Loss quotation,
`6`: Death registration'
type: integer
status:
description: 'The reimbursement status
`0`: Reimbursement in error, `1`: Reimbursement pending analysis, `2`:
Reimbursement processing analysis, `3`: Reimbursement pending payment, `4`: Reimbursement processed, `5`: Reimbursement
refused, `6`: Reimbursement to be completed, `7`: Duplicated reimbursement, `9`: Third party payment pending veterinary
validation, `10`: Third party payment canceled by veterinary, `11`: Expired third party payment, `12`: Accepted
third party payment, `13`: Refused third party payment, `14`: Processing third party payment, `15`: Processed
third party payment, `16`: Third party payment veterinary processing payment, `17`: Third party payment veterinary
payment terminated'
type: integer
contract_id:
description: The contract identifier
type: integer
origin_id:
description: 'The origin identifier
`1`: Mobile application, `2`: Veterinary area, `3`: Veterinary software,
`4`: Client area, `5`: Paper'
type: integer
file_path:
description: The file path
type: string
example: treatment-forms/496735/1609843279
nullable: true
amount_spent:
description: The reimbursement amount spent
type: number
format: float
nullable: true
amount_reimbursed:
description: The reimbursement amount reimbursed
type: number
format: float
nullable: true
outstanding_amount:
description: The reimbursement outstanding amount client has to pay for third party payment
type: number
format: float
nullable: true
clinic_id:
description: The clinic identifier, which must be replaced by Clinic that is now a composite with ID and Name but
removing the ID has impacts we don't have time to handle now.
type: integer
nullable: true
clinic:
title: Clinic is now a composite with ID and Name but removing the ID has impacts we don't have time to handle now.
description: The clinic
nullable: true
allOf:
- $ref: '#/components/schemas/ApiClinic3'
veterinary_id:
description: The veterinary identifier
type: integer
nullable: true
animal_id:
description: The animal identifier
type: integer
nullable: true
visit_reason:
description: The reason of the visit
type: string
nullable: true
sinister_types:
type: array
items:
type: integer
nullable: true
sinister_date:
description: The date of the sinister, also the visit date
type: string
nullable: true
transfer_date:
description: The transfer date of the reimbursement
type: string
nullable: true
reception_date:
description: The reception date of the reimbursement
type: string
nullable: true
sinister_notification_id:
description: The sinister id used to download reimbursement notification file
type: integer
nullable: true
type: object
CreateReimbursementClaimRequest:
required:
- amount
- clinic_id
- invoice_file
- visit_reason
- sinister_types
- sinister_date
- contract_id
- origin_id
properties:
amount:
title: The amount of the reimbursement
minimum: 0
exclusiveMinimum: true
oneOf:
- type: integer
- type: number
format: float
clinic_id:
type: integer
treatment_form_file:
type: string
format: binary
invoice_file:
type: string
format: binary
veterinary_id:
type: integer
visit_reason:
type: string
sinister_types:
type: array
items:
type: integer
enum:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 10
- 11
- 12
- 15
- 16
sinister_date:
title: The date of sinister
type: date
maximum: 0
type:
title: The type of the reimbursement
type: integer
enum:
- 1
- 2
- 5
- 6
contract_id:
title: The contract identifier
type: integer
minimum: 0
exclusiveMinimum: true
origin_id:
title: The origin identifier of the reimbursement
type: integer
minimum: 0
exclusiveMinimum: true
other_files:
type: array
items:
type: string
format: binary
maxItems: 5
maxItems: 5
type: object
CreateThirdPartyPaymentRequest:
required:
- amount
- clinic_id
- invoice_file
- contract_id
- origin_id
properties:
amount:
minimum: 0
exclusiveMinimum: true
oneOf:
- type: integer
- type: number
format: float
clinic_id:
type: integer
invoice_file:
type: string
format: binary
type:
title: The type of the reimbursement
type: integer
enum:
- 1
- 2
- 5
- 6
contract_id:
title: The contract identifier
type: integer
minimum: 0
exclusiveMinimum: true
origin_id:
title: The origin identifier of the reimbursement
type: integer
minimum: 0
exclusiveMinimum: true
other_files:
type: array
items:
type: string
format: binary
maxItems: 5
maxItems: 5
type: object
CreateLossQuotationRequest:
required:
- visit_reason
- contract_id
- origin_id
properties:
visit_reason:
title: The reason of the visit
type: string
type:
title: The type of the reimbursement
type: integer
enum:
- 1
- 2
- 5
- 6
contract_id:
title: The contract identifier
type: integer
minimum: 0
exclusiveMinimum: true
origin_id:
title: The origin identifier of the reimbursement
type: integer
minimum: 0
exclusiveMinimum: true
other_files:
type: array
items:
type: string
format: binary
maxItems: 5
maxItems: 5
type: object
CreateDeathRegistrationRequest:
required:
- visit_reason
- contract_id
- origin_id
properties:
visit_reason:
title: The reason of the visit
type: string
type:
title: The type of the reimbursement
type: integer
enum:
- 1
- 2
- 5
- 6
contract_id:
title: The contract identifier
type: integer
minimum: 0
exclusiveMinimum: true
origin_id:
title: The origin identifier of the reimbursement
type: integer
minimum: 0
exclusiveMinimum: true
other_files:
type: array
items:
type: string
format: binary
maxItems: 5
maxItems: 5
type: object
ApiSchedule:
properties:
outstanding_amount:
description: The dynamic outstanding amount
type: number
format: float
taken_amount:
description: The amount already reimbursed by the client
type: number
format: float
due_dates:
description: The due dates collection
type: array
items:
$ref: '#/components/schemas/ApiDueDate'
type: object
ApiClinic:
properties:
id:
description: The clinic identifier
type: integer
nullable: true
name:
description: the clinic name
type: string
nullable: true
type: object
ApiTypology:
properties:
id:
description: The typology identifier
type: integer
name:
description: The typology name
type: string
acts:
description: The acts collection
type: array
items:
$ref: '#/components/schemas/ApiAct'
nullable: true
upper_limit:
$ref: '#/components/schemas/ApiUpperLimit'
applied_deductible:
description: The applied deductible
type: number
format: float
nullable: true
total_reimbursed:
description: The total reimbursed
type: number
format: float
nullable: true
discount:
description: The discount
nullable: true
allOf:
- $ref: '#/components/schemas/ApiDiscount'
non_conformities:
description: The non conformities
nullable: true
allOf:
- $ref: '#/components/schemas/ApiNonConformities'
first_symptom_date:
description: The first symptom date
type: string
nullable: true
hexadecimal_color:
description: The hexadecimal color
type: string
example: 8cc63f
nullable: true
type: object
ApiClinic2:
properties:
id:
description: The clinic identifier
type: integer
nullable: true
type: object
ApiClinic3:
properties:
id:
description: The clinic identifier
type: integer
nullable: true
type: object
ApiDueDate:
properties:
expected_debit_date:
description: The expected debit date
type: string
amount:
description: The amount paid
type: number
format: float
settlement_date:
description: The actual debit date
type: string
nullable: true
type: object
ApiAct:
properties:
name:
description: The act name
type: string
sinister_date:
description: The sinister date
type: string
amount:
description: The act amount
type: number
format: float
is_refund:
description: If the act is refunded
type: boolean
type: object
ApiUpperLimit:
properties:
basic_ceiling:
description: The basic ceiling
type: number
format: float
nullable: true
remaining_ceiling:
description: The remaining ceiling
type: number
format: float
nullable: true
type: object
ApiDiscount:
properties:
code:
description: The discount code
type: string
quantity:
description: The discount quantity, the amount of the discount
type: string
description:
description: The discount description
type: string
type: object
ApiNonConformities:
properties:
name:
description: The non conformities name
type: string
description:
description: The non conformities description
type: string
type: object
tags:
- name: Reimbursement
description: Reimbursement
externalDocs:
description: Find out more about Reimbursement API
url: https://git.santevet.com/dev-web/reimbursement-api