APIMaster.ai

Báo giá Seedance và biên nhận thanh toán

ước tính chi phí tạo Seedance và xác minh số tiền cuối cùng bằng các biên nhận thanh toán được xác thực và lưu trữ.

Báo giá Seedance và biên nhận thanh toán

Áp dụng cho seedance-2.0, seedance-2.5, seedance-2.0-fast và seedance-2.0-mini, trên tất cả các kênh tạo video. Base URL: https://apimaster.ai/v1 (https://apimaster.ai/v1). Xác thực mọi yêu cầu với Authorization: Bearer YOUR_API_KEY.

Nhận ước tính

POST https://apimaster.ai/v1/videos/quote chấp nhận các tham số JSON giống như một yêu cầu tạo video tiêu chuẩn, bao gồm model, prompt, duration, resolution, video_urls và các thiết lập tạo video được hỗ trợ khác. Hiện chưa hỗ trợ báo giá cho bản nháp (draft generation), nâng cấp bản nháp và remix.

curl "https://apimaster.ai/v1/videos/quote" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"seedance-2.0","prompt":"A paper boat on a pond","duration":4,"resolution":"480p","generate_audio":false}'

Phản hồi chứa object: "video.quote", quote_id, expires_at (giây Unix), binding: false, funds_reserved: false, và một đối tượng billing được mô tả bên dưới. Báo giá có thời hạn tham khảo là năm phút. Báo giá không trừ tiền, không tạo tác vụ và không bắt đầu tạo video phía nhà cung cấp. Do đó billing.reserved_amount là "0.000000". Mã báo giá chỉ mang tính tham khảo; đây không phải là mã ủy quyền hay khóa giữ giá và không cần gửi kèm khi tạo video.

Giá được tính lại vào thời điểm gửi thực sự và được khoá cố định cho tác vụ đó. Ước tính không phải là đảm bảo về phí tối đa. Tác vụ hoàn thành có thể tốn nhiều hơn hoặc ít hơn ước tính. Yêu cầu thời lượng tự động sử dụng ước tính đầu ra 30 giây; requested_output_seconds là -1.

Việc tạo video vẫn tuân theo kiểm tra của nhà cung cấp. Đối với yêu cầu mở rộng video trên Seedance 2.5, hãy đặt rõ aspect_ratio: "adaptive"; nếu nhà cung cấp từ chối, trường hợp này sẽ được xử lý thông qua quy trình hoàn tiền tiêu chuẩn.

Lấy biên nhận của tác vụ

curl "https://apimaster.ai/v1/videos/task_xxx/billing" \
  -H "Authorization: Bearer YOUR_API_KEY"

GET /v1/videos/{task_id}/billing trả về object: "video.billing_receipt" và billing. Chỉ các API key thuộc tài khoản chủ sở hữu tác vụ mới có thể lấy được. Các tác vụ không rõ, của người khác hoặc các tác vụ lịch sử chưa có biên nhận sẽ trả về HTTP 404. Biên nhận được tạo cho các tác vụ mới sau khi tính năng này được bật; các tác vụ cũ không được dựng lại theo chiều ngược lại.

Đối tượng billing tương tự cũng được đưa vào cả hai phản hồi truy vấn tác vụ:

  • GET /v1/videos/{task_id}: billing ở cấp cao nhất.
  • GET /v1/video/generations/{task_id}: data.billing.

settlement_status có thể là pending, settled hoặc refunded; phản hồi báo giá dùng estimate. Hoàn thành tác vụ và quyết toán tài chính là hai việc riêng biệt: chỉ coi các khoản tiền là cuối cùng khi biên nhận ở trạng thái settled hoặc refunded. Yêu cầu lấy biên nhận lặp lại không kích hoạt tạo video, quyết toán hay hoàn tiền. Biên nhận đã chốt giữ nguyên mã và nội dung biên nhận, kể cả sau khi hoàn tiền.

Ví dụ đầy đủ về yêu cầu và phản hồi

