Reverse an adoption
curl --request POST \
--url https://{organization}.rescueconsole.com/api/animals/adoptions/{id}/reverse \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"reason": "The adopter is moving to housing that does not allow pets.",
"returned_on": "2026-10-02"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
reason: 'The adopter is moving to housing that does not allow pets.',
returned_on: '2026-10-02'
})
};
fetch('https://{organization}.rescueconsole.com/api/animals/adoptions/{id}/reverse', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{organization}.rescueconsole.com/api/animals/adoptions/{id}/reverse"
payload = {
"reason": "The adopter is moving to housing that does not allow pets.",
"returned_on": "2026-10-02"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"adoption": {
"id": "<string>",
"animal_id": "<string>",
"adopter_person_id": "<string>",
"status": "active",
"fee_cents": 123,
"adopted_on": "2023-12-25",
"amounts": {
"fee_cents": 123,
"paid_cents": 123,
"pending_cents": 123,
"balance_cents": 123,
"donation_cents": 123
},
"application_id": "<string>",
"list_fee_cents": 123,
"discounts": [
{
"id": "<string>",
"label": "<string>",
"kind": "percent",
"value": 123,
"amount_off_cents": 123,
"reason": "<string>"
}
],
"contract_signed_at": "<string>",
"contract_signed_by": "<string>",
"contract_version": "<string>",
"receipt_number": "<string>",
"finalized_at": "2023-11-07T05:31:56Z",
"donation_id": "<string>",
"reversed_at": "2023-11-07T05:31:56Z",
"reversal_reason": "<string>",
"notes": "<string>",
"is_open": true,
"is_finalized": true,
"is_reversed": true,
"animal_name": "<string>",
"animal_species": "<string>",
"adopter_first_name": "<string>",
"adopter_last_name": "<string>",
"adopter_name": "<string>",
"payments": [
{
"id": "<string>",
"adoption_id": "<string>",
"kind": "payment",
"amount_cents": 2,
"method": "cash",
"received_on": "2023-12-25",
"reference": "<string>",
"verified_at": "2023-11-07T05:31:56Z",
"verified_by_person_id": "<string>",
"voided_at": "2023-11-07T05:31:56Z",
"voided_by_person_id": "<string>",
"void_reason": "<string>",
"recorded_by_person_id": "<string>",
"notes": "<string>",
"gateway": "stripe",
"gateway_reference": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"animal": {
"id": "<string>",
"name": "<string>",
"species": "dog",
"breed": "<string>",
"status": "<string>",
"pet_id": "<string>"
},
"adopter": {
"id": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"display_name": "<string>",
"email": "<string>",
"phone": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}Adoptions
Reverse an adoption
Records that the animal came back. The placement with the adopter is closed, the animal goes back to the first of your statuses for animals in your care, and the return is recorded as an intake. If the housing it had was retired or taken out of service meanwhile, it is left with no housing. A finalized adoption can be reversed too. Payments are not touched: record money given back as a refund. This cannot be undone. Needs write on Animals.
POST
/
api
/
animals
/
adoptions
/
{id}
/
reverse
Reverse an adoption
curl --request POST \
--url https://{organization}.rescueconsole.com/api/animals/adoptions/{id}/reverse \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"reason": "The adopter is moving to housing that does not allow pets.",
"returned_on": "2026-10-02"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
reason: 'The adopter is moving to housing that does not allow pets.',
returned_on: '2026-10-02'
})
};
fetch('https://{organization}.rescueconsole.com/api/animals/adoptions/{id}/reverse', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{organization}.rescueconsole.com/api/animals/adoptions/{id}/reverse"
payload = {
"reason": "The adopter is moving to housing that does not allow pets.",
"returned_on": "2026-10-02"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"adoption": {
"id": "<string>",
"animal_id": "<string>",
"adopter_person_id": "<string>",
"status": "active",
"fee_cents": 123,
"adopted_on": "2023-12-25",
"amounts": {
"fee_cents": 123,
"paid_cents": 123,
"pending_cents": 123,
"balance_cents": 123,
"donation_cents": 123
},
"application_id": "<string>",
"list_fee_cents": 123,
"discounts": [
{
"id": "<string>",
"label": "<string>",
"kind": "percent",
"value": 123,
"amount_off_cents": 123,
"reason": "<string>"
}
],
"contract_signed_at": "<string>",
"contract_signed_by": "<string>",
"contract_version": "<string>",
"receipt_number": "<string>",
"finalized_at": "2023-11-07T05:31:56Z",
"donation_id": "<string>",
"reversed_at": "2023-11-07T05:31:56Z",
"reversal_reason": "<string>",
"notes": "<string>",
"is_open": true,
"is_finalized": true,
"is_reversed": true,
"animal_name": "<string>",
"animal_species": "<string>",
"adopter_first_name": "<string>",
"adopter_last_name": "<string>",
"adopter_name": "<string>",
"payments": [
{
"id": "<string>",
"adoption_id": "<string>",
"kind": "payment",
"amount_cents": 2,
"method": "cash",
"received_on": "2023-12-25",
"reference": "<string>",
"verified_at": "2023-11-07T05:31:56Z",
"verified_by_person_id": "<string>",
"voided_at": "2023-11-07T05:31:56Z",
"voided_by_person_id": "<string>",
"void_reason": "<string>",
"recorded_by_person_id": "<string>",
"notes": "<string>",
"gateway": "stripe",
"gateway_reference": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"animal": {
"id": "<string>",
"name": "<string>",
"species": "dog",
"breed": "<string>",
"status": "<string>",
"pet_id": "<string>"
},
"adopter": {
"id": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"display_name": "<string>",
"email": "<string>",
"phone": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}{
"error": "house_trained must be 1, 0 or null (not assessed)"
}Authorizations
An API key from Settings, API keys. It starts with rc_live_.
Path Parameters
The adoption's ID.
Body
application/json
Response
The adoption, reversed.
Show child attributes
Show child attributes