Complete Payout
Use this method in the sandbox to simulate the action of a third party that is required for completing the payout process.
Relevant when the status of the payout is Created.
Prerequisites:
This method triggers the Payout Completed Webhook. This webhook contains the same information as the response.
- amount 
- The payout amount. Decimal, including the correct number of decimal places for the currency exponent, as defined in ISO 2417:2015. 
 
- payout 
- ID of the payout. String starting with payout_. 
 
- .NET - using System; using System.Text.Json; namespace RapydApiRequestSample { class Program { static void Main(string[] args) { try { var payout = "payout_cd35fbe8dc6fd7c2e67d44ad53a4367d"; var amount = "10"; string result = RapydApiRequestSample.Utilities.MakeRequest("POST", $"/v1/payouts/complete/{payout}/{amount}", request); Console.WriteLine(result); } catch (Exception e) { Console.WriteLine("Error completing request: " + e.Message); } } } }
 
 
- JavaScript - const makeRequest = require('<path-to-your-utility-file>/utilities').makeRequest; async function main() { try { const body = {}; const result = await makeRequest( 'POST', '/v1/payouts/complete/payout_cd35fbe8dc6fd7c2e67d44ad53a4367d/10', body ); console.log(result); } catch (error) { console.error('Error completing request', error); } }
 
 
- PHP - <?php $path = $_SERVER['DOCUMENT_ROOT']; $path .= "/<path-to-your-utility-file>/utilities.php"; include($path); try { $object = make_request('post', '/v1/payouts/complete/payout_cd35fbe8dc6fd7c2e67d44ad53a4367d/10'); var_dump($object); } catch(Exception $e) { echo "Error: $e"; } ?>
 
 
- Python - from pprint import pprint from utilities import make_request payout = 'payout_cd35fbe8dc6fd7c2e67d44ad53a4367d' amount = 10 results = make_request(method='post', path=f'/v1/payouts/complete/{payout}/{amount}') pprint(results)
 
 
- /v1/payouts/complete/:payout/:amount 
- Complete Payout 
- curl -X post https://sandboxapi.rapyd.net/v1/payouts/complete/payout_f85eca81e10e2a0bd6bf0ac5ed35a926/2000 -H 'access_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' 
- { "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "61a91ad4-d805-4208-9ac5-272ffffc7b00" }, "data": { "id": "payout_f85eca81e10e2a0bd6bf0ac5ed35a926", "payout_type": "bank", "payout_method_type": "mx_abc_capital_bank", "amount": 39044.24, "payout_currency": "MXN", "sender_amount": 2000, "sender_currency": "USD", "status": "Completed", "sender_country": "US", "sender": { "id": "sender_94e84ba869e20da70be5b0c0027c889d", "country": "US", "entity_type": "company", "address": "address 2", "name": "Rapyd", "postcode": "3333", "city": "Amsterdam", "phone_number": "19019044444", "company_name": "Rapyd", "currency": "USD", "identification_value": "unc_num_123333", "province": "Amsterdam", "occupation": "Ridesharing" }, "beneficiary_country": "MX", "beneficiary": { "id": "beneficiary_d75798c2168f04a552542880ba772966", "last_name": "Doe", "first_name": "Jane", "country": "MX", "entity_type": "individual", "name": "Jane Doe", "currency": "MXN", "category": "bank" }, "fx_rate": 19.522119, "instructions": { "name": "instructions", "steps": [ { "step1": "The funds will be transferred to the provided account details of the beneficiary ." } ] }, "instructions_value": {}, "ewallets": [ { "ewallet_id": "ewallet_c1943cfeda5f98247ab117e5d2648861", "amount": 2000, "percent": 100 } ], "metadata": { "merchant_defined": true }, "description": "Salary", "created_at": 1607957007, "payout_fees": null, "expiration": null, "merchant_reference_id": null, "paid_at": "1607957177", "identifier_type": null, "identifier_value": null, "error": null, "paid_amount": 2000, "statement_descriptor": null } }
- Complete Payout - Estimated Time of Arrival 
- curl -X post https://sandboxapi.rapyd.net/v1/payouts/complete/payout_35184394216898a43740eaaaf8cc5ebb/2.24 -H 'access_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' 
- { "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "cd36118e-e127-40c2-8861-fba373fdb050" }, "data": { "id": "payout_35184394216898a43740eaaaf8cc5ebb", "payout_type": "bank", "payout_method_type": "eu_sepa_bank", "amount": 2, "payout_currency": "EUR", "sender_amount": 2.24, "sender_currency": "USD", "status": "Completed", "sender_country": "DK", "sender": { "id": "sender_9182821b8c252d18b7d5f83d50cc21ae", "country": "DK", "entity_type": "company", "name": "Jane Doe", "company_name": "Acme", "currency": "USD" }, "beneficiary_country": "AT", "beneficiary": { "id": "beneficiary_9acc72a52b94dfb7f2d6fb3d410943db", "last_name": "Doe", "first_name": "John", "country": "AT", "entity_type": "individual", "name": "John Doe", "currency": "EUR" }, "fx_rate": 0.8943885, "instructions": [{ "name": "instructions", "steps": [{ "step1": "The funds will be transferred to the provided account details of the beneficiary." } ] } ], "instructions_value": {}, "ewallets": [{ "ewallet_id": "ewallet_a5d0ff1865fe71967d64a294dbd1de22", "amount": 2.24, "percent": 100 } ], "metadata": {}, "description": null, "created_at": 1680093715, "payout_fees": null, "expiration": null, "merchant_reference_id": null, "paid_at": "1680093729", "identifier_type": null, "identifier_value": null, "error": null, "paid_amount": 2, "statement_descriptor": null, "gc_error_code": null, "estimated_time_of_arrival": "The beneficiary will receive the funds in a few minutes." } }
- Complete Payout - with card 
- curl -X post https://sandboxapi.rapyd.net/v1/payouts/complete/payout_9fc2a39187c00674cdd50221edbed5c2/10 -H 'access_key: your-access-key-here' -H 'Content-Type: application/json' -H 'idempotency: your-idempotency-parameter-here' -H 'salt: your-random-string-here' -H 'signature: your-calculated-signature-here' -H 'timestamp: your-unix-timestamp-here' 
- { "status": { "error_code": "", "status": "SUCCESS", "message": "", "response_code": "", "operation_id": "9775c2c3-38fc-42c7-8135-645f3e021fec" }, "data": { "id": "payout_9fc2a39187c00674cdd50221edbed5c2", "payout_type": "card", "payout_method_type": "ua_general_card", "amount": 10, "payout_currency": "UAH", "sender_amount": 0.25, "sender_currency": "USD", "status": "Completed", "sender_country": "AU", "sender": { "id": "sender_c109585bb9085607d544dcdf18bfaf85", "last_name": "Doe", "country": "AU", "entity_type": "company", "address": "123 Maple street", "name": "Jane Doe", "city": "Any town", "phone_number": "3218900123", "company_name": "4 Diamonds Limo service", "currency": "USD", "identification_value": "R1391230" }, "beneficiary_country": "UA", "beneficiary": { "id": "beneficiary_0fe3f4d9a37d31001dcef109206f83ab", "last_name": "Doe", "first_name": "John", "country": "UA", "entity_type": "individual", "name": "John Doe", "phone_number": "0231920712", "currency": "UAH", "bin_details": { "type": "CREDIT", "brand": "VISA", "level": "STANDARD", "issuer": "First Bank", "country": "AR", "bin_number": "589562" }, "card_expiration_year": "26", "card_expiration_month": "10", "card_number": "5650" }, "fx_rate": 39.8891626842, "instructions": [ { "name": "instructions", "steps": [ { "step1": "The funds will be transferred to the provided card details of the beneficiary." } ] } ], "instructions_value": {}, "ewallets": [ { "ewallet_id": "ewallet_f69bdf976830363ec0146418f31ea4c1", "amount": 0.25, "percent": 100 } ], "metadata": {}, "description": "Expenses", "created_at": 1721645048, "payout_fees": null, "expiration": null, "merchant_reference_id": null, "paid_at": "1721645465", "identifier_type": null, "identifier_value": null, "error": null, "paid_amount": 10, "statement_descriptor": null, "gc_error_code": null, "batch_file": null } }
- Bad Request - Already Paid 
- curl -X post 'https://sandboxapi.rapyd.net/v1/payouts/complete/payout_9f07b29ce0217b80268d49ccb0458267/2' \ -H 'access_key: your-access-key-here' \ -H 'Content-Type: application/json' \ -H 'idempotency: your-idempotency-parameter-here' \ -H 'salt: your-random-string-here' \ -H 'signature: your-calculated-signature-here' \ -H 'timestamp: your-unix-timestamp-here' 
- { "status": { "error_code": "ERROR_PAYOUT_AMOUNT_EXCEEDED_ORIGINAL_AMOUNT", "status": "ERROR", "message": "The request tried to complete a payout in the sandbox, but the total amount of the payout has already been paid out. The request was rejected. Corrective action: Create another payout.", "response_code": "ERROR_PAYOUT_AMOUNT_EXCEEDED_ORIGINAL_AMOUNT", "operation_id": "5425a74f-ec6d-4b68-a6d2-91482fc674bd" } }
- Bad Request - Payout Not Found 
- curl -X post 'https://sandboxapi.rapyd.net/v1/payouts/complete/payout_1e5161063e775499726356c74c22474a/2' \ -H 'access_key: your-access-key-here' \ -H 'Content-Type: application/json' \ -H 'idempotency: your-idempotency-parameter-here' \ -H 'salt: your-random-string-here' \ -H 'signature: your-calculated-signature-here' \ -H 'timestamp: your-unix-timestamp-here' 
- { "status": { "error_code": "ERROR_UPDATE_PAYOUT", "status": "ERROR", "message": "The request tried to update a payout, but the payout was not found. The request was rejected. Corrective action: For the 'payout' path parameter, use the ID of a valid payout, a string starting with 'payout_'.", "response_code": "ERROR_UPDATE_PAYOUT", "operation_id": "532ad5c5-9948-4115-bead-e47d51dd3644" } }
- Unauthorized 
- curl -X post 'https://sandboxapi.rapyd.net/v1/payouts/complete/payout_1e5161063e775499726356c74c22474a/2' \ -H 'access_key: your-access-key-here' \ -H 'Content-Type: application/json' \ -H 'idempotency: your-idempotency-parameter-here' \ -H 'salt: your-random-string-here' \ -H 'signature: your-calculated-signature-here' \ -H 'timestamp: your-unix-timestamp-here' 
- { "status": { "error_code": "UNAUTHENTICATED_API_CALL", "status": "ERROR", "message": "The request was rejected due to an authentication issue. Corrective action: Check the status of your account in the 'Account Details' page of the Client Portal.", "response_code": "UNAUTHENTICATED_API_CALL", "operation_id": "17a30d47-3c0a-4ed3-8384-937f849326df" } }