Cả hai ví dụ đều dùng Seedance 2.0 ở độ phân giải 480P, thời lượng đầu ra yêu cầu 4 giây, một tệp tham chiếu được đo là 4,042 giây, hệ số kênh bằng 1 và hệ số tài khoản bằng 1,05. Thời lượng hoàn thành và số tiền lấy từ một bài kiểm tra thực; báo giá là một ví dụ minh họa được lắp ghép cho các đầu vào tương ứng. Các ID và URL media là dữ liệu mẫu. Tỷ lệ thực tế đến từ phản hồi API của bạn.

1. Nhận báo giá

POST https://apimaster.ai/v1/videos/quote, JSON yêu cầu:

{
  "model": "seedance-2.0",
  "prompt": "A paper boat moves gently on a pond.",
  "duration": 4,
  "resolution": "480p",
  "video_urls": [
    "https://example.com/reference.mp4"
  ]
}
Trường Kiểu Ý nghĩa
model string Mã model, ở đây là seedance-2.0.
prompt string Lời nhắc tạo video.
duration integer Số giây đầu ra yêu cầu, không phải thời lượng video tham chiếu.
resolution string Độ phân giải đầu ra, ở đây là 480p.
video_urls array URL của các video tham chiếu. Thay dữ liệu mẫu bằng media có thể truy cập; máy chủ sẽ đo từng tệp.

Phản hồi báo giá:

{
  "object": "video.quote",
  "quote_id": "quote_example",
  "expires_at": 1790949324,
  "binding": false,
  "funds_reserved": false,
  "billing": {
    "schema_version": "1",
    "settlement_status": "estimate",
    "model": "seedance-2.0",
    "resolution": "480P",
    "tariff_variant": "480P-input",
    "tariff_revision": "sd-v1-b79a35d3a29af9af",
    "currency": "USD",
    "unit": "second",
    "base_unit_rate": "0.04319",
    "channel_multiplier": 1,
    "account_multiplier": 1.05,
    "effective_unit_rate": "0.0453495",
    "requested_output_seconds": 4,
    "estimated_output_seconds": 4,
    "estimated_billable_seconds": 9,
    "input_videos": [
      {
        "index": 0,
        "media_id": "media_example_hash",
        "measured_seconds": 4.042,
        "billable_seconds": 5,
        "duration_source": "apimaster_probe"
      }
    ],
    "billable_input_video_seconds": 5,
    "output": null,
    "billable_seconds": null,
    "rounding": {
      "amount_formula": "round(total_billable_seconds * effective_unit_rate / account_unit_usd) * account_unit_usd",
      "effective_unit_rate": "nearest_decimal_12_places_half_up",
      "input_video": "ceil_each_file_then_sum",
      "money": "nearest_account_unit_half_up",
      "output_video": "nearest_integer_half_up"
    },
    "estimated_amount": "0.408146",
    "reserved_amount": "0.000000",
    "additional_debit_amount": "0.000000",
    "final_debit_amount": null,
    "refunded_amount": "0.000000",
    "net_amount": null,
    "initial_quota_units": 0,
    "final_quota_units": null,
    "account_unit_usd": "0.000002",
    "media_charges": {
      "audio": "0.000000",
      "image": "0.000000",
      "input_video_unrounded": "0.2267475",
      "other_reference": "0.000000",
      "output_video_unrounded": "0.181398"
    },
    "final_debit_may_exceed_estimate": true,
    "created_at": 1790949024,
    "settled_at": null
  }
}

Đầu vào 4,042 giây được làm tròn lên thành 5 giây. Với 4 giây đầu ra ước tính, ước tính bao gồm tổng cộng 9 giây và có giá 0.408146 USD. Báo giá không trừ tiền; các số tiền cuối cùng vẫn là null.

2. Gửi yêu cầu tạo video và truy vấn hoàn thành

Sau khi gửi tới POST https://apimaster.ai/v1/videos/generations, phản hồi ban đầu chứa mã tác vụ:

{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_example"
    }
  ]
}

