Reimbursements
This section describes the API of the reimbursement resource.
Parameters
id: | integer |
description: | string |
amount: | float |
tags: | array |
currency: | string based on currencies code |
payer: | JSON object |
receiver: | JSON object |
responsible user: | JSON object |
expenses: |
array of objects array of an expense representation |
activities_count: | integer |
comments_count: | integer |
created_at: | string |
updated_at: | string |
_links: |
array of object array of links of the reimbursement |
Example of Reimbursement
List all reimbursements
Retrieve all reimbursements that the authenticated user can view or manage. It will return a JSON
containing the name of the resource
with an array of the objects requested and informations like the total of objects, current page and total pages. The fields of the reimbursements can be
found in the Reimbursement section.
Parameters
page: | integer |
per_page: | integer limit to 100 |
Definition
GET https://app.rexpense.com/api/v1/reimbursements
Example Request
$ curl -u $YOUR_API_TOKEN:X -X GET https://app.rexpense.com/api/v1/reimbursements \ -H 'Accept: application/json' \ -H 'Content-type: application/json'
Response Example
Filtering a list of reimbursements
You can filter the list of retrieved reimbursements.
Parameters
All parameters must be nested in the q
parameter.
amount_gteq: | float |
amount_lteq: | float |
receiver_id_eq: | integer |
payer_id_eq: | integer |
created_at_gteq: | string |
created_at_lteq: | string |
updated_at_gteq: | string |
updated_at_lteq: | string |
search_tags: | string |
has_tag: | string Available values: '1', '0', '' |
Definition
GET https://app.rexpense.com/api/v1/reimbursements
Request example
$ curl -u $YOUR_API_TOKEN:X -X GET https://app.rexpense.com/api/v1/reimbursements \
-H 'Accept: application/json' \
-H 'Content-type: application/json' \
-d '{"q": {"amount_gteq":123.63}}'
Request example
$ curl -u $YOUR_API_TOKEN:X -X GET https://app.rexpense.com/api/v1/reimbursements \
-H 'Accept: application/json' \
-H 'Content-type: application/json' \
-d '{"q": {"amount_gteq":3000.00, "amount_lteq": 4000.00}}'
Response Example
Request example
$ curl -u $YOUR_API_TOKEN:X -X GET https://app.rexpense.com/api/v1/reimbursements \
-H 'Accept: application/json' \
-H 'Content-type: application/json' \
-d '{"q": {"receiver_id_eq": 1}}'
Response Example
Request example
$ curl -u $YOUR_API_TOKEN:X -X GET https://app.rexpense.com/api/v1/reimbursements \
-H 'Accept: application/json' \
-H 'Content-type: application/json' \
-d '{"q": {"payer_id_eq": 1}}'
Response Example
Request example
$ curl -u $YOUR_API_TOKEN:X -X GET https://app.rexpense.com/api/v1/reimbursements \
-H 'Accept: application/json' \
-H 'Content-type: application/json' \
-d '{"q": {"created_at_gteq": "12-24-2013", "created_at_lteq": "12-25-2013"}}'
Response Example
Request example
$ curl -u $YOUR_API_TOKEN:X -X GET https://app.rexpense.com/api/v1/reimbursements \
-H 'Accept: application/json' \
-H 'Content-type: application/json' \
-d '{"q": {"updated_at_gteq": "12-24-2013", "updated_at_lteq": "12-25-2013"}}'
Response Example
Show a reimbursement
This request shows the reimbursement complete information.
Parameters
id: | integer required |
Definition
GET https://app.rexpense.com/api/v1/reimbursements/:id
Example Request
$ curl -u $YOUR_API_TOKEN:X -X POST https://app.rexpense.com/api/v1/reimbursements/1 \ -H 'Accept: application/json' \ -H 'Content-type: application/json'
Response Example Success
HTTP 200 OK
Response Example Failure
HTTP 404 Record Not Found
New reimbursement
To create a new reimbursement before you need to choose Reimbursement's payer, receiver and currency. Those fields are required to enable you to choose which expense to be part of the reimbursement.
Important:
- The payer must have a relation with the receiver. Also the expenses must be approved and with the same approved currency.
Parameters
payer_id: | integer required |
receiver_id: | integer required |
currency: | string required |
Definition
GET https://app.rexpense.com/api/v1/reimbursements/new
Example Request
$ curl -u $YOUR_API_TOKEN:X -X POST https://app.rexpense.com/api/v1/reimbursements/new \ -H 'Accept: application/json' \ -H 'Content-type: application/json' \ -d '{"payer_id": 1, "receiver_id": 1, "currency": "USD"}'
Response Example Success
HTTP 200 OK
Create a reimbursement
This request creates a new reimbursement.
Important:
- The payer must have a relation with the receiver to create a new reimbursement.
Parameters
description: | string |
payer: |
payer object attributes required
id: integer
type: string |
receiver: |
receiver object attributes required
id: integer
type: string |
amount: | float required |
date: | string required iso8601 format |
currency: | string based on currencies code |
tags: | array |
Expired organization
If the organization is expired, it will return an 402 error.
Definition
POST https://app.rexpense.com/api/v1/reimbursements
Example Request
$ curl -u $YOUR_API_TOKEN:X -X POST https://app.rexpense.com/api/v1/reimbursements \ -H 'Accept: application/json' \ -H 'Content-type: application/json' \ -d '{"amount": 1000.00, "date": "2013-12-24", "payer": {"id": 1, "type": "Organization"}}'
Response Example Success
HTTP 201 CREATED
Response Example Failure
HTTP 422 Unprocessable Entity
Example Response Failure when organization is expired
HTTP 402 Payment Required
Update a reimbursement
There are two ways to update a reimbursement: partially or fully. If you'd like to change just one or
a few attributes, you have to use the HTTP method PATCH
. If you use the HTTP method PUT
, you'll have to
pass all attributes of the reimbursement. This behaviour is the same for all resources in the Rexpense API.
Parameters
description: | string |
payer: |
payer object attributes required
id: integer
type: string |
receiver: |
receiver object attributes required
id: integer
type: string |
amount: | float required |
date: | string required |
currency: | string |
tags: | array |
Expired organization
If the organization is expired, it will return an 402 error.
Definition
PUT/PATCH https://app.rexpense.com/api/v1/reimbursements/:id
Example Request
$ curl -u $YOUR_API_TOKEN:X -X PATCH https://app.rexpense.com/api/v1/reimbursements/:id \ -H 'Accept: application/json' \ -H 'Content-type: application/json' \ -d '{"amount": 1200.00, "date": "2014-12-28"}'
Response Example Success
HTTP 200 OK
Response Example Failure
HTTP 422 Unprocessable Entity
Example Response Failure when organization is expired
HTTP 402 Payment Required
Destroy a reimbursement
To destroy a reimbursement you have to own the reimbursement (be the receiver) or be an Organization's Administrator or Manager (have any relation with the payer).
Expired organization
If the organization is expired, it will return an 402 error.
Definition
DELETE https://app.rexpense.com/api/v1/reimbursements/:id
Example Request
$ curl -u $YOUR_API_TOKEN:X -X DELETE https://app.rexpense.com/api/v1/reimbursements/:id \ -H 'Accept: application/json' \ -H 'Content-type: application/json'
Response Example
HTTP 204 NO CONTENT
Example Response Failure when organization is expired
HTTP 402 Payment Required
Reimbursement's activities
Activities are simple logs from a Reimbursement's changes or comments activities.
If the activity is a Reimbursement change, the response will hide the source
element from the response.
If the activity is a Comment and the content
have emojis, they will be rendered as text code by default (for example, :smile:
). However, if you'd like to get the unicode of the emojis instead, you should supply a emoji_in_unicode
boolean param.
Parameter
emoji_in_unicode: | boolean |
Definition
GET https://app.rexpense.com/api/v1/reimbursements/:reimbursement_id/activities
Example request
$ curl -u $YOUR_API_TOKEN:X -X GET https://app.rexpense.com/api/v1/reimbursements/1/activities \ -H 'Accept: application/json' \ -H 'Content-type: application/json'
Response Example Success
HTTP 200 OK