Release Milestone Funds
You release the milestone 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
GAPPROVER1234567890...
milestoneIndexstringRequiredExample:
Position that identifies the milestone within the group of milestones in the escrow
1
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/multi-release/release-milestone-funds HTTP/1.1
Host:
Content-Type: application/json
Accept: */*
Content-Length: 91
{
"contractId": "CAZ6UQX7...",
"releaseSigner": "GAPPPROVER1234567890...",
"milestoneIndex": "1"
}
{
"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/multi-release/release-milestone-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?