Sau đó truy vấn GET https://apimaster.ai/v1/videos/task_example bằng một API key từ cùng tài khoản. Sau khi tạo video và quyết toán hoàn tất:

{
  "actual_time": 189,
  "billing": {
    "schema_version": "1",
    "receipt_id": "bill_task_example",
    "task_id": "task_example",
    "settlement_status": "settled",
    "model": "seedance-2.0",
    "resolution": "480P",
    "tariff_variant": "480P-input",
    "tariff_revision": "sd-v1-b79a35d3a29af9af",
    "currency": "USD",
    "unit": "second",
    "base_unit_rate": "0.04319",
    "channel_multiplier": 1,
    "account_multiplier": 1.05,
    "effective_unit_rate": "0.0453495",
    "requested_output_seconds": 4,
    "estimated_output_seconds": 4,
    "estimated_billable_seconds": 9,
    "input_videos": [
      {
        "index": 0,
        "media_id": "media_example_hash",
        "measured_seconds": 4.042,
        "billable_seconds": 5,
        "duration_source": "apimaster_probe"
      }
    ],
    "billable_input_video_seconds": 5,
    "output": {
      "actual_seconds": 4,
      "billable_seconds": 4,
      "duration_source": "provider_reported"
    },
    "billable_seconds": 9,
    "rounding": {
      "amount_formula": "round(total_billable_seconds * effective_unit_rate / account_unit_usd) * account_unit_usd",
      "effective_unit_rate": "nearest_decimal_12_places_half_up",
      "input_video": "ceil_each_file_then_sum",
      "money": "nearest_account_unit_half_up",
      "output_video": "nearest_integer_half_up"
    },
    "estimated_amount": "0.408146",
    "reserved_amount": "0.408146",
    "additional_debit_amount": "0.000000",
    "final_debit_amount": "0.408146",
    "refunded_amount": "0.000000",
    "net_amount": "0.408146",
    "initial_quota_units": 204073,
    "final_quota_units": 204073,
    "account_unit_usd": "0.000002",
    "media_charges": {
      "audio": "0.000000",
      "image": "0.000000",
      "input_video_unrounded": "0.2267475",
      "other_reference": "0.000000",
      "output_video_unrounded": "0.181398"
    },
    "final_debit_may_exceed_estimate": true,
    "created_at": 1790949024,
    "settled_at": 1790949213
  },
  "completed_at": 1790949213,
  "created_at": 1790949024,
  "id": "task_example",
  "metadata": {
    "url": "https://apimaster.ai/v1/videos/task_example/content"
  },
  "model": "seedance-2.0",
  "object": "video",
  "progress": 100,
  "status": "completed",
  "task_id": "task_example",
  "usage": {
    "completion_tokens": 80770
  }
}

Ở ví dụ này, số tiền trừ ban đầu bằng chi phí cuối cùng, không có khoản trừ thêm hay hoàn tiền nào. billing.output.actual_seconds là thời lượng đầu ra; actual_time là thời gian xử lý. usage.completion_tokens không quyết định số tiền tính. Các trường tùy chọn có thể khác nhau tùy kênh.

GET https://apimaster.ai/v1/videos/task_example/billing trả về { "object": "video.billing_receipt", "billing": ... } với cùng đối tượng billing. Truy vấn tương thích GET https://apimaster.ai/v1/video/generations/task_example đặt nó dưới data.billing.

Các trường của phản hồi ngoài cùng

