Cancel an Escrow

Today, the housing marketing is uncertain for certain buyers and sellers not knowing if the market will change. Will mortgage rates go up further, or will the come down? During a sale of any house, all parties should be prepared for any outcome, including the agent, broker, realtor, and facilitator.

Having a third party escrow account is essential to ensure funds are secured, and carefully held until the full completion of the sale. In an case where the sale falls through, canceling the escrow can be a tool to use when a buyer or seller backs out.

You can create a payment in EUR (Euros) using SEPA Direct Debit. Follow the escrow payment below. After the payment is made into the escrow account, and before manually releasing the escrow you can cancel it. This will essential be a refund to the home buyer.

Create Payment with Escrow

Request

POST https://sandboxapi.rapyd.net/v1/payments 
{
	"amount": 200000,
	"currency": "EUR",
	"complete_payment_url": "https://rapyd.net",
	"error_payment_url": "https://docs.rapyd.net",
    "customer":"cus_1930a7dab2a80a7896cbcf98c2e2c762",
	"description": "Payment by bank redirect",
       "escrow": true,
	"payment_method": {
		"type": "gb_sepadirectdebit_bank",
		"fields": {
            
        }
	},
	"capture": null,
	"ewallets": [
		{
			"ewallet": "ewallet_fbcc006de0394bc2b24308eddca45c64",
			"percentage": 100
		}
	],
	"metadata": {
		"merchant_defined": true
             

	}
}

Response

{
    "status": {
        "error_code": "",
        "status": "SUCCESS",
        "message": "",
        "response_code": "",
        "operation_id": "eeece751-4ad0-44f7-b226-9ba4bca944a9"
    },
    "data": {
        "id": "payment_f3145cebe0381294e9b5412a3bb8378a",
        "amount": 0,
        "original_amount": 200000,
        "is_partial": false,
        "currency_code": "EUR",
        "country_code": "GB",
        "status": "ACT",
        "description": "Payment by bank redirect",
        "merchant_reference_id": "",
        "customer_token": "cus_1930a7dab2a80a7896cbcf98c2e2c762",
        "payment_method": "other_1b16b1e5b561269d2d0afeae4ada5541",
        "payment_method_data": {
            "id": "other_1b16b1e5b561269d2d0afeae4ada5541",
            "type": "gb_sepadirectdebit_bank",
            "category": "bank_redirect",
            "metadata": {},
            "image": "",
            "webhook_url": "",
            "supporting_documentation": "",
            "next_action": "user_authentication",
            "bic_swift": "",
            "account_last4": "",
            "redirect_url": "https://sandboxcheckout.rapyd.net/complete-bank-redirect?token=other_1b16b1e5b561269d2d0afeae4ada5541&complete_payment_url=undefined&error_payment_url=undefined"
        },
        "auth_code": null,
        "expiration": 1697490886,
        "captured": true,
        "refunded": false,
        "refunded_amount": 0,
        "receipt_email": "",
        "redirect_url": "https://sandboxcheckout.rapyd.net/complete-bank-payment?token=payment_f3145cebe0381294e9b5412a3bb8378a&complete_payment_url=https%3A%2F%2Frapyd.net&error_payment_url=https%3A%2F%2Fdocs.rapyd.net",
        "complete_payment_url": "https://rapyd.net",
        "error_payment_url": "https://docs.rapyd.net",
        "receipt_number": "",
        "flow_type": "",
        "address": null,
        "statement_descriptor": "Test Business",
        "transaction_id": "",
        "created_at": 1696281286,
        "metadata": {
            "merchant_defined": true
        },
        "failure_code": "",
        "failure_message": "",
        "paid": false,
        "paid_at": 0,
        "dispute": null,
        "refunds": null,
        "order": null,
        "outcome": null,
        "visual_codes": {},
        "textual_codes": {},
        "instructions": [
            {
                "name": "instructions",
                "steps": [
                    {
                        "step1": "You will be redirected to a website to authorize the transaction."
                    },
                    {
                        "step2": "Enter your IBAN account number."
                    },
                    {
                        "step3": "Enter the one-time password (OTP) that you receive."
                    },
                    {
                        "step4": "You will be notified that the payment succeeded."
                    }
                ]
            }
        ],
        "ewallet_id": "ewallet_fbcc006de0394bc2b24308eddca45c64",
        "ewallets": [
            {
                "ewallet_id": "ewallet_fbcc006de0394bc2b24308eddca45c64",
                "amount": 200000,
                "percent": 100,
                "refunded_amount": 0
            }
        ],
        "payment_method_options": {},
        "payment_method_type": "gb_sepadirectdebit_bank",
        "payment_method_type_category": "bank_redirect",
        "fx_rate": 1,
        "merchant_requested_currency": null,
        "merchant_requested_amount": null,
        "fixed_side": "",
        "payment_fees": null,
        "invoice": "",
        "escrow": {
            "id": "escrow_a9bb2236132c93b73f10e577a3fa281c",
            "payment": "payment_f3145cebe0381294e9b5412a3bb8378a",
            "currency": "EUR",
            "amount_on_hold": 0,
            "total_amount_released": 0,
            "status": "pending",
            "escrow_release_days": null,
            "created_at": 1696281286,
            "updated_at": 1696281286,
            "last_payment_completion": null
        },
        "group_payment": "",
        "cancel_reason": null,
        "initiation_type": "customer_present",
        "mid": "",
        "next_action": "pending_confirmation",
        "error_code": "",
        "remitter_information": {},
        "save_payment_method": true
    }
}

