Release Funds
You release the escrow funds to the service provider through the approver.
Headers
Name
Value
Content-Type
application/json
Authorization
Bearer <token>
Open API
post
Body
contractIdstringRequiredExample:
ID (address) that identifies the escrow contract
CAZ6UQX7...
releaseSignerstringRequiredExample:
Address of the user in charge of releasing the escrow funds to the receiver
GREL...XYZ
Responses
201
This endpoint returns an unsigned transaction in XDR format. This XDR is then used to sign the transaction using the “/helper/send-transaction” endpoint.
application/json
400
Bad request
401
Unauthorized access
429
Too Many Requests
500
Possible errors:
- The escrow balance must be equal to the amount of earnings defined for the escrow
- Escrow has been opened for dispute resolution
- The escrow must be completed to distribute earnings
- Escrow initialized without milestone
- Only the release signer can claim escrow earnings
- Escrow not found
- An unexpected error occurred
application/json
post
POST /escrow/single-release/release-funds HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 69
{
"contractId": "CAZ6UQX7...",
"releaseSigner": "GAPPROVER1234567890..."
}
{
"status": "SUCCESS",
"unsignedTransaction": "AAAAAgAAAAAtWsgedQ...."
}
What this Endpoint returns?
This endpoint returns the transaction unsigned so that the transaction can be signed by means of a customer wallet.
Use Example:
import axios from "axios";
const http = axios.create({
baseURL: "https://dev.api.trustlesswork.com",
timeout: 10000,
headers: {
"Content-Type": "application/json",
Authorization: `Bearer your_api_key`,
},
});
export const useExample = async () => {
// Get the signer address
const { address } = await kit.getAddress();
const response = await http.post(
"/escrow/single-release/release-funds",
{
// body requested for the endpoint
},
);
// Get the unsigned transaction hash
const { unsignedTransaction } = response.data;
// Sign the transaction by wallet
const { signedTxXdr } = await signTransaction(unsignedTransaction, {
address,
networkPassphrase: WalletNetwork.TESTNET,
});
// Send the transaction to Stellar Network
const tx = await http.post("/helper/send-transaction", {
signedXdr: signedTxXdr,
});
const { data } = tx;
return data;
}
Last updated
Was this helpful?