Trường Kiểu Ý nghĩa
object string Loại phản hồi: video.quote, video hoặc video.billing_receipt.
quote_id string Mã báo giá tham khảo; không phải khóa giữ giá hay ủy quyền tạo video.
expires_at integer Thời hạn báo giá tham khảo theo giây Unix, thường là thời điểm tạo cộng 300 giây.
binding boolean Hiện là false; báo giá không đảm bảo một số tiền cuối cùng.
funds_reserved boolean Hiện là false; báo giá không trừ hay giữ chỗ tiền.
billing object Chi tiết thanh toán được mô tả riêng bên dưới.
code integer Mã phản hồi khi gửi; 200 nghĩa là đã gửi, chưa phải hoàn thành.
data array Danh sách tác vụ đã gửi; truy vấn tương thích dùng object cho data.
data[].status string Trạng thái gửi, trong ví dụ này là submitted.
data[].task_id string Mã tác vụ công khai dùng cho các truy vấn tiếp theo.
id string Mã tác vụ công khai trong truy vấn hoàn thành.
task_id string Mã tác vụ, bằng id trong ví dụ này.
model string Tên model tạo video công khai.
status string Trạng thái tác vụ; completed nghĩa là đã tạo video xong. Kiểm tra billing.settlement_status để biết quyết toán cuối cùng.
progress number Phần trăm tiến độ; 100 khi hoàn thành trong ví dụ này.
actual_time number Số giây xử lý tác vụ, không phải thời lượng video đầu ra.
created_at integer Thời điểm tạo tác vụ theo giây Unix.
completed_at integer Thời điểm hoàn thành tác vụ theo giây Unix.
metadata object Siêu metadata kết quả tạo video.
metadata.url string URL tải nội dung video.
usage object Thông tin sử dụng của nhà cung cấp; có thể không có tùy kênh.
usage.completion_tokens integer Số token của nhà cung cấp; không dùng để tính phí theo giây cho bốn model này.

Sơ đồ thanh toán

Tất cả số tiền và đơn giá đều là chuỗi thập phân. Thời lượng là giây. Các trường có thể null sẽ là JSON null cho đến khi có giá trị.

