---
title: "Paygo: submit both signed transactions"
method: POST
path: "/api/v1/paygo/submit"
tags: ["Paygo"]
---

# Paygo: submit both signed transactions

`POST /api/v1/paygo/submit`

## Request

- Base URL: `https://powersun.vip`
- URL: `https://powersun.vip/api/v1/paygo/submit`
- Auth: API key in header `X-API-Key`

Submit the signed token transfer and the signed TRX fee payment for a previously issued estimate. PowerSun executes the full sequence server-side: payment first, then resource delegation and the transfer broadcast. Idempotent — re-submitting the same pair returns the existing order.

## Request body

- object
  - `estimateId` string, required
  - `signedTransaction` object, required: Signed token transfer (expiration must be ≥ 5 minutes; extend BEFORE signing; fee_limit ≥ 1 TRX)
  - `signedPayment` object, required: Signed TRX transfer of exactly feeSun (from the estimate) to payTo
  - `dryRun` boolean: Integration-testing aid: run the COMPLETE validation pipeline (parsing, txID integrity, estimate cross-checks, signature recovery, duplicate detection, price freshness) but create nothing — no order, the estimate stays unconsumed, no funds can move. Response: {dryRun:true, valid:true, priceStillValid, currentFeeSun}. Use it to verify your transaction-building code before spending anything.

## Response `200`

Order accepted

- object
  - `orderId` string
  - `status` string

## Other responses

- `409`: PRICE_CHANGED (fresh estimateId + feeTrx in body, re-sign the payment) or DUPLICATE_TX
- `410`: ESTIMATE_EXPIRED — request a new estimate

---

[API](https://skmtc.dev/powersun/apis/powersun-agent-api.md) · [All operations](https://skmtc.dev/powersun/apis/powersun-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/powersun/apis/powersun-agent-api/revisions/169cc1ebfd26?raw)
