name.ai
MoR — Merchant of Record

MoR order flow

You collect payment from your buyer on your own checkout. Once the buyer pays, you notify name.ai via POST /v1/orders. We transfer the domain to your registrar and issue a settlement statement. You remit our share net-45.

End-to-end flow

  1. 1
    Search inventoryBuyer searches your site → you call GET /domains/search → show available domains.
  2. 2
    Get a firm quoteCall POST /quotes to lock the price for 10 minutes. Returns a signed quote_id.
  3. 3
    Buyer pays youCharge the buyer on your own payment gateway (Stripe, Razorpay, etc.). Store your payment reference.
  4. 4
    Notify name.aiPOST /orders with the domain, sale_price_cents, external_payment_ref, quote_id, and buyer details. Idempotency-Key required.
  5. 5
    Admin delivers domainName.ai admin initiates the domain transfer to your registrar account. Status → TRANSFER_IN_PROGRESS → TRANSFER_COMPLETED.
  6. 6
    SettlementAt the next settlement run (1st/15th, net-45 days) you remit name.ai's share. Order status → SETTLED.
POST

/api/partner/v1/quotes

scope: buy

Lock the price for 10 minutes. Returns a signed quote_id that you pass to POST /orders.

Request
POST /api/partner/v1/quotes
Content-Type: application/json
X-NameAI-Key-Id: pk_live_xxx
X-NameAI-Timestamp: <ts>
X-NameAI-Nonce: <uuid>
X-NameAI-Signature: v1=<hmac>

{ "domain": "custodylawyer.com" }
Response 200
{
  "quote_id": "qt_01JXYZ...",
  "domain": "custodylawyer.com",
  "price_cents": 2500000,
  "currency": "USD",
  "expires_at": "2026-06-08T07:20:00Z"
}
POST

/api/partner/v1/orders

scope: buy

Notify name.ai that you have collected payment. Idempotency-Key is required — use the same key on retries of the same operation; generate a new one for new orders.

FieldRequiredDescription
domainYesDomain name, lowercase.
sale_price_centsYesAmount charged to buyer, in USD cents. Must match current listing price.
currencyYesMust be "USD".
external_payment_refYesYour payment gateway's charge/transaction ID for reconciliation.
quote_idRecommendedFrom POST /quotes. Locks the price and proves you held it.
buyer.emailYesBuyer's email address.
buyer.nameNoBuyer's full name (encrypted at rest).
buyer.countryNoISO 3166-1 alpha-2 country code.
buyer.ipNoBuyer IP for fraud scoring (hashed at rest).
metadataNoUp to 50 key/value pairs (keys ≤120 chars, values ≤500 chars).
Request
POST /api/partner/v1/orders
Content-Type: application/json
Idempotency-Key: ord_7f3a9b2c-...
X-NameAI-Key-Id: pk_live_xxx
X-NameAI-Timestamp: <ts>
X-NameAI-Nonce: <uuid>
X-NameAI-Signature: v1=<hmac>

{
  "domain": "custodylawyer.com",
  "sale_price_cents": 2500000,
  "currency": "USD",
  "external_payment_ref": "pi_3OkAbc...",
  "quote_id": "qt_01JXYZ...",
  "buyer": {
    "email": "buyer@example.com",
    "name": "Jane Doe",
    "country": "US",
    "ip": "1.2.3.4"
  }
}
Response 201
{
  "public_id": "ord_01JABC...",
  "status": "EXTERNALLY_PAID",
  "delivery": "awaiting_admin",
  "amount": 2500000,
  "currency": "USD",
  "transfer_method": "INTERNAL_PUSH",
  "manual_review_required": false
}
manual_review_required: true means the order was flagged by risk or credit controls. The domain will NOT be transferred until admin clears the hold. Monitor via GET /orders/{id} or the order.manual_review_cleared webhook.

Checking order status

Poll GET /api/partner/v1/orders/{public_id} or subscribe to webhooks (recommended) to track the transfer lifecycle.

GET /api/partner/v1/orders/ord_01JABC...
{
  "public_id": "ord_01JABC...",
  "domain": "custodylawyer.com",
  "status": "TRANSFER_COMPLETED",
  "sale_price_cents": 2500000,
  "currency": "USD",
  "buyer_email": "buyer@example.com",
  "created_at": "2026-06-08T07:00:00Z",
  "updated_at": "2026-06-08T09:15:00Z"
}

Order status lifecycle

EXTERNALLY_PAID
Sale recordedPartner has notified us. Awaiting admin-driven domain transfer.
TRANSFER_IN_PROGRESS
Transfer startedAdmin initiated the domain push to partner registrar.
TRANSFER_COMPLETED
Transfer doneDomain delivered. Settlement clock starts.
SETTLED
SettledPartner remitted name.ai share. Order closed.
REFUNDED
RefundedOrder cancelled/refunded.

Next: Settlement → · Webhooks & events →

Syndicate Partner API — MoR order flow — name.ai