Trường Kiểu Ý nghĩa
schema_version string Phiên bản sơ đồ thanh toán, trong ví dụ này là "1".
receipt_id string Mã biên nhận ổn định; không có trong báo giá.
task_id string Mã tác vụ công khai liên kết với biên nhận; không có trong báo giá.
settlement_status string estimate, pending, settled, refunded
model string Mã model công khai đã áp dụng.
resolution string Độ phân giải chuẩn hóa dùng để thanh toán.
tariff_variant string Hạng giá; -input cho biết có video tham chiếu, với tỷ lệ này áp dụng cho cả đầu vào và đầu ra.
tariff_revision string Dấu vân tay của model, hạng giá, đơn giá cơ sở đã cấu hình và phiên bản quy tắc thanh toán
currency string Tiền tệ tính phí, hiện là USD.
unit string Đơn vị của đơn giá; second nghĩa là trên mỗi giây.
base_unit_rate decimal string Đơn giá cơ sở mỗi giây đã cấu hình cho model và hạng giá này.
channel_multiplier number Hệ số tổng hợp định giá kênh đã áp dụng.
account_multiplier number Hệ số tài khoản/nhóm đã áp dụng, trong ví dụ này là 1,05.
effective_unit_rate decimal string Đơn giá mỗi giây đã áp dụng, được khoá cố định khi gửi và làm tròn tới 12 chữ số thập phân.
requested_output_seconds integer Thời lượng đầu ra yêu cầu; -1 khi thời lượng tự động
estimated_output_seconds integer Số giây đầu ra ước tính; thời lượng tự động được ước tính là 30 giây.
estimated_billable_seconds integer Tổng số giây có thể tính phí ước tính ban đầu, bao gồm video tham chiếu và đầu ra ước tính.
input_videos array Đo lường từng tệp tham chiếu phía máy chủ, theo thứ tự yêu cầu
input_videos[].index integer Vị trí video tham chiếu trong yêu cầu, bắt đầu từ không.
input_videos[].media_id string Băm media phạm vi tài khoản hoặc mã asset thuộc sở hữu; không trả về URL video tham chiếu.
input_videos[].measured_seconds number or null Thời lượng đo được trước khi làm tròn; có thể null với các asset đã lưu trong bộ nhớ đệm cũ
input_videos[].billable_seconds integer Thời lượng có thể tính phí đã làm tròn của tham chiếu này
input_videos[].duration_source string apimaster_probe hoặc apimaster_asset_cache
billable_input_video_seconds integer Tổng số giây có thể tính phí của từng tham chiếu
output object or null Thông tin thời lượng đầu ra cuối cùng, có sẵn sau khi quyết toán thành công
output.actual_seconds number or null Thời lượng đầu ra thực tế do báo cáo/đo được; null nếu không có
output.billable_seconds integer Số giây đầu ra thực sự dùng trong quyết toán
output.duration_source string provider_reported, apimaster_probe, provider_billable_seconds, requested_duration_fallback hoặc reservation_fallback
billable_seconds integer or null Tổng số giây đầu vào/đầu ra có thể tính phí cuối cùng
rounding object Quy tắc làm tròn đầu vào, đầu ra, tiền và công thức số tiền
estimated_amount decimal string Chi phí ước tính ban đầu, không phải số tiền cuối cùng hay đảm bảo phí tối đa.
reserved_amount decimal string Số tiền trừ vào tài khoản ban đầu khi gửi, bằng không với báo giá; không phải khoản giữ chỗ ủy quyền của ngân hàng.
additional_debit_amount decimal string Khoản trừ thêm khi chi phí cuối cùng vượt số tiền trừ ban đầu.
final_debit_amount decimal string or null Chi phí ròng cuối cùng của tác vụ sau khi điều chỉnh; bằng không sau khi hoàn tiền toàn bộ
net_amount decimal string or null Chi phí ròng cuối cùng của tác vụ sau khi điều chỉnh; bằng không sau khi hoàn tiền toàn bộ
refunded_amount decimal string Số tiền được trả lại từ số tiền trừ ban đầu; bằng số tiền trừ ban đầu nếu hoàn tiền toàn bộ.
initial_quota_units integer Số đơn vị tài khoản chính xác bị trừ ban đầu; bằng không với báo giá.
final_quota_units integer or null Số đơn vị tài khoản chính xác của chi phí ròng cuối cùng; null khi đang chờ, bằng không sau khi hoàn tiền toàn bộ.
account_unit_usd decimal string "0.000002" cho mỗi đơn vị tài khoản
media_charges object image, audio, other_reference bằng không theo bảng giá hiện tại; input_video_unrounded và output_video_unrounded tách các thành phần video trước khi làm tròn tiền cuối cùng
final_debit_may_exceed_estimate boolean true; ước tính không phải là giới hạn chi tiêu cứng
created_at integer Thời điểm tạo chi tiết thanh toán theo giây Unix.
settled_at integer or null Thời điểm quyết toán hoặc hoàn tiền cuối cùng theo giây Unix; null cho đến khi chốt.
Trường Kiểu Ý nghĩa
rounding.input_video string ceil_each_file_then_sum: làm tròn lên từng tệp đầu vào, sau đó cộng lại.
rounding.output_video string nearest_integer_half_up: làm tròn tới giây đầu ra gần nhất, các nửa giây làm tròn lên.
rounding.effective_unit_rate string nearest_decimal_12_places_half_up: làm tròn đơn giá hiệu lực tới 12 chữ số thập phân.
rounding.money string nearest_account_unit_half_up: làm tròn số tiền tổng hợp tới các đơn vị tài khoản.
rounding.amount_formula string Công thức số tiền tổng hợp cuối cùng; số tiền đầu vào và đầu ra không được làm tròn riêng lẻ.
media_charges.input_video_unrounded decimal string Thành phần video đầu vào trước khi làm tròn tiền.
media_charges.output_video_unrounded decimal string Thành phần video đầu ra trước khi làm tròn tiền.
media_charges.image decimal string Phụ phí ảnh riêng biệt, hiện bằng không.
media_charges.audio decimal string Phụ phí âm thanh riêng biệt, hiện bằng không.
media_charges.other_reference decimal string Phụ phí tham chiếu khác, hiện bằng không.

Tính lại chi phí cuối cùng