Before completing the

Now the payment should be closed, but the escrow still on hold.

Retrieve Escrow

Request

GET https://sandboxapi.rapyd.net/v1/payments/:payment/escrows/:escrow

# Path Variables 
# payment: payment_f3145cebe0381294e9b5412a3bb8378a
# escrow: escrow_a9bb2236132c93b73f10e577a3fa281c

Response

{
    "status": {
        "error_code": "",
        "status": "SUCCESS",
        "message": "",
        "response_code": "",
        "operation_id": "85260e89-d74d-4bd0-9591-2bdf435ecf1c"
    },
    "data": {
        "id": "escrow_a9bb2236132c93b73f10e577a3fa281c",
        "payment": "payment_f3145cebe0381294e9b5412a3bb8378a",
        "currency": "EUR",
        "amount_on_hold": 0,
        "total_amount_released": 0,
        "status": "pending",
        "escrow_release_days": null,
        "escrow_releases": null,
        "created_at": 1696281286,
        "updated_at": 1696281286,
        "last_payment_completion": null
    }
}

You can now cancel the escrow.

Cancel Escrow

Request (Update Payment)

POST https://sandboxapi.rapyd.net/v1/payments/:payment 

# Path Variables
# Payment: payment_f3145cebe0381294e9b5412a3bb8378a

Request Body

{
    "escrow":false
}

Reponse

{
    "status": {
        "error_code": "",
        "status": "SUCCESS",
        "message": "",
        "response_code": "",
        "operation_id": "851d6692-ddeb-4601-9adb-defaefad6c92"
    },
    "data": {
        "id": "payment_f3145cebe0381294e9b5412a3bb8378a",
        "amount": 0,
        "original_amount": 200000,
        "is_partial": false,
        "currency_code": "EUR",
        "country_code": "GB",
        "status": "ACT",
        "description": "Payment by bank redirect",
        "merchant_reference_id": "",
        "customer_token": "cus_1930a7dab2a80a7896cbcf98c2e2c762",
        "payment_method": "other_1b16b1e5b561269d2d0afeae4ada5541",
        "payment_method_data": {
            "id": "other_1b16b1e5b561269d2d0afeae4ada5541",
            "type": "gb_sepadirectdebit_bank",
            "category": "bank_redirect",
            "metadata": {},
            "image": "",
            "webhook_url": "",
            "supporting_documentation": "",
            "next_action": "user_authentication",
            "bic_swift": "",
            "account_last4": ""
        },
        "auth_code": null,
        "expiration": 1697490886,
        "captured": true,
        "refunded": false,
        "refunded_amount": 0,
        "receipt_email": "",
        "redirect_url": "",
        "complete_payment_url": "https://rapyd.net",
        "error_payment_url": "https://docs.rapyd.net",
        "receipt_number": "",
        "flow_type": "",
        "address": null,
        "statement_descriptor": "Test Business",
        "transaction_id": "",
        "created_at": 1696281286,
        "metadata": {},
        "failure_code": "",
        "failure_message": "",
        "paid": false,
        "paid_at": 0,
        "dispute": null,
        "refunds": null,
        "order": null,
        "outcome": null,
        "visual_codes": {},
        "textual_codes": {},
        "instructions": [
            {
                "name": "instructions",
                "steps": [
                    {
                        "step1": "You will be redirected to a website to authorize the transaction."
                    },
                    {
                        "step2": "Enter your IBAN account number."
                    },
                    {
                        "step3": "Enter the one-time password (OTP) that you receive."
                    },
                    {
                        "step4": "You will be notified that the payment succeeded."
                    }
                ]
            }
        ],
        "ewallet_id": "ewallet_fbcc006de0394bc2b24308eddca45c64",
        "ewallets": [
            {
                "ewallet_id": "ewallet_fbcc006de0394bc2b24308eddca45c64",
                "amount": 200000,
                "percent": 100,
                "released_amount": 0,
                "refunded_amount": 0
            }
        ],
        "payment_method_options": {},
        "payment_method_type": "gb_sepadirectdebit_bank",
        "payment_method_type_category": "bank_redirect",
        "fx_rate": 1,
        "merchant_requested_currency": null,
        "merchant_requested_amount": null,
        "fixed_side": "",
        "payment_fees": null,
        "invoice": "",
        "escrow": {
            "id": "escrow_a9bb2236132c93b73f10e577a3fa281c",
            "payment": "payment_f3145cebe0381294e9b5412a3bb8378a",
            "currency": "EUR",
            "amount_on_hold": 0,
            "total_amount_released": 0,
            "status": "canceled",
            "escrow_release_days": null,
            "created_at": 1696281286,
            "updated_at": 1696281560,
            "last_payment_completion": null
        },
        "group_payment": "",
        "cancel_reason": null,
        "initiation_type": "customer_present",
        "mid": "",
        "next_action": "pending_confirmation",
        "error_code": "",
        "remitter_information": {},
        "save_payment_method": true
    }
}

