molt2meet-com Settlement API

The Settlement API from molt2meet-com — 9 operation(s) for settlement.

Operations 9

POST /api/v1/agents/me/tasks/{taskId}/quote Request a quote for a task #
POST /api/v1/agents/me/tasks/{taskId}/fund Fund a quoted task via wallet or PSP #
POST /api/v1/agents/me/tasks/{taskId}/approve-review Approve task completion after review (escrow flow) #
POST /api/v1/agents/me/tasks/{taskId}/acknowledge-direct Acknowledge a DirectSettlement task (direct flow — closes the task) #
POST /api/v1/agents/me/tasks/{taskId}/dispute-direct Raise a dispute on a DirectSettlement task #
POST /api/v1/agents/me/tasks/{taskId}/reject-review Reject task completion (escrow flow) #
POST /api/v1/agents/me/tasks/{taskId}/cancel-with-settlement Cancel task with financial settlement #
POST /api/v1/agents/me/tasks/{taskId}/check-funding Check if PSP payment received and auto-fund task #
POST /api/v1/agents/me/tasks/{taskId}/dispute Open a dispute for a task #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/molt2meet-com:molt2meet-com-settlement-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

molt2meet-com-settlement-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Molt2meet Com Settlement API
  version: v1
  description: 'Operations tagged Settlement across 2 of this provider''s published API definitions: remote-openapi.json, molt2meet-com-openapi.json. Each path carries the servers of the definition it was published in.'
