Payments

Sign payment step

Changed on

Submit a signature for a self-custodial payment step. Webhook updates will be sent as the signature is validated and submitted onchain.

post/v1/payments/{paymentId}/steps/{stepId}/sign

Request

Path parameters

paymentIdstring uuid required
Example:5a9c3e7f-2b1d-4f48-a6e0-8c4b2d1f9a3e

Unique identifier of the payment

stepIdstring uuid required
Example:4f7c1a9e-2b3d-4e85-b0a6-8d5c2e1f3b9a

Unique identifier of the payment step to sign

Request body

signaturestring required

Base64-encoded JSON envelope { body, stamp } where body is the JSON-encoded Turnkey ACTIVITY_TYPE_SIGN_TRANSACTION_V2 activity and stamp is the X-Stamp header value produced by stamping that body. Wire format: base64(JSON.stringify({ body, stamp })).

Example request

{
  "signature": "<base64({body, stamp})>"
}

Response

Signature accepted. In turn: the step is confirmed with its broadcast transaction_hash; completed follows finality. Queued behind an earlier nonce from the same wallet: the step is signed with transaction_hash null until it broadcasts.

Example response

{
  "data": {
    "id": "5a9c3e7f-2b1d-4f48-a6e0-8c4b2d1f9a3e",
    "workspace_id": "b53f6690-3242-4942-9907-885779632832",
    "organization_reference_id": "ref_123",
    "direction": "inbound",
    "funding_account_id": "2a8f4c1e-9b3d-4e56-b7a0-5c6d2e1f9b3a",
    "risk_status": "automatically_approved",
    "risk_status_reasons": [
      {
        "risk_status_reason_type": "OWNERSHIP",
        "risk_status_reason_category": "Exchange",
        "risk_status_reason_participant_id": null,
        "risk_status_reason_message": "Address has OWNERSHIP activity for Exchange over its threshold",
        "risk_status_reason_severity": "Low",
        "risk_status_reason_significance": "DECISIVE",
        "volume_usd_percent": "60.00",
        "volume_usd_percent_threshold": "1",
        "volume_usd_amount": "30000.00",
        "volume_usd_amount_threshold": null,
        "confidence_score": null,
        "confidence_score_threshold": null
      },
      {
        "risk_status_reason_type": "COUNTERPARTY",
        "risk_status_reason_category": "Gaming",
        "risk_status_reason_participant_id": null,
        "risk_status_reason_message": "Address has COUNTERPARTY exposure to Gaming over its threshold",
        "risk_status_reason_severity": "Low",
        "risk_status_reason_significance": "DECISIVE",
        "volume_usd_percent": "12.00",
        "volume_usd_percent_threshold": "2",
        "volume_usd_amount": "6000.00",
        "volume_usd_amount_threshold": null,
        "confidence_score": null,
        "confidence_score_threshold": null
      }
    ],
    "provider_metadata": [],
    "participants": [
      {
        "role": "BENEFICIARY",
        "resource": {
          "resource_type": "WORKSPACE",
          "id": "b53f6690-3242-4942-9907-885779632832",
          "name_match_score": null,
          "name_match_threshold": null,
          "name_match_comparison_id": null,
          "resolution": "USER_SUPPLIED_ID"
        }
      },
      {
        "role": "ORIGINATOR_VASP",
        "resource": {
          "resource_type": "COUNTERPARTY",
          "id": "a4c1f0b8-2e9d-4a63-b7c5-1d8f6e0a3c92",
          "name_match_score": "100",
          "name_match_threshold": "85",
          "name_match_comparison_id": "a4c1f0b8-2e9d-4a63-b7c5-1d8f6e0a3c92",
          "resolution": "EXACT_MATCH"
        }
      }
    ],
    "balance_status": "unreserved",
    "steps": [],
    "created_at": "2024-03-01T10:00:00.000Z",
    "updated_at": "2024-03-01T10:00:00.000Z",
    "expires_at": "2024-03-02T10:00:00.000Z"
  }
}

Changes

    • warning

      added the new BENEFICIARY_UPDATED enum value to the /////// response property for the response status

    • warning

      added the new ORIGINATOR_UPDATED enum value to the /////// response property for the response status

    • warning

      added the new ORIGINATOR_VASP_UPDATED enum value to the /////// response property for the response status

    • breaking

      the request property's minLength was increased from 0 to 1

    • breaking

      the response property ///// became nullable for the status

    • breaking

      the ///// response's property format changed from date-time to no format for status

    • breaking

      the ////// response's property type changed from string to object for status

    • breaking

      the //////// response's property type changed from string to object for status

    • breaking

      the ///// response's property format changed from date-time to no format for status

    • breaking

      removed the required property ///// from the response with the status

    • breaking

      removed the required property ///// from the response with the status

    • breaking

      removed the required property /////// from the response with the status

    • breaking

      removed the required property /////// from the response with the status

    • breaking

      removed the required property /////// from the response with the status

    • breaking

      removed the required property /////// from the response with the status

    • breaking

      removed the required property /////// from the response with the status

    • breaking

      removed the required property ///// from the response with the status

    • breaking

      removed the required property ///// from the response with the status

    • warning

      removed the optional property ///// from the response with the status

    • warning

      removed the optional property ///// from the response with the status

    • warning

      removed the optional property /////// from the response with the status

    • warning

      removed the optional property /////// from the response with the status

    • warning

      removed the optional property /////// from the response with the status

    • warning

      removed the optional property /////// from the response with the status

    • warning

      removed the optional property /////// from the response with the status

    • warning

      removed the optional property ///// from the response with the status

    • warning

      removed the optional property ///// from the response with the status

    • warning

      added the new automatically_approved enum value to the ///// response property for the response status

    • warning

      added the new automatically_rejected enum value to the ///// response property for the response status

    • warning

      added the new capa enum value to the /////// response property for the response status

    • warning

      added the new kraken enum value to the /////// response property for the response status

    • warning

      added the new openfx enum value to the /////// response property for the response status

    • warning

      added the new undefined enum value to the ///// response property for the response status

    • warning

      added the new zuba enum value to the /////// response property for the response status

    • info

      added the optional property ///// to the response with the status

    • info

      added the optional property ///// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property to the response with the status

    • info

      the response property ///// became required for the status

    • info

      the response property ///// became required for the status

    • info

      the response property ///// became required for the status

    • info

      the response property ///// became required for the status

    • info

      the response property ///// became required for the status

    • info

      the response property /////// became required for the status

    • info

      removed the alfred enum value from the /////// response property for the response status

    • info

      removed the auto_approved enum value from the ///// response property for the response status

    • info

      removed the auto_rejected enum value from the ///// response property for the response status

    • info

      removed the finalized enum value from the /////// response property for the response status

    • info

      added the required property ///// to the response with the status

    • info

      added the required property ///// to the response with the status

    • info

      added the required property ///// to the response with the status

    • info

      added the required property ///// to the response with the status

    • info

      added the required property ///// to the response with the status

    • info

      added the required property /////// to the response with the status

    • info

      added the required property /////// to the response with the status

    • info

      added the required property /////// to the response with the status

    • info

      added the required property /////// to the response with the status

    • info

      added the required property /////// to the response with the status

    • info

      added the required property /////// to the response with the status

    • info

      added the required property /////// to the response with the status

    • info

      added the required property ///////// to the response with the status

    • info

      added the required property ///////// to the response with the status