Drawdowns
The drawdown process is best suited for situations where you don’t know how many milestones you will need to do not know up front what the expected costs will be. For example a construction project with multiple phases.
List drawdowns for a transaction
A list of drawdowns can be retrieved by using the transaction query.
query transaction { transaction(id: "4XTwDsioZZZFeOKKr5blO") { id drawdowns { id title description value state } }}
Create a drawdown
Drawdown requests are created after a transaction has been created and follows a similar process to milestones. The
transaction should have the workflow field set to DRAWDOWN
.
mutation drawdownCreate { drawdownCreate(input: { transactionId: "4XTwDsioZZZFeOKKr5blO" title: "Title of the drawdown request" description: "Description of the drawdown request" value: 10000 }) { id state }}
Initiate a drawdown request
When drawdown is ready to be requested the drawdownRequest
mutation should be called
mutation drawdownRequest { drawdownRequest(id: "5Mbe7xDUoUdryvN4HNjhdm") { state }}
Accept a drawdown
After a drawdown is requested it can be accepted using the drawdownApprove
mutation. Once accepted value associated
with the drawdown will be paid out to the seller.
mutation drawdownApprove { drawdownApprove(id: "5Mbe7xDUoUdryvN4HNjhdm") { state }}
Reject a drawdown
After a drawdown is requested it can be rejected using the drawdownDecline
mutation.
mutation drawdownDecline { drawdownDecline(id: "5Mbe7xDUoUdryvN4HNjhdm") { state }}
Delete a drawdown
If a drawdown has been created but drawdownRequest
has not yet been called. The drawdownDelete
mutation can be used
to remove the drawdown.
mutation drawdownDelete { drawdownDelete(id: "5Mbe7xDUoUdryvN4HNjhdm") { state }}