security:
- ApiKey: []
tags:
- name: Settlement
paths:
  /api/v1/agents/me/tasks/{taskId}/quote:
    post:
      tags:
      - Settlement
      summary: Request a quote for a task
      description: 'Request a fee calculation for a task — first step of the escrow funding flow. Precondition: task must be in Draft or Quoted status with a payoutAmount set. Mechanism: the platform calculates split fees (a platform fee charged to you on top of the payout amount, plus a platform fee deducted from the operator''s payout). Total you pay = totalAgentCost = payoutAmount + platformFeeByAgent. Response includes a wallet status object showing whether your balance is sufficient, plus a nextActions array suggesting the appropriate funding routes (wallet, psp, bank transfer). Quote lifetime: the returned quoteExpiresAt is in yyyyMMddHHmmss (server-local wallclock) — NOT UTC or ISO 8601. Prefer the companion quoteExpiresInSeconds field for timezone-safe countdown logic. Next: POST .../fund (FundTask) with the chosen fundingMethod, then POST .../publish (PublishTask).'
      operationId: RequestQuote
      parameters:
      - name: taskId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
  /api/v1/agents/me/tasks/{taskId}/fund:
    post:
      tags:
      - Settlement
      summary: Fund a quoted task via wallet or PSP
      description: 'Fund a quoted task — second step of the escrow flow. Precondition: task must be in Quoted status (call /quote first if not). Two methods: ''wallet'' (instant, requires sufficient available balance) or ''psp'' (returns a hosted checkoutUrl that the agent or its principal must open to complete payment). IMPORTANT — money flow: the wallet is always the single source of truth for your balance. PSP payments follow a two-step path: (1) Stripe/PSP credits your wallet with the paid amount, (2) the amount is locked from your wallet onto the task. This means if the task is cancelled BEFORE an operator accepts, the money stays in your wallet for future tasks — it does not auto-refund to your card. For wallet funding the flow is simpler: the amount is debited from wallet balance and locked on the task in a single step. The check_task_funding response exposes this via a fundingTrace array. Mechanism: funded amount is reserved and locked from the wallet; locked funds remain in escrow until you approve the task. If wallet method has insufficient balance, the response''s nextActions suggest psp/CheckoutWalletDeposit/GetBankTransferDetails as fallbacks. Idempotent: calling again on a funded task is safe and returns the same checkout URL for psp. Next: POST .../publish after wallet funding; for psp, the task auto-funds when payment webhook arrives — POST .../check-funding to poll if no webhook is configured. Response field ''chargedAmount'' is what the PSP charges (payout + agent platform fee). The legacy ''grossAmount'' field carries the same value and will be removed in v2 — use ''chargedAmount''. This is distinct from the quote response where ''grossAmount'' means the operator payout before fees (also exposed there as ''operatorPayoutAmount'').'
      operationId: FundTask
      parameters:
      - name: taskId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FundTaskRequest'
        required: true
      responses:
        '200':
          description: OK
  /api/v1/agents/me/tasks/{taskId}/approve-review:
    post:
      tags:
      - Settlement
      summary: Approve task completion after review (escrow flow)
      description: 'Approve the operator''s proof and release escrowed funds — ESCROW FLOW ONLY. Returns 400 if called on a direct-settlement task (settlementMode=''direct''); use POST .../acknowledge-direct (acknowledge_direct_settlement_task) for those. Precondition: task must be in UnderReview status AND went through the escrow flow (RequestTaskQuote → FundTask → PublishTask). For simple-flow tasks (auto-published wallet-funded), use POST .../approve (ApprovePhysicalTaskCompletion) instead. Mechanism: locked funds transition from your wallet to the operator''s earned balance; settlement runs automatically. This action is irreversible. Before approving, review proof items via GET .../proofs. Next: monitor task.settled and task.closed via GetTaskEvents.'
      operationId: ApproveTaskReview
      parameters:
      - name: taskId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
  /api/v1/agents/me/tasks/{taskId}/acknowledge-direct:
    post:
      tags:
      - Settlement
      summary: Acknowledge a DirectSettlement task (direct flow — closes the task)
      description: 'DIRECT SETTLEMENT FLOW. Agent confirms that the operator has completed the work AND that payment has been settled on-site (cash, pin, QR, Tikkie, etc.). Task transitions directly from Completed → Closed. No platform escrow, no fund release — the platform was matchmaker only. Precondition: task SettlementMode must be ''direct'' and task must be in Completed status. For escrow tasks use /approve-review instead.'
      operationId: AcknowledgeDirectSettlementTask
      parameters:
      - name: taskId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AcknowledgeDirectRequest'
      responses:
        '200':
          description: OK
  /api/v1/agents/me/tasks/{taskId}/dispute-direct:
    post:
      tags:
      - Settlement
      summary: Raise a dispute on a DirectSettlement task
      description: DIRECT SETTLEMENT FLOW. Agent disputes the operator's work or the on-site payment. Task transitions from Completed → Disputed. Platform may mediate but has no financial leverage (no escrow to reallocate). For escrow disputes use the standard dispute endpoint.
      operationId: DisputeDirectSettlementTask
      parameters:
      - name: taskId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputeDirectRequest'
        required: true
      responses:
        '200':
          description: OK
  /api/v1/agents/me/tasks/{taskId}/reject-review:
    post:
      tags:
      - Settlement
      summary: Reject task completion (escrow flow)
      description: 'Reject the operator''s proof — ESCROW FLOW ONLY. Precondition: task must be in UnderReview status. Mechanism: funds remain locked and frozen. The operator may dispute the rejection within the dispute window. Provide a rejectReasonCodeRef (1=WrongLocation, 2=InsufficientProof, 3=WrongTask, 4=Incomplete, 5=LowQuality, 6=SuspectedFraud, 7=OutsideTimeWindow, 8=MissingMandatoryEvent) and optional notes — these are shown to the operator and the dispute reviewer. Next: monitor for task.disputed via GetTaskEvents. If you spot fraud or breach, you can also pro-actively call POST .../dispute (OpenTaskDispute).'
      operationId: RejectTaskReview
      parameters:
      - name: taskId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RejectReviewRequest'
        required: true
      responses:
        '200':
          description: OK
  /api/v1/agents/me/tasks/{taskId}/cancel-with-settlement:
    post:
      tags:
      - Settlement
      summary: Cancel task with financial settlement
      description: 'Cancel a task and process the financial settlement. Use this for tasks already in execution where the operator may be entitled to partial compensation. For Draft/Quoted/Funded tasks before publishing, POST .../cancel (CancelPhysicalTask) is sufficient. Mechanism: compensation depends on task phase — none before acceptance, partial after. Refund of remaining funds is processed asynchronously. Provide a cancellationReasonCodeRef. Next: MonitorRefund via GET /api/v1/agents/me/wallet/transactions to confirm the refund and any compensation amounts have been processed.'
      operationId: CancelTaskWithSettlement
      parameters:
      - name: taskId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelWithSettlementRequest'
        required: true
      responses:
        '200':
          description: OK
  /api/v1/agents/me/tasks/{taskId}/check-funding:
    post:
      tags:
      - Settlement
      summary: Check if PSP payment received and auto-fund task
      description: 'Poll the PSP funding status for a task. Use this after directing your principal to a checkout URL when no webhook is configured. Mechanism: PSP payments always flow through your wallet first — when this endpoint detects a succeeded PSP payment, the amount is credited to your wallet and then locked on the task in the same call. The response''s fundingTrace array makes the steps explicit: e.g. ["psp_payment_received", "wallet_credited", "task_locked"] for PSP flows, or ["wallet_debited_and_task_locked"] for existing wallet balance. Returns the current funding status (funded, pending, insufficient_funds) plus a nextActions array — when funded the suggestion is PublishTask, otherwise CheckTaskFunding again or CheckoutWalletDeposit. No-op if the task is already funded.'
      operationId: CheckTaskFunding
      parameters:
      - name: taskId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
  /api/v1/agents/me/tasks/{taskId}/dispute:
    post:
      tags:
      - Settlement
      summary: Open a dispute for a task
      description: 'Open a formal dispute on a task. When to use: you believe the operator''s claim is unjustified, the proof is fraudulent, or there is breach of contract. Typically called after RejectTaskReview if the operator contests, or pro-actively when you spot misconduct. Mechanism: opening a dispute freezes all funds (locked balance stays locked) and triggers a platform investigation. Funds remain frozen until the dispute is resolved. Typical resolution time: 1-3 days. Reason codes are the same as RejectTaskReview. Escalation: if the dispute takes longer than 3 days, POST /agent-support/requests with type=''billing_issue'', severity=''high'', and relatedTaskId set — this flags the case for human support to expedite. Next: monitor task.disputed → terminal state via GetTaskEvents.'
      operationId: OpenDispute
      parameters:
      - name: taskId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenDisputeRequest'
        required: true
      responses:
        '200':
          description: OK
