[POST] Create a Remote Payment Refund by Payment Reference
Description
Once we have the Payment confirmed, the only thing left to do is to start the Refund. To do this, you will have to follow the steps indicated here.
Requirements
ℹ️ Before launching a payment or refund, you need to have a Location created, as each payment will be related to a Location (location_id
).
Authentication
In all your requests you need to add, as a Header
, your Authorization Token-ID:
"Name": "Authorization"
"Value": "Bearer YOUR-TOKEN-ID"
Schema for Remote Payment Refunds
{
"amount": 0,
"currency": "EUR",
"notes": "string",
"refund_method": "card",
"device_id": 0,
"external_reference": "string"
}
Below you have a short description of each field:
amount
, is the refund amount we want to start with the Refund Payment.notes
, is the description of the refund, it is an optional field.currency
, is the currency associated to the payment, EUR by default.refund_method
, if the type of the refundcard
,crypto
orbank
. Currently, is only available thecard
option.device_id
, is the terminal number to which you want to send the payment, by doing theGET devices
(please, visit GET Devices if you want more information) you have obtained it.external_reference
, is a field where you will send the external reference, for example from your accounting system, cash register, etc... with this number you can then retrieve the status of the Refund.
Environments
Staging environment
POST https://staging.sylq.io/remote_api/v1/remote_payments/{payment_reference}/refunds
Production/Live environment
POST https://app.sylq.io/remote_api/v1/remote_payments/{payment_reference}/refunds
Example of Request to Create a Refund Remote Payment
As a "Header
" we need to specify the "Authorization
" (Bearer value), as a request parameter you have the payment_reference
which in the example you can see corresponds to Payment with Reference 3NVHIQG33L
and a Body JSON. See an example:
curl -i -H "Accept: application/json" -H "Authorization: Bearer YOUR-TOKEN-ID" -X GET "https://staging.sylq.io/remote_api/v1/remote_payments/3NVHIQG33L/refunds"
Body Request:
{
"amount": 0,
"currency": "EUR",
"notes": "string",
"refund_method": "card",
"device_id": 0,
"external_reference": "string"
}
Examples of returns
Success response (200)
{
"success": true,
"message": "Success",
"data": {
"id": 106,
"payment_refund_id": 96,
"refund_method": "card",
"amount_refunded": "0.0",
"amount_refundable": "0.0",
"amount": "1.0",
"currency": "EUR",
"type": "total",
"refund_reference": "3CGHV3PH3U",
"payment_reference": "LCEODE3Y9L",
"external_reference": "ABC1234",
"notes": null,
"status": "new",
"device": {
"id": 174,
"name": "PAX A50",
"os_system": "Android 8.1.0",
"sylq_app_version": "3.1.9",
"place_id": 19,
"created_at": "2024-02-05T14:43:29.221Z"
},
"created_at": "2024-02-06T15:43:41.398Z"
}
}
Error responses
Unauthorized (401)
This error appears it is because the credential (Authorization
) is incorrect or does not exist.
{
"message": "Unauthorized"
}
Device Not Found (404)
This error appears, it is because an incorrect device_id
has been specified in the call or cannot be found.
{
"success": false,
"message": "Record not found"
}
Unprocessable entity response (422)
This error appears when the amount
indicated for the refund is greater than the amount of the payment to be refunded.
{
"success": false,
"message": "The amount of the refund cannot be greater than the amount of the payment to be refunded"
}