Create Refund for a Payment
curl --request POST \
--url https://api.example.com/payments-refund/{id}/refund \
--header 'ApiKey: <apikey>' \
--header 'Content-Type: application/json' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>' \
--data '
{
"amount": 100,
"reasonCode": "customer_request",
"reasonDetails": "Customer requested a refund"
}
'import requests
url = "https://api.example.com/payments-refund/{id}/refund"
payload = {
"amount": 100,
"reasonCode": "customer_request",
"reasonDetails": "Customer requested a refund"
}
headers = {
"ApiKey": "<apikey>",
"MerchantId": "<merchantid>",
"Environment": "<environment>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
ApiKey: '<apikey>',
MerchantId: '<merchantid>',
Environment: '<environment>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
amount: 100,
reasonCode: 'customer_request',
reasonDetails: 'Customer requested a refund'
})
};
fetch('https://api.example.com/payments-refund/{id}/refund', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/payments-refund/{id}/refund",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'amount' => 100,
'reasonCode' => 'customer_request',
'reasonDetails' => 'Customer requested a refund'
]),
CURLOPT_HTTPHEADER => [
"ApiKey: <apikey>",
"Content-Type: application/json",
"Environment: <environment>",
"MerchantId: <merchantid>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/payments-refund/{id}/refund"
payload := strings.NewReader("{\n \"amount\": 100,\n \"reasonCode\": \"customer_request\",\n \"reasonDetails\": \"Customer requested a refund\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("ApiKey", "<apikey>")
req.Header.Add("MerchantId", "<merchantid>")
req.Header.Add("Environment", "<environment>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/payments-refund/{id}/refund")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 100,\n \"reasonCode\": \"customer_request\",\n \"reasonDetails\": \"Customer requested a refund\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/payments-refund/{id}/refund")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["ApiKey"] = '<apikey>'
request["MerchantId"] = '<merchantid>'
request["Environment"] = '<environment>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": 100,\n \"reasonCode\": \"customer_request\",\n \"reasonDetails\": \"Customer requested a refund\"\n}"
response = http.request(request)
puts response.read_body{
"id": 2
}{
"status": 400,
"error": {
"statusCode": 400,
"message": [
"destination.provider must be a string"
],
"error": "Bad Request"
}
}{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}{
"status": 403,
"error": {
"statusCode": 403,
"message": "Forbidden",
"error": "<string>"
}
}{
"httpStatus": 404,
"message": "X not found",
"error": "Not found"
}{
"httpStatus": 409,
"type": "invalid_request",
"code": "unsupported_action",
"message": "This action is not supported"
}{
"status": 429,
"error": "ThrottlerException: Too Many Requests"
}{
"type": "internal_error",
"code": [
"internal_error",
"wrong_credentials",
"not_granted",
"live_mode_not_granted"
],
"message": "An error occurred on our system. Please try again later."
}Payment Refunds
Create Refund for a Payment
This endpoint allows you to create a refund for a payment
POST
/
payments-refund
/
{id}
/
refund
Create Refund for a Payment
curl --request POST \
--url https://api.example.com/payments-refund/{id}/refund \
--header 'ApiKey: <apikey>' \
--header 'Content-Type: application/json' \
--header 'Environment: <environment>' \
--header 'MerchantId: <merchantid>' \
--data '
{
"amount": 100,
"reasonCode": "customer_request",
"reasonDetails": "Customer requested a refund"
}
'import requests
url = "https://api.example.com/payments-refund/{id}/refund"
payload = {
"amount": 100,
"reasonCode": "customer_request",
"reasonDetails": "Customer requested a refund"
}
headers = {
"ApiKey": "<apikey>",
"MerchantId": "<merchantid>",
"Environment": "<environment>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
ApiKey: '<apikey>',
MerchantId: '<merchantid>',
Environment: '<environment>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
amount: 100,
reasonCode: 'customer_request',
reasonDetails: 'Customer requested a refund'
})
};
fetch('https://api.example.com/payments-refund/{id}/refund', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/payments-refund/{id}/refund",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'amount' => 100,
'reasonCode' => 'customer_request',
'reasonDetails' => 'Customer requested a refund'
]),
CURLOPT_HTTPHEADER => [
"ApiKey: <apikey>",
"Content-Type: application/json",
"Environment: <environment>",
"MerchantId: <merchantid>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/payments-refund/{id}/refund"
payload := strings.NewReader("{\n \"amount\": 100,\n \"reasonCode\": \"customer_request\",\n \"reasonDetails\": \"Customer requested a refund\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("ApiKey", "<apikey>")
req.Header.Add("MerchantId", "<merchantid>")
req.Header.Add("Environment", "<environment>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.example.com/payments-refund/{id}/refund")
.header("ApiKey", "<apikey>")
.header("MerchantId", "<merchantid>")
.header("Environment", "<environment>")
.header("Content-Type", "application/json")
.body("{\n \"amount\": 100,\n \"reasonCode\": \"customer_request\",\n \"reasonDetails\": \"Customer requested a refund\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/payments-refund/{id}/refund")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["ApiKey"] = '<apikey>'
request["MerchantId"] = '<merchantid>'
request["Environment"] = '<environment>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"amount\": 100,\n \"reasonCode\": \"customer_request\",\n \"reasonDetails\": \"Customer requested a refund\"\n}"
response = http.request(request)
puts response.read_body{
"id": 2
}{
"status": 400,
"error": {
"statusCode": 400,
"message": [
"destination.provider must be a string"
],
"error": "Bad Request"
}
}{
"status": 401,
"error": {
"type": "authorization_error",
"code": "wrong_credentials",
"message": "L'ID marchand et/ou la clé d'API sont incorrects."
}
}{
"status": 403,
"error": {
"statusCode": 403,
"message": "Forbidden",
"error": "<string>"
}
}{
"httpStatus": 404,
"message": "X not found",
"error": "Not found"
}{
"httpStatus": 409,
"type": "invalid_request",
"code": "unsupported_action",
"message": "This action is not supported"
}{
"status": 429,
"error": "ThrottlerException: Too Many Requests"
}{
"type": "internal_error",
"code": [
"internal_error",
"wrong_credentials",
"not_granted",
"live_mode_not_granted"
],
"message": "An error occurred on our system. Please try again later."
}Headers
Your api key. To create a key, please get into our dashboard. If you don't have access to it, please reach the Support team.
Your merchant ID. This information is available in our dashboard. If you don't have access to it, please reach the Support team.
Allow you to choose between the sandbox mode to perform some tests or the live mode for real world transactions.
Available options:
live, sandbox Path Parameters
Body
application/json
Response
The payment refund record id
Example:
2