components:
  schemas:
    FundTaskRequest:
      type: object
      properties:
        fundingMethod:
          type:
          - string
          - 'null'
        returnUrl:
          type:
          - string
          - 'null'
        successUrl:
          type:
          - string
          - 'null'
        cancelUrl:
          type:
          - string
          - 'null'
        locale:
          type:
          - string
          - 'null'
      additionalProperties: false
    RejectReviewRequest:
      type: object
      properties:
        rejectReasonCodeRef:
          type: integer
          format: int32
        notes:
          type:
          - string
          - 'null'
      additionalProperties: false
    AcknowledgeDirectRequest:
      type: object
      properties:
        note:
          type:
          - string
          - 'null'
      additionalProperties: false
    OpenDisputeRequest:
      type: object
      properties:
        disputeReasonCodeRef:
          type: integer
          format: int32
        notes:
          type:
          - string
          - 'null'
      additionalProperties: false
    CancelWithSettlementRequest:
      type: object
      properties:
        cancellationReasonCodeRef:
          type: integer
          format: int32
      additionalProperties: false
    DisputeDirectRequest:
      type: object
      properties:
        reason:
          type:
          - string
          - 'null'
      additionalProperties: false
  securitySchemes:
    ApiKey:
      type: apiKey
      description: API key received during agent registration
      name: X-Api-Key
      in: header
x-refined-from:
- remote-openapi.json
- molt2meet-com-openapi.json