curl --request POST \
--url https://api.pgw-sandbox.finventi.com/v1/transactions/sdd/{id}:reverse \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.pgw-sandbox.finventi.com/v1/transactions/sdd/{id}:reverse"
payload = {}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.pgw-sandbox.finventi.com/v1/transactions/sdd/{id}:reverse', 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.pgw-sandbox.finventi.com/v1/transactions/sdd/{id}:reverse",
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([
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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.pgw-sandbox.finventi.com/v1/transactions/sdd/{id}:reverse"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
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.pgw-sandbox.finventi.com/v1/transactions/sdd/{id}:reverse")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pgw-sandbox.finventi.com/v1/transactions/sdd/{id}:reverse")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"cr_amount": 123,
"cr_ccy_isocode": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"dr_amount": 123,
"dr_ccy_isocode": "<string>",
"id": 123,
"status": "<string>",
"status_hardvalue": "<string>",
"status_id": 123,
"type": "<string>",
"type_id": 123,
"compensation_amt": 123,
"inbound": {
"cr_amount": 123,
"cr_ccy_isocode": "<string>",
"id": 123,
"sepa_msg_id": "<string>",
"status": "<string>",
"cr_acc": "<string>",
"cr_acc_other": {
"id": "<string>",
"issuer": "<string>",
"scheme_name_code": "<string>"
},
"cr_address": "<string>",
"cr_address_city": "<string>",
"cr_address_country": "<string>",
"cr_alt_code_company": "<string>",
"cr_alt_code_company_issuer": "<string>",
"cr_bank_bic": "<string>",
"cr_bank_name": "<string>",
"cr_building_number": "<string>",
"cr_code_company": "<string>",
"cr_code_issuer": "<string>",
"cr_code_person": "<string>",
"cr_name": "<string>",
"cr_post_code": "<string>",
"cr_street_name": "<string>",
"dr_acc": "<string>",
"dr_acc_other": {
"id": "<string>",
"issuer": "<string>",
"scheme_name_code": "<string>"
},
"dr_address": "<string>",
"dr_address_city": "<string>",
"dr_address_country": "<string>",
"dr_alt_code_company": "<string>",
"dr_alt_code_company_issuer": "<string>",
"dr_bank_bic": "<string>",
"dr_bank_name": "<string>",
"dr_building_number": "<string>",
"dr_code_company": "<string>",
"dr_code_issuer": "<string>",
"dr_code_person": "<string>",
"dr_name": "<string>",
"dr_post_code": "<string>",
"dr_street_name": "<string>",
"end_to_end_id": "<string>",
"settlement_bic": "<string>",
"settlement_date": "2023-12-25",
"settlement_iban": "<string>",
"settlement_other_account_id": "<string>",
"trx_purpose": "<string>",
"trx_purpose_information": "<string>",
"trx_purpose_structured_issuer": "<string>",
"trx_purpose_structured_ref": "<string>",
"ucr_address": "<string>",
"ucr_address_city": "<string>",
"ucr_address_country": "<string>",
"ucr_id_type": 123,
"ucr_identification": "<string>",
"ucr_issuer": "<string>",
"ucr_name": "<string>",
"ucr_organisation_bic": "<string>",
"ucr_private_birth": "<string>",
"ucr_private_birth_city": "<string>",
"ucr_private_birth_country": "<string>",
"ucr_private_birth_province": "<string>",
"ucr_scheme_code": "<string>",
"ucr_scheme_proprietary": "<string>",
"udr_address": "<string>",
"udr_address_city": "<string>",
"udr_address_country": "<string>",
"udr_id_type": 123,
"udr_identification": "<string>",
"udr_issuer": "<string>",
"udr_name": "<string>",
"udr_organisation_bic": "<string>",
"udr_private_birth": "<string>",
"udr_private_birth_city": "<string>",
"udr_private_birth_country": "<string>",
"udr_private_birth_province": "<string>",
"udr_scheme_code": "<string>",
"udr_scheme_proprietary": "<string>",
"uetr": "<string>"
},
"mandate_information": {
"date_of_signature": "2023-12-25",
"id": "<string>"
},
"origin_bic": "<string>",
"origin_name": "<string>",
"origin_reason_code": "<string>",
"origin_reason_info": "<string>",
"outbound": {
"dr_amount": 123,
"dr_ccy_isocode": "<string>",
"id": 123,
"sepa_msg_id": "<string>",
"status": "<string>",
"cr_acc": "<string>",
"cr_acc_other": {
"id": "<string>",
"issuer": "<string>",
"scheme_name_code": "<string>"
},
"cr_address": "<string>",
"cr_address_city": "<string>",
"cr_address_country": "<string>",
"cr_alt_code_company": "<string>",
"cr_alt_code_company_issuer": "<string>",
"cr_bank_bic": "<string>",
"cr_bank_name": "<string>",
"cr_building_number": "<string>",
"cr_code_company": "<string>",
"cr_code_issuer": "<string>",
"cr_code_person": "<string>",
"cr_name": "<string>",
"cr_post_code": "<string>",
"cr_street_name": "<string>",
"dr_acc": "<string>",
"dr_acc_other": {
"id": "<string>",
"issuer": "<string>",
"scheme_name_code": "<string>"
},
"dr_address": "<string>",
"dr_address_city": "<string>",
"dr_address_country": "<string>",
"dr_alt_code_company": "<string>",
"dr_alt_code_company_issuer": "<string>",
"dr_bank_bic": "<string>",
"dr_bank_name": "<string>",
"dr_building_number": "<string>",
"dr_code_company": "<string>",
"dr_code_issuer": "<string>",
"dr_code_person": "<string>",
"dr_name": "<string>",
"dr_post_code": "<string>",
"dr_street_name": "<string>",
"end_to_end_id": "<string>",
"priority": "<string>",
"settlement_bic": "<string>",
"settlement_currency": "<string>",
"settlement_date": "2023-12-25",
"settlement_iban": "<string>",
"settlement_method": "<string>",
"settlement_other_account_id": "<string>",
"settlement_other_account_issuer": "<string>",
"settlement_other_account_scheme": "<string>",
"trx_purpose": "<string>",
"trx_purpose_information": "<string>",
"trx_purpose_structured_issuer": "<string>",
"trx_purpose_structured_ref": "<string>",
"ucr_address": "<string>",
"ucr_address_city": "<string>",
"ucr_address_country": "<string>",
"ucr_id_type": 123,
"ucr_identification": "<string>",
"ucr_issuer": "<string>",
"ucr_name": "<string>",
"ucr_organisation_bic": "<string>",
"ucr_private_birth": "<string>",
"ucr_private_birth_city": "<string>",
"ucr_private_birth_country": "<string>",
"ucr_private_birth_province": "<string>",
"ucr_scheme_code": "<string>",
"ucr_scheme_proprietary": "<string>",
"udr_address": "<string>",
"udr_address_city": "<string>",
"udr_address_country": "<string>",
"udr_id_type": 123,
"udr_identification": "<string>",
"udr_issuer": "<string>",
"udr_name": "<string>",
"udr_organisation_bic": "<string>",
"udr_private_birth": "<string>",
"udr_private_birth_city": "<string>",
"udr_private_birth_country": "<string>",
"udr_private_birth_province": "<string>",
"udr_scheme_code": "<string>",
"udr_scheme_proprietary": "<string>",
"uetr": "<string>"
},
"parent_trx_amt": 123,
"parent_trx_id": 123,
"rtrn_chrgs_amt": 123,
"sepa_trx_id": "<string>",
"status_reason": "<string>",
"unaccounted_tax_amt": 123,
"updated_at": "2023-11-07T05:31:56Z"
}{
"code": "<string>",
"data": {
"errors": [
{
"code": "<string>",
"field_name": "<string>",
"message": "<string>",
"value": "<string>"
}
],
"message": "<string>"
},
"message": "<string>"
}{
"code": "<string>",
"data": {
"errors": [
{
"code": "<string>",
"field_name": "<string>",
"message": "<string>",
"value": "<string>"
}
],
"message": "<string>"
},
"message": "<string>"
}{
"code": "<string>",
"data": {
"errors": [
{
"code": "<string>",
"field_name": "<string>",
"message": "<string>",
"value": "<string>"
}
],
"message": "<string>"
},
"message": "<string>"
}{
"code": "<string>",
"data": {
"errors": [
{
"code": "<string>",
"field_name": "<string>",
"message": "<string>",
"value": "<string>"
}
],
"message": "<string>"
},
"message": "<string>"
}Reverse SEPA Direct Debit transaction
Reverses a SEPA Direct Debit payment after settlement.
curl --request POST \
--url https://api.pgw-sandbox.finventi.com/v1/transactions/sdd/{id}:reverse \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.pgw-sandbox.finventi.com/v1/transactions/sdd/{id}:reverse"
payload = {}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.pgw-sandbox.finventi.com/v1/transactions/sdd/{id}:reverse', 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.pgw-sandbox.finventi.com/v1/transactions/sdd/{id}:reverse",
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([
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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.pgw-sandbox.finventi.com/v1/transactions/sdd/{id}:reverse"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("POST", url, payload)
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.pgw-sandbox.finventi.com/v1/transactions/sdd/{id}:reverse")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pgw-sandbox.finventi.com/v1/transactions/sdd/{id}:reverse")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"cr_amount": 123,
"cr_ccy_isocode": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"dr_amount": 123,
"dr_ccy_isocode": "<string>",
"id": 123,
"status": "<string>",
"status_hardvalue": "<string>",
"status_id": 123,
"type": "<string>",
"type_id": 123,
"compensation_amt": 123,
"inbound": {
"cr_amount": 123,
"cr_ccy_isocode": "<string>",
"id": 123,
"sepa_msg_id": "<string>",
"status": "<string>",
"cr_acc": "<string>",
"cr_acc_other": {
"id": "<string>",
"issuer": "<string>",
"scheme_name_code": "<string>"
},
"cr_address": "<string>",
"cr_address_city": "<string>",
"cr_address_country": "<string>",
"cr_alt_code_company": "<string>",
"cr_alt_code_company_issuer": "<string>",
"cr_bank_bic": "<string>",
"cr_bank_name": "<string>",
"cr_building_number": "<string>",
"cr_code_company": "<string>",
"cr_code_issuer": "<string>",
"cr_code_person": "<string>",
"cr_name": "<string>",
"cr_post_code": "<string>",
"cr_street_name": "<string>",
"dr_acc": "<string>",
"dr_acc_other": {
"id": "<string>",
"issuer": "<string>",
"scheme_name_code": "<string>"
},
"dr_address": "<string>",
"dr_address_city": "<string>",
"dr_address_country": "<string>",
"dr_alt_code_company": "<string>",
"dr_alt_code_company_issuer": "<string>",
"dr_bank_bic": "<string>",
"dr_bank_name": "<string>",
"dr_building_number": "<string>",
"dr_code_company": "<string>",
"dr_code_issuer": "<string>",
"dr_code_person": "<string>",
"dr_name": "<string>",
"dr_post_code": "<string>",
"dr_street_name": "<string>",
"end_to_end_id": "<string>",
"settlement_bic": "<string>",
"settlement_date": "2023-12-25",
"settlement_iban": "<string>",
"settlement_other_account_id": "<string>",
"trx_purpose": "<string>",
"trx_purpose_information": "<string>",
"trx_purpose_structured_issuer": "<string>",
"trx_purpose_structured_ref": "<string>",
"ucr_address": "<string>",
"ucr_address_city": "<string>",
"ucr_address_country": "<string>",
"ucr_id_type": 123,
"ucr_identification": "<string>",
"ucr_issuer": "<string>",
"ucr_name": "<string>",
"ucr_organisation_bic": "<string>",
"ucr_private_birth": "<string>",
"ucr_private_birth_city": "<string>",
"ucr_private_birth_country": "<string>",
"ucr_private_birth_province": "<string>",
"ucr_scheme_code": "<string>",
"ucr_scheme_proprietary": "<string>",
"udr_address": "<string>",
"udr_address_city": "<string>",
"udr_address_country": "<string>",
"udr_id_type": 123,
"udr_identification": "<string>",
"udr_issuer": "<string>",
"udr_name": "<string>",
"udr_organisation_bic": "<string>",
"udr_private_birth": "<string>",
"udr_private_birth_city": "<string>",
"udr_private_birth_country": "<string>",
"udr_private_birth_province": "<string>",
"udr_scheme_code": "<string>",
"udr_scheme_proprietary": "<string>",
"uetr": "<string>"
},
"mandate_information": {
"date_of_signature": "2023-12-25",
"id": "<string>"
},
"origin_bic": "<string>",
"origin_name": "<string>",
"origin_reason_code": "<string>",
"origin_reason_info": "<string>",
"outbound": {
"dr_amount": 123,
"dr_ccy_isocode": "<string>",
"id": 123,
"sepa_msg_id": "<string>",
"status": "<string>",
"cr_acc": "<string>",
"cr_acc_other": {
"id": "<string>",
"issuer": "<string>",
"scheme_name_code": "<string>"
},
"cr_address": "<string>",
"cr_address_city": "<string>",
"cr_address_country": "<string>",
"cr_alt_code_company": "<string>",
"cr_alt_code_company_issuer": "<string>",
"cr_bank_bic": "<string>",
"cr_bank_name": "<string>",
"cr_building_number": "<string>",
"cr_code_company": "<string>",
"cr_code_issuer": "<string>",
"cr_code_person": "<string>",
"cr_name": "<string>",
"cr_post_code": "<string>",
"cr_street_name": "<string>",
"dr_acc": "<string>",
"dr_acc_other": {
"id": "<string>",
"issuer": "<string>",
"scheme_name_code": "<string>"
},
"dr_address": "<string>",
"dr_address_city": "<string>",
"dr_address_country": "<string>",
"dr_alt_code_company": "<string>",
"dr_alt_code_company_issuer": "<string>",
"dr_bank_bic": "<string>",
"dr_bank_name": "<string>",
"dr_building_number": "<string>",
"dr_code_company": "<string>",
"dr_code_issuer": "<string>",
"dr_code_person": "<string>",
"dr_name": "<string>",
"dr_post_code": "<string>",
"dr_street_name": "<string>",
"end_to_end_id": "<string>",
"priority": "<string>",
"settlement_bic": "<string>",
"settlement_currency": "<string>",
"settlement_date": "2023-12-25",
"settlement_iban": "<string>",
"settlement_method": "<string>",
"settlement_other_account_id": "<string>",
"settlement_other_account_issuer": "<string>",
"settlement_other_account_scheme": "<string>",
"trx_purpose": "<string>",
"trx_purpose_information": "<string>",
"trx_purpose_structured_issuer": "<string>",
"trx_purpose_structured_ref": "<string>",
"ucr_address": "<string>",
"ucr_address_city": "<string>",
"ucr_address_country": "<string>",
"ucr_id_type": 123,
"ucr_identification": "<string>",
"ucr_issuer": "<string>",
"ucr_name": "<string>",
"ucr_organisation_bic": "<string>",
"ucr_private_birth": "<string>",
"ucr_private_birth_city": "<string>",
"ucr_private_birth_country": "<string>",
"ucr_private_birth_province": "<string>",
"ucr_scheme_code": "<string>",
"ucr_scheme_proprietary": "<string>",
"udr_address": "<string>",
"udr_address_city": "<string>",
"udr_address_country": "<string>",
"udr_id_type": 123,
"udr_identification": "<string>",
"udr_issuer": "<string>",
"udr_name": "<string>",
"udr_organisation_bic": "<string>",
"udr_private_birth": "<string>",
"udr_private_birth_city": "<string>",
"udr_private_birth_country": "<string>",
"udr_private_birth_province": "<string>",
"udr_scheme_code": "<string>",
"udr_scheme_proprietary": "<string>",
"uetr": "<string>"
},
"parent_trx_amt": 123,
"parent_trx_id": 123,
"rtrn_chrgs_amt": 123,
"sepa_trx_id": "<string>",
"status_reason": "<string>",
"unaccounted_tax_amt": 123,
"updated_at": "2023-11-07T05:31:56Z"
}{
"code": "<string>",
"data": {
"errors": [
{
"code": "<string>",
"field_name": "<string>",
"message": "<string>",
"value": "<string>"
}
],
"message": "<string>"
},
"message": "<string>"
}{
"code": "<string>",
"data": {
"errors": [
{
"code": "<string>",
"field_name": "<string>",
"message": "<string>",
"value": "<string>"
}
],
"message": "<string>"
},
"message": "<string>"
}{
"code": "<string>",
"data": {
"errors": [
{
"code": "<string>",
"field_name": "<string>",
"message": "<string>",
"value": "<string>"
}
],
"message": "<string>"
},
"message": "<string>"
}{
"code": "<string>",
"data": {
"errors": [
{
"code": "<string>",
"field_name": "<string>",
"message": "<string>",
"value": "<string>"
}
],
"message": "<string>"
},
"message": "<string>"
}Overview
This endpoint reverses a settled SEPA Direct Debit transaction. Reversals create a new linked transaction to return funds to the debtor after the original debit has been completed.When to Use Reversals
- Erroneous or duplicate collections you initiated (duplicate collection, unspecified customer/agent reason)
- Error corrections after processing
Important Notes
- Only for settled transactions
- Creates a new outgoing payment
- Different from returns and refunds, which are initiated by the debited side (also after settlement)
- Subject to reversal timeframe limits (SDD rulebook: within 5 business days after settlement)
Path Parameters
Transaction ID.
Body
Reverse reason.
AM05, MS02, MS03 Response
Reversed transaction
Payment amount in minor currency units
SEPA payment currency code
Time and date when transaction was created
Payment amount in minor currency units
SEPA payment currency code
Transaction ID
Name of the status
Hard value of status
Status id, all statuses can be retrived using API getTransactionStatuses
Type name
Type id, all transaction types can be retrieved using API getTransactionTypes
Payment compensation amount
Information about inbound transaction
Show child attributes
Show child attributes
Provides further details of the direct debit mandate signed between the creditor and the debtor.
Show child attributes
Show child attributes
Payment return originator bic
Payment return originator name
Payment return originator reason code
Payment return originator reason information
Information about outbound transaction
Show child attributes
Show child attributes
Original transaction amount
Transaction id for parent transaction
Payment return tax amount
Sepa transaction ID
Identifies the direct debit sequence, such as first, recurrent, final or one-off.
FRST, RCUR, FNAL, OOFF If there is some error, it is displayed in status reason or processing info tags
Payment unaccounted tax amount
Time and date when transaction was last updated