Skip to main content
POST
/
sdk
/
{environmentId}
/
transactions
/
{transactionId}
/
broadcast
Record a broadcast for a checkout transaction
curl --request POST \
  --url https://app.dynamicauth.com/api/v0/sdk/{environmentId}/transactions/{transactionId}/broadcast \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-Dynamic-Checkout-Session-Token: <x-dynamic-checkout-session-token>' \
  --data '
{
  "txHash": "<string>"
}
'
import requests

url = "https://app.dynamicauth.com/api/v0/sdk/{environmentId}/transactions/{transactionId}/broadcast"

payload = { "txHash": "<string>" }
headers = {
    "X-Dynamic-Checkout-Session-Token": "<x-dynamic-checkout-session-token>",
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
  method: 'POST',
  headers: {
    'X-Dynamic-Checkout-Session-Token': '<x-dynamic-checkout-session-token>',
    Authorization: 'Bearer <token>',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({txHash: '<string>'})
};

fetch('https://app.dynamicauth.com/api/v0/sdk/{environmentId}/transactions/{transactionId}/broadcast', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://app.dynamicauth.com/api/v0/sdk/{environmentId}/transactions/{transactionId}/broadcast",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'txHash' => '<string>'
  ]),
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>",
    "Content-Type: application/json",
    "X-Dynamic-Checkout-Session-Token: <x-dynamic-checkout-session-token>"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://app.dynamicauth.com/api/v0/sdk/{environmentId}/transactions/{transactionId}/broadcast"

	payload := strings.NewReader("{\n  \"txHash\": \"<string>\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("X-Dynamic-Checkout-Session-Token", "<x-dynamic-checkout-session-token>")
	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://app.dynamicauth.com/api/v0/sdk/{environmentId}/transactions/{transactionId}/broadcast")
  .header("X-Dynamic-Checkout-Session-Token", "<x-dynamic-checkout-session-token>")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"txHash\": \"<string>\"\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://app.dynamicauth.com/api/v0/sdk/{environmentId}/transactions/{transactionId}/broadcast")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["X-Dynamic-Checkout-Session-Token"] = '<x-dynamic-checkout-session-token>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"txHash\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
{
  "id": "95b11417-f18f-457f-8804-68e361f9164f",
  "checkoutId": "95b11417-f18f-457f-8804-68e361f9164f",
  "amount": "<string>",
  "currency": "An example name",
  "quoteVersion": 123,
  "createdAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z",
  "memo": {},
  "userId": "95b11417-f18f-457f-8804-68e361f9164f",
  "destinationAddresses": [
    {
      "address": "0xbF394748301603f18d953C90F0b087CBEC0E1834"
    }
  ],
  "fromAddress": "0xbF394748301603f18d953C90F0b087CBEC0E1834",
  "fromChainId": "An example name",
  "fromToken": "An example name",
  "toAddress": "0xbF394748301603f18d953C90F0b087CBEC0E1834",
  "toChainId": "An example name",
  "toToken": "An example name",
  "quote": {
    "version": 123,
    "fromAmount": "<string>",
    "toAmount": "<string>",
    "createdAt": "2023-11-07T05:31:56Z",
    "expiresAt": "2023-11-07T05:31:56Z",
    "fees": {
      "totalFeeUsd": "<string>",
      "gasEstimate": {
        "usdValue": "<string>",
        "nativeValue": "<string>",
        "nativeSymbol": "<string>"
      }
    },
    "estimatedTimeSec": 123,
    "signingPayload": {
      "chainId": "<string>",
      "evmTransaction": {
        "to": "<string>",
        "data": "<string>",
        "value": "<string>",
        "gasLimit": "<string>",
        "gasPrice": "<string>",
        "maxFeePerGas": "<string>",
        "maxPriorityFeePerGas": "<string>",
        "nonce": 123
      },
      "evmApproval": {
        "tokenAddress": "<string>",
        "spenderAddress": "<string>",
        "amount": "<string>"
      },
      "serializedTransaction": "<string>",
      "psbt": "<string>",
      "tronTransaction": {
        "rawDataHex": "<string>",
        "to": "<string>",
        "value": "<string>"
      }
    }
  },
  "txHash": "<string>",
  "broadcastedAt": "2023-11-07T05:31:56Z",
  "sourceConfirmedAt": "2023-11-07T05:31:56Z",
  "confirmations": 123,
  "settlement": {
    "toChainId": "An example name",
    "toToken": "An example name",
    "toAddress": "0xbF394748301603f18d953C90F0b087CBEC0E1834",
    "completedAt": "2023-11-07T05:31:56Z"
  },
  "completedAt": "2023-11-07T05:31:56Z",
  "failure": {
    "code": "An example name",
    "message": "<string>",
    "category": "An example name",
    "stage": "An example name",
    "retryable": true,
    "details": {}
  },
  "expiresAt": "2023-11-07T05:31:56Z",
  "exchangeSource": {
    "exchangeId": "95b11417-f18f-457f-8804-68e361f9164f",
    "metadata": {}
  }
}
{
  "error": "<string>"
}
{
  "error": "No jwt provided!"
}
{
  "error": "Not Found",
  "code": "not_found"
}
{
  "error": "Conflict: invalid state transition"
}
{
  "error": "Resources already exists for this Object",
  "payload": {
    "email": "joe@email.com",
    "embeddedWalletName": "<string>",
    "mergeConflicts": {
      "fromUser": {
        "id": "95b11417-f18f-457f-8804-68e361f9164f",
        "projectEnvironmentId": "95b11417-f18f-457f-8804-68e361f9164f",
        "verifiedCredentials": [
          {
            "id": "95b11417-f18f-457f-8804-68e361f9164f",
            "signInEnabled": true,
            "address": "0xbF394748301603f18d953C90F0b087CBEC0E1834",
            "chain": "<string>",
            "refId": "95b11417-f18f-457f-8804-68e361f9164f",
            "signerRefId": "95b11417-f18f-457f-8804-68e361f9164f",
            "email": "jsmith@example.com",
            "name_service": {
              "avatar": "<string>",
              "name": "<string>"
            },
            "public_identifier": "<string>",
            "wallet_name": "<string>",
            "wallet_properties": {
              "turnkeySubOrganizationId": "95b11417-f18f-457f-8804-68e361f9164f",
              "turnkeyPrivateKeyId": "95b11417-f18f-457f-8804-68e361f9164f",
              "turnkeyHDWalletId": "95b11417-f18f-457f-8804-68e361f9164f",
              "isAuthenticatorAttached": true,
              "turnkeyUserId": "95b11417-f18f-457f-8804-68e361f9164f",
              "isSessionKeyCompatible": true
            },
            "business_account_properties": {
              "businessAccountId": "95b11417-f18f-457f-8804-68e361f9164f",
              "businessAccountCreatedAt": "2023-11-07T05:31:56Z",
              "businessAccountSignerId": "95b11417-f18f-457f-8804-68e361f9164f",
              "businessAccountName": "<string>",
              "businessAccountExternalRef": "<string>"
            },
            "oauth_username": "<string>",
            "oauth_display_name": "<string>",
            "oauth_account_id": "<string>",
            "phoneNumber": "9171113333",
            "phoneCountryCode": "1",
            "isoCountryCode": "US",
            "oauth_account_photos": [
              "<string>"
            ],
            "oauth_emails": [
              "<string>"
            ],
            "oauth_metadata": {},
            "previous_users": [
              "95b11417-f18f-457f-8804-68e361f9164f"
            ],
            "embedded_wallet_id": "<string>",
            "wallet_additional_addresses": [
              {
                "address": "<string>",
                "publicKey": "<string>",
                "network": "<string>"
              }
            ],
            "lastSelectedAt": "2023-11-07T05:31:56Z",
            "verifiedAt": "2023-11-07T05:31:56Z"
          }
        ],
        "lastVerifiedCredentialId": "95b11417-f18f-457f-8804-68e361f9164f",
        "sessionId": "95b11417-f18f-457f-8804-68e361f9164f",
        "alias": "An example name",
        "country": "US",
        "email": "jsmith@example.com",
        "firstName": "An example name",
        "jobTitle": "An example name",
        "lastName": "An example name",
        "phoneNumber": "<string>",
        "policiesConsent": true,
        "tShirtSize": "An example name",
        "team": "An example name",
        "username": "An example name",
        "firstVisit": "2023-11-07T05:31:56Z",
        "lastVisit": "2023-11-07T05:31:56Z",
        "newUser": true,
        "metadata": {},
        "btcWallet": "<string>",
        "kdaWallet": "<string>",
        "ltcWallet": "<string>",
        "ckbWallet": "<string>",
        "kasWallet": "<string>",
        "dogeWallet": "<string>",
        "emailNotification": true,
        "discordNotification": true,
        "newsletterNotification": true,
        "lists": [
          "<string>"
        ],
        "scope": "superuser marketing operations",
        "missingFields": [
          {
            "name": "<string>",
            "required": true,
            "enabled": true,
            "unique": true,
            "verify": true,
            "validationRules": {
              "unique": true,
              "regex": "^0x",
              "validOptions": [
                {
                  "label": "small"
                },
                {
                  "label": "medium"
                },
                {
                  "label": "large"
                }
              ],
              "checkboxText": "Agree to the terms and conditions"
            },
            "label": "<string>",
            "position": 123
          }
        ]
      },
      "conflicts": [
        {
          "field": {
            "name": "<string>",
            "required": true,
            "enabled": true,
            "unique": true,
            "verify": true,
            "validationRules": {
              "unique": true,
              "regex": "^0x",
              "validOptions": [
                {
                  "label": "small"
                },
                {
                  "label": "medium"
                },
                {
                  "label": "large"
                }
              ],
              "checkboxText": "Agree to the terms and conditions"
            },
            "label": "<string>",
            "position": 123
          },
          "fromUser": {
            "userId": "95b11417-f18f-457f-8804-68e361f9164f",
            "value": "An example name"
          },
          "currentUser": {
            "userId": "95b11417-f18f-457f-8804-68e361f9164f",
            "value": "An example name"
          }
        }
      ]
    },
    "additionalMessages": [
      "<string>"
    ]
  }
}
{
  "error": "Internal Server Error"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

X-Dynamic-Checkout-Session-Token
string
required

Checkout session token issued at transaction creation. Format: dct_.

Path Parameters

environmentId
string
required

ID of the environment

Required string length: 36
Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Example:

"95b11417-f18f-457f-8804-68e361f9164f"

transactionId
string
required

UUID of the deposit transaction

Required string length: 36
Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Example:

"95b11417-f18f-457f-8804-68e361f9164f"

Body

application/json

Records that the flow has been broadcast. txHash is required for wallet sources but optional for exchange sources (the user may not have the on-chain hash).

txHash
string

A string with a max length of 4096 characters

Maximum string length: 4096

Response

Broadcast recorded successfully

id
string
required
Required string length: 36
Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Example:

"95b11417-f18f-457f-8804-68e361f9164f"

checkoutId
string
required
Required string length: 36
Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Example:

"95b11417-f18f-457f-8804-68e361f9164f"

amount
string
required

Payment/Deposit amount in the specified currency

currency
string
required
Maximum string length: 50
Pattern: ^(?=\S)[\p{L}\p{N}a-zA-Z _.,:!?&%@\/+\-'|]+(?<=\S)$
Example:

"An example name"

executionState
enum<string>
required

Execution axis of a flow's state machine.

Available options:
initiated,
source_attached,
quoted,
signing,
broadcasted,
source_confirmed,
cancelled,
expired,
failed
settlementState
enum<string>
required

Settlement axis of a flow's state machine.

Available options:
none,
routing,
bridging,
swapping,
settling,
completed,
failed
riskState
enum<string>
required

Risk-screening axis of a flow's state machine.

Available options:
unknown,
pending,
cleared,
blocked,
review
quoteVersion
integer
required

Version number of the quote used for this transaction

createdAt
string<date-time>
required

ISO 8601 timestamp of when the transaction was created

updatedAt
string<date-time>
required

ISO 8601 timestamp of when the transaction was last updated

memo
object

Arbitrary metadata attached to the transaction

userId
string
Required string length: 36
Pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
Example:

"95b11417-f18f-457f-8804-68e361f9164f"

destinationAddresses
object[]

List of destination wallet addresses for fund delivery

sourceType
enum<string>

How a flow is funded — a connected wallet, a CEX, or a deposit address.

Available options:
wallet,
exchange,
deposit_address
fromAddress
string

Valid blockchain wallet address, must be an alphanumeric string (underscores allowed for chains like Midnight, hyphens allowed for chains using base64url-encoded addresses like TON)

Maximum string length: 255
Pattern: ^[A-Za-z0-9_-]{18,100}$
Example:

"0xbF394748301603f18d953C90F0b087CBEC0E1834"

fromChainId
string
Maximum string length: 50
Pattern: ^(?=\S)[\p{L}\p{N}a-zA-Z _.,:!?&%@\/+\-'|]+(?<=\S)$
Example:

"An example name"

fromChainName
enum<string>
Available options:
ETH,
EVM,
FLOW,
SOL,
ALGO,
STARK,
COSMOS,
BTC,
ECLIPSE,
SUI,
SPARK,
TRON,
APTOS,
TON,
STELLAR,
ALEO,
TEMPO,
MIDNIGHT
fromToken
string
Maximum string length: 50
Pattern: ^(?=\S)[\p{L}\p{N}a-zA-Z _.,:!?&%@\/+\-'|]+(?<=\S)$
Example:

"An example name"

toAddress
string

Valid blockchain wallet address, must be an alphanumeric string (underscores allowed for chains like Midnight, hyphens allowed for chains using base64url-encoded addresses like TON)

Maximum string length: 255
Pattern: ^[A-Za-z0-9_-]{18,100}$
Example:

"0xbF394748301603f18d953C90F0b087CBEC0E1834"

toChainId
string
Maximum string length: 50
Pattern: ^(?=\S)[\p{L}\p{N}a-zA-Z _.,:!?&%@\/+\-'|]+(?<=\S)$
Example:

"An example name"

toChainName
enum<string>
Available options:
ETH,
EVM,
FLOW,
SOL,
ALGO,
STARK,
COSMOS,
BTC,
ECLIPSE,
SUI,
SPARK,
TRON,
APTOS,
TON,
STELLAR,
ALEO,
TEMPO,
MIDNIGHT
toToken
string
Maximum string length: 50
Pattern: ^(?=\S)[\p{L}\p{N}a-zA-Z _.,:!?&%@\/+\-'|]+(?<=\S)$
Example:

"An example name"

quote
object

A versioned quote snapshot stored on a flow.

txHash
string

A string with a max length of 4096 characters

Maximum string length: 4096
broadcastedAt
string<date-time>

ISO 8601 timestamp of when the transaction was broadcast to the network

sourceConfirmedAt
string<date-time>

ISO 8601 timestamp of when the source chain confirmed the transaction

confirmations
integer

Number of blockchain confirmations received

settlement
object

Resolved settlement destination and completion time for a flow.

completedAt
string<date-time>

ISO 8601 timestamp of when the transaction was completed

failure
object

Structured failure detail recorded on a flow when an operation fails.

expiresAt
string<date-time>

ISO 8601 timestamp of when the transaction expires

exchangeSource
object

Exchange source for a flow. Present when sourceType is 'exchange'. Contains the exchange reference and provider-specific metadata (e.g. buyUrl for Coinbase).

Last modified on July 11, 2026