> ## Documentation Index
> Fetch the complete documentation index at: https://docs.moove.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Moove API Keys

> Tạo một khóa API có giới hạn phạm vi cho Moove API, sao chép nó một lần, và thu hồi vĩnh viễn khi bạn đã xong.

Tạo một khóa, sao chép nó một lần, dùng nó để gọi Moove API.

<Info>
  **Chỉ trên web**, tại [moove.xyz/dashboard/api-keys](https://www.moove.xyz/dashboard/api-keys). Không có bản tương đương trên di động.
</Info>

## Tôi tạo một khóa API thế nào?

<Steps>
  <Step title="Mở Quản lý → Khóa API">
    Trên bảng điều khiển web.
  </Step>

  <Step title="Đặt tên cho nó">
    Một cái tên bạn sẽ nhận ra sau sáu tháng — dịch vụ hoặc môi trường mà nó dành cho.
  </Step>

  <Step title="Chọn một agent">
    **Moove Receive Agent** là agent đang tồn tại. Nó mở rộng thành những phạm vi mà agent đó cần.
  </Step>

  <Step title="Sao chép khóa">
    <Warning>
      Khóa dạng văn bản thuần được hiển thị **một lần**, lúc tạo. Hãy sao chép ngay và cất nó trong trình quản lý bí mật của bạn. Đóng hộp thoại mà chưa sao chép thì khóa đó không dùng được — hãy tạo một khóa khác.
    </Warning>
  </Step>
</Steps>

Base URL là `https://api.moove.xyz`.

## Moove Agents, không phải phạm vi thô

Bạn chọn một **agent**, không phải một chuỗi quyền. "Moove Receive Agent" là đơn vị mà một người bán có thể hình dung được; `payment_link:create` thì không.

| Agent                   | Trạng thái         | Phạm vi nó cấp                             |
| ----------------------- | ------------------ | ------------------------------------------ |
| **Moove Receive Agent** | **Đang hoạt động** | `payment_link:create`, `payment_link:read` |
| Moove Send Agent        | Sắp ra mắt         | —                                          |
| Moove Swap Agent        | Sắp ra mắt         | —                                          |
| Moove Ramp Agent        | Sắp ra mắt         | —                                          |

Ba agent sắp ra mắt hiện ra ở trạng thái vô hiệu. Chọn một trong số đó sẽ tạo ra một khóa không cấp gì cả, nên bộ chọn không cho bạn làm vậy.

## Một khóa API làm được gì & không làm được gì

<Note>
  Một khóa là một **bản thu hẹp phạm vi của chính bạn**. Nó hành động với tư cách tài khoản của bạn và chỉ làm được một tập con những gì bạn làm được.

  **Không có endpoint nào chuyển tiền.** Một liên kết thanh toán luôn quyết toán vào ví mặc định của chính bạn, bằng token của ví đó — bên gọi không thể chỉ định một đích đến. Một khóa bị lộ có thể tạo ra các yêu cầu trả tiền cho *bạn*. Nó không thể trả cho bất kỳ ai khác.
</Note>

Một khóa cũng không thể tạo ra một khóa khác. Việc quản lý khóa chỉ xác thực theo phiên, nên một khóa bị xâm phạm không thể tự nâng quyền.

## Tôi giữ một khóa an toàn thế nào?

<Warning>
  * Cất nó trong một trình quản lý bí mật hoặc một biến môi trường. Đừng bao giờ để trong mã nguồn.
  * Đừng bao giờ dán nó vào một prompt, một cuộc trò chuyện, một issue hay một ảnh chụp màn hình.
  * Dùng một khóa riêng cho mỗi dịch vụ, để thu hồi một khóa không kéo sập những cái còn lại.
  * Thu hồi bất kỳ khóa nào bạn không chắc chắn. Tạo một khóa mới chỉ mất vài giây.
</Warning>

## Tôi có thể có bao nhiêu khóa?

Tối đa **10 khóa đang hoạt động** cho mỗi tài khoản. Tạo cái thứ mười một và yêu cầu bị từ chối với `TOO_MANY_API_KEYS` — hãy thu hồi một khóa bạn không còn dùng trước đã.

<Tip>
  Cái trần đó là lý do để giới hạn phạm vi khóa theo từng tích hợp thay vì theo từng lần triển khai. Một khóa cho mỗi dịch vụ bạn thực sự chạy thì dễ hình dung hơn, và dễ thu hồi hơn khi có gì đó thay đổi.
</Tip>

## Tôi thu hồi một khóa thế nào?

<Steps>
  <Step title="Mở menu của khóa">
    Trong **Quản lý → Khóa API**, mở menu **…** trên hàng của khóa và chọn **Thu hồi**.
  </Step>

  <Step title="Xác nhận">
    Nhấn **Thu hồi** một lần nữa để xác nhận. Khóa ngừng hoạt động ngay lập tức.
  </Step>
</Steps>

<Warning>
  **Thu hồi là vĩnh viễn.** Không có chuyện hoàn tác thu hồi. Bản văn bản thuần chưa bao giờ được lưu, nên một khóa đã thu hồi sẽ không bao giờ dùng lại được kể cả khi bản ghi được khôi phục. Hãy cấp một khóa mới thay vào đó.
</Warning>

## Tôi dùng một khóa thế nào?

Gửi nó trong header `X-API-Key` ở mọi yêu cầu.

```bash theme={null}
curl -sS -X POST "https://api.moove.xyz/v1/payment-link" \
  -H "X-API-Key: $MOOVE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "toAmount": "49.99" }'
```

[Xác thực →](/api-reference/authentication)

## Trước lệnh gọi đầu tiên của bạn

API từ chối tạo liên kết cho một tài khoản không thể nhận thanh toán. Hãy chắc rằng bạn đã nhận một [Moove Handle](/vi-vn/brand/moove-handle) và đặt một ví mặc định với một [token quyết toán](/vi-vn/concepts/settlement-and-auto-routing) — nếu không bạn sẽ nhận về một `409`.

## Nên đọc gì tiếp theo

<CardGroup cols={3}>
  <Card title="Xác thực" icon="lock" href="/api-reference/authentication">
    Header đó hoạt động thế nào.
  </Card>

  <Card title="Moove Agentic Payments" icon="sparkles" href="/vi-vn/transact/moove-agentic-payments">
    Để một công cụ AI làm phần tích hợp.
  </Card>

  <Card title="Moove Payment Links API" icon="link" href="/api-reference/moove-receive/moove-payment-links">
    Toàn bộ các endpoint.
  </Card>
</CardGroup>

Có phạm vi, thu hồi được, của bạn. Tiền của bạn. Nước đi của bạn.