Với video tham chiếu, hạng giá đầu vào video áp dụng cho cả giây đầu ra và giây video tham chiếu. Ảnh và âm thanh không có phụ phí riêng theo bảng giá Seedance hiện tại. Số lượng token và chi phí nhà cung cấp không phải là đầu vào thanh toán.

  1. Làm tròn lên thời lượng đo được của từng video đầu vào một cách độc lập, sau đó cộng lại: input_seconds = sum(ceil(each_video_duration)).
  2. Làm tròn thời lượng đầu ra tới số giây nguyên gần nhất, với các nửa giây dương được làm tròn lên.
  3. Cộng số giây có thể tính phí của đầu vào và đầu ra.
  4. Nhân với effective_unit_rate, chia cho account_unit_usd, sau đó làm tròn tổng một lần tới đơn vị tài khoản nguyên gần nhất, với các nửa đơn vị dương được làm tròn lên.
final_quota_units = round_half_up(billable_seconds × effective_unit_rate / 0.000002)
net_amount = final_quota_units × 0.000002
net_amount = reserved_amount + additional_debit_amount - refunded_amount

Dùng phép tính thập phân. Không làm tròn riêng các thành phần tiền của đầu vào và đầu ra. Ví dụ, một tác vụ Seedance 2.0 4 giây ở 480P, không có video tham chiếu, với đơn giá cơ sở 0.07031, hệ số kênh 1 và hệ số tài khoản 1.05, có đơn giá hiệu lực là 0.0738255 và chi phí ròng là 0.295302 USD (147651 đơn vị tài khoản).

APIMaster đo thời lượng video tham chiếu thay vì tin các trường của client như input_seconds hoặc reference_seconds. duration/seconds được yêu cầu kiểm soát thời lượng đầu ra. Đối với đầu ra, quyết toán ưu tiên thời lượng do nhà cung cấp báo cáo và đo kiểm đầu ra khi cần; nếu không đo được, có thể dùng số giây có thể tính phí của nhà cung cấp hoặc thời lượng yêu cầu/giữ chỗ làm phương án dự phòng. Biên nhận ghi rõ nguồn. Phương án dự phòng không bao giờ được dán nhãn là thời lượng thực tế đo được một cách độc lập. Các asset đã lưu sẵn hoặc các bản nháp kế thừa từ trước có thể thiếu chi tiết đo lường từng tệp đầy đủ.

actual_time trong phản hồi video là thời gian xử lý tác vụ, không phải thời lượng video đầu ra. usage.completion_tokens, khi có, chỉ mang tính tham khảo.

Lỗi và hoàn tiền

Lỗi tác vụ của nhà cung cấp và thời gian chờ 24 giờ cho tác vụ chưa hoàn thành đã cấu hình sẽ kích hoạt hoàn tiền toàn bộ tự động. Biên nhận của chúng vẫn có thể lấy được và hiển thị refunded với số tiền ròng bằng không sau khi hoàn tiền thành công. Lỗi truy vấn/mạng tạm thời không hoàn tiền hay hủy tác vụ ngay lập tức; việc xử lý sẽ được thử lại.

Một lỗi gửi đã xác nhận không bị tính phí sẽ được hoàn tiền. Kết quả gửi không rõ ràng sẽ được giữ để đối soát tự động (lần đối soát bất đồng bộ đầu tiên sau khoảng 20 phút; các kết quả vẫn chưa rõ sau 24 giờ sẽ được hoàn tiền trong quá trình đối soát). Nếu việc gửi không tạo ra một tác vụ công khai, sẽ không có biên nhận liên kết tác vụ cho lần thử đó. Báo giá không phải là giữ chỗ và không cần giải phóng.

Không có điểm cuối (endpoint) hủy Seedance công khai. Ngắt kết nối hoặc dừng truy vấn không hủy tác vụ. Các kiểm tra trạng thái tác vụ ngăn việc truy vấn lặp lại áp dụng cùng một quyết toán/hoàn tiền hoàn thành lần nữa, trong khi chính endpoint biên nhận chỉ đọc. Đây không phải là bảo đảm exactly-once tuyệt đối cho mọi lỗi hạ tầng; các thao tác tài chính đang chờ không được coi là đã chốt.

Seedance: gửi bất biến và khôi phục yêu cầu