Retrieve Escrow

Request

Same request as above.

GET https://sandboxapi.rapyd.net/v1/payments/:payment/escrows/:escrow

# Path Variables 
# payment: payment_f3145cebe0381294e9b5412a3bb8378a
# escrow: escrow_a9bb2236132c93b73f10e577a3fa281c

Response

{
    "status": {
        "error_code": "",
        "status": "SUCCESS",
        "message": "",
        "response_code": "",
        "operation_id": "85260e89-d74d-4bd0-9591-2bdf435ecf1c"
    },
    "data": {
        "id": "escrow_a9bb2236132c93b73f10e577a3fa281c",
        "payment": "payment_f3145cebe0381294e9b5412a3bb8378a",
        "currency": "EUR",
        "amount_on_hold": 0,
        "total_amount_released": 0,
        "status": "canceled",
        "escrow_release_days": null,
        "escrow_releases": null,
        "created_at": 1696281286,
        "updated_at": 1696281560,
        "last_payment_completion": null
    }
}

We now see the escrow status is canceled. We can now cancel the payment.

Cancel Payment

Request

DELETE https://sandboxapi.rapyd.net/v1/payments/:payment

# Path Variables
# payment: payment_f3145cebe0381294e9b5412a3bb8378a

Response

{
    "status": {
        "error_code": "",
        "status": "SUCCESS",
        "message": "",
        "response_code": "",
        "operation_id": "a3f6c4ea-c644-428b-b274-2ff11b318d23"
    },
    "data": {
        "id": "payment_f3145cebe0381294e9b5412a3bb8378a",
        "amount": 0,
        "original_amount": 200000,
        "is_partial": false,
        "currency_code": "EUR",
        "country_code": "GB",
        "status": "CAN",
        "description": "Payment by bank redirect",
        "merchant_reference_id": "",
        "customer_token": "cus_1930a7dab2a80a7896cbcf98c2e2c762",
        "payment_method": "other_1b16b1e5b561269d2d0afeae4ada5541",
        "payment_method_data": {},
        "auth_code": null,
        "expiration": 1697490886,
        "captured": true,
        "refunded": false,
        "refunded_amount": 0,
        "receipt_email": "",
        "redirect_url": "",
        "complete_payment_url": "https://rapyd.net",
        "error_payment_url": "https://docs.rapyd.net",
        "receipt_number": "",
        "flow_type": "",
        "address": null,
        "statement_descriptor": "Test Business",
        "transaction_id": "",
        "created_at": 1696281286,
        "metadata": {},
        "failure_code": "",
        "failure_message": "",
        "paid": false,
        "paid_at": 0,
        "dispute": null,
        "refunds": null,
        "order": null,
        "outcome": null,
        "visual_codes": {},
        "textual_codes": {},
        "instructions": [
            {
                "name": "instructions",
                "steps": [
                    {
                        "step1": "You will be redirected to a website to authorize the transaction."
                    },
                    {
                        "step2": "Enter your IBAN account number."
                    },
                    {
                        "step3": "Enter the one-time password (OTP) that you receive."
                    },
                    {
                        "step4": "You will be notified that the payment succeeded."
                    }
                ]
            }
        ],
        "ewallet_id": "ewallet_fbcc006de0394bc2b24308eddca45c64",
        "ewallets": [
            {
                "ewallet_id": "ewallet_fbcc006de0394bc2b24308eddca45c64",
                "amount": 200000,
                "percent": 100,
                "released_amount": 0,
                "refunded_amount": 0
            }
        ],
        "payment_method_options": {},
        "payment_method_type": "gb_sepadirectdebit_bank",
        "payment_method_type_category": "bank_redirect",
        "fx_rate": 1,
        "merchant_requested_currency": null,
        "merchant_requested_amount": null,
        "fixed_side": "",
        "payment_fees": null,
        "invoice": "",
        "escrow": {
            "id": "escrow_a9bb2236132c93b73f10e577a3fa281c",
            "payment": "payment_f3145cebe0381294e9b5412a3bb8378a",
            "currency": "EUR",
            "amount_on_hold": 0,
            "total_amount_released": 0,
            "status": "canceled",
            "escrow_release_days": null,
            "created_at": 1696281286,
            "updated_at": 1696281560,
            "last_payment_completion": null
        },
        "group_payment": "",
        "cancel_reason": null,
        "initiation_type": "customer_present",
        "mid": "",
        "next_action": "not_applicable",
        "error_code": "",
        "remitter_information": {},
        "save_payment_method": true
    }
}

The payment is now canceled and refunded to the customer that has backed out of the purchase.

1 Like