v1OpenAPI 3.1.0

MakePay Merchant Account API

Merchant account surface for hosted crypto checkout, payment links, subscriptions, customers, settlement settings, and webhooks.

This is the MakePay merchant surface of the MakeCrypto API. Use it from a server backend to create payment links, reconcile checkout state, manage customers and subscriptions, read settlement settings, and inspect webhook delivery attempts.

Backwards compatibility is preserved across published v1 routes. Existing SDKs and plugins can keep their versioned URLs unchanged. Unversioned /api/partner/... requests resolve internally to the current v1 handlers, without an HTTP redirect. API secrets and webhook secrets are shown once and should stay in your backend secret manager. OAuth integrations can use scoped access instead of distributing company-wide API credentials.

Server
https://www.makecrypto.io/api/partner/v1

Current-version alias: https://www.makecrypto.io/api/partner

Authentication
Server integrations use a key ID/secret pair or a scoped OAuth token. Native OAuth tokens are DPoP-bound and require a fresh proof on every request.API key or OAuth

Authentication

Server integrations use a key ID/secret pair or a scoped OAuth token. Native OAuth tokens are DPoP-bound and require a fresh proof on every request.

Headers
x-makecrypto-key-idMAKEPAY_API_KEY_ID
x-makecrypto-key-secretMAKEPAY_API_SECRET

Webhooks

Configure callback URLs so your backend is notified when payment or subscription status changes. This is the recommended production alternative to polling once checkout is live.

  • Delivery - MakePay sends JSON POST requests and retries failed deliveries up to ten times at five-minute intervals.
  • Signing - verify x-makepay-signature where v1 = HMAC-SHA256(secret, "{timestamp}.{rawBody}")and reject timestamps outside a small tolerance window.
  • De-duplication - use x-makepay-delivery-id or the payload deliveryId before applying side effects.

Operation reference

Endpoints

18 endpointsShell examplesJSON schemas

Send payment request email

Send the hosted payment link to a customer email address.

Body

requiredapplication/json

Request

emailstringrequiredbuyer@example.com

Responses

application/json

The request completed successfully.

SendPaymentRequestResponse

okbooleanrequiredtrue
emailstring (email)requiredbuyer@example.com
paymentLinkPaymentRequestLinkrequired
idstring (uuid)required3a85f64-5717-4562-b3fc-2c963f66afa6
uidstringrequired01hzy4k6p4w9y2x7e2z7n8a2xm
donation_slugstring | nulloptionalnull
link_typestring | nulloptionalone_time
statusstringrequiredactive
payloadPaymentLinkPayloadrequired
publicUrlstring (uri)requiredhttps://makepay.io/payment/01hzy4k6p4w9y2x7e2z7n8a2xm
POST/api/partner/v1/makepay/payment-links/{uid}/send-request-email
curl -X POST "https://www.makecrypto.io/api/partner/v1/makepay/payment-links/PAYMENT_LINK_UID/send-request-email" \
  -H "x-makecrypto-key-id: MAKEPAY_API_KEY_ID" \
  -H "x-makecrypto-key-secret: MAKEPAY_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
  "email": "buyer@example.com"
}'
Successful response
{
  "ok": true,
  "email": "buyer@example.com",
  "paymentLink": {
    "id": "3a85f64-5717-4562-b3fc-2c963f66afa6",
    "uid": "01hzy4k6p4w9y2x7e2z7n8a2xm",
    "donation_slug": null,
    "link_type": "one_time",
    "status": "active",
    "payload": {
      "title": "Website order #1042",
      "description": "Checkout for order #1042",
      "amount": "129.99",
      "fiatCurrency": "USD",
      "currency": "USDT",
      "asset": "ETH.USDT-0xdac17f958d2ee523a2206206994597c13d831ec7",
      "runtimeMode": "merchant_target_net_v2",
      "billingVersion": "v2",
      "merchantName": "Merchant Co",
      "merchantPaymentLinkTheme": "system",
      "customerEmail": "buyer@example.com",
      "orderId": "order_1042",
      "skipQuoteAcceptance": true,
      "metadata": {
        "source": "api"
      }
    },
    "publicUrl": "https://makepay.io/payment/01hzy4k6p4w9y2x7e2z7n8a2xm"
  }
}
Successful response

List subscriptions

Read MakePay subscription schedules and generated cycles.

Body

noneapplication/json
This request does not require a JSON body.

Responses

application/json

The request completed successfully.

ListSubscriptionsResponse

companyIdstring (uuid)required8d15bb78-d0f8-45ef-88d7-2a1f1f79644b
subscriptionsarray Subscription[]required
GET/api/partner/v1/makepay/subscriptions
curl "https://www.makecrypto.io/api/partner/v1/makepay/subscriptions" \
  -H "x-makecrypto-key-id: MAKEPAY_API_KEY_ID" \
  -H "x-makecrypto-key-secret: MAKEPAY_API_SECRET" \
  -H "Accept: application/json"
Successful response
{
  "companyId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
  "subscriptions": [
    {
      "id": "f30e6a6b-acde-4c2d-82f1-9a1224fca9d2",
      "uid": "sub_premium_001",
      "companyAccountId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
      "status": "active",
      "customerEmail": "buyer@example.com",
      "label": "Premium plan",
      "description": "Monthly subscription",
      "amountUsd": "49.99",
      "settlementAsset": "ETH.USDT-0xdac17f958d2ee523a2206206994597c13d831ec7",
      "cadence": "monthly",
      "billingIntervalUnit": "month",
      "billingIntervalCount": 1,
      "startAt": "2026-04-20T10:00:00.000Z",
      "timezone": "Asia/Dubai",
      "metadata": {
        "clientId": "client_1042"
      },
      "createdAt": "2026-04-20T10:00:00.000Z",
      "updatedAt": "2026-04-20T10:00:00.000Z",
      "cycles": [
        {
          "id": "1138ef25-6b0f-4247-a5fb-39a122c5881b",
          "subscriptionId": "f30e6a6b-acde-4c2d-82f1-9a1224fca9d2",
          "companyAccountId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
          "sequence": 0,
          "dueAt": "2026-04-20T10:00:00.000Z",
          "amountUsd": "49.99",
          "paymentLinkId": "3a85f64-5717-4562-b3fc-2c963f66afa6",
          "paymentLinkUid": "01hzy4k6p4w9y2x7e2z7n8a2xm",
          "status": "invoice_created"
        }
      ]
    }
  ]
}
Successful response

Create subscription

Create a recurring subscription. Omit startAt to make the first due date now.

Body

requiredapplication/json

Request

amountUsdstringrequired49.99
customerEmailstringrequiredbuyer@example.com
labelstringrequiredPremium plan
descriptionstringrequiredMonthly subscription
timezonestringrequiredAsia/Dubai
cadencestringrequiredmonthly
sendPaymentRequestEmailbooleanrequiredtrue
subscriptionIdstringrequiredsub_premium_001
clientIdstringrequiredclient_1042
returnRedirectstringrequiredhttps://merchant.example/subscriptions/1042
successRedirectstringrequiredhttps://merchant.example/subscriptions/1042/success
failRedirectstringrequiredhttps://merchant.example/subscriptions/1042/failed
underpaymentPercentThresholdintegerrequired0
overpaymentPercentThresholdnumberrequired0.5

Responses

application/json

The request completed successfully.

CreateSubscriptionResponse

okbooleanrequiredtrue
companyIdstring (uuid)required8d15bb78-d0f8-45ef-88d7-2a1f1f79644b
subscriptionCreatedSubscriptionrequired
cycleSubscriptionCyclerequired
paymentLinkCreatedPaymentLinkrequired
idstring (uuid)required3a85f64-5717-4562-b3fc-2c963f66afa6
uidstringrequired01hzy4k6p4w9y2x7e2z7n8a2xm
donation_slugstring | nulloptionalnull
link_typestring | nulloptionalone_time

Allowed:"one_time""deposit""donation""subscription_invoice"

sourcestring | nulloptionalapi
statusstringrequiredactive
amountstring | nullrequired129.99
fiatAmountstring | nullrequired129.99
fiatCurrencystring | nullrequiredUSD
currencystring | nulloptionalUSDT
assetstring | nulloptionalETH.USDT-0xdac17f958d2ee523a2206206994597c13d831ec7
titlestring | nulloptionalWebsite order #1042
labelstring | nulloptionalWebsite order #1042
descriptionstring | nulloptionalCheckout for order #1042
orderIdstring | nulloptionalorder_1042
customerEmailstring (email) | nulloptionalbuyer@example.com
clientIdstring | nulloptionalnull
metadataMetadatarequired
payloadPaymentLinkPayloadrequired
latestSessionPaymentSession | nullrequired
timelineEventsarray PaymentTimelineEvent[]required
publicUrlstring (uri)requiredhttps://makepay.io/payment/01hzy4k6p4w9y2x7e2z7n8a2xm
created_atstring (date-time)required2026-04-19T00:00:00.000Z
updated_atstring (date-time) | nulloptional2026-04-19T00:00:00.000Z
expires_atstring (date-time) | nulloptional2026-04-19T12:00:00.000Z
dashboardUrlstring (uri) | nullrequiredhttps://www.makecrypto.io/home/makepay/payment-links?orderUid=01hzy4k6p4w9y2x7e2z7n8a2xm
POST/api/partner/v1/makepay/subscriptions
curl -X POST "https://www.makecrypto.io/api/partner/v1/makepay/subscriptions" \
  -H "x-makecrypto-key-id: MAKEPAY_API_KEY_ID" \
  -H "x-makecrypto-key-secret: MAKEPAY_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
  "amountUsd": "49.99",
  "customerEmail": "buyer@example.com",
  "label": "Premium plan",
  "description": "Monthly subscription",
  "timezone": "Asia/Dubai",
  "cadence": "monthly",
  "sendPaymentRequestEmail": true,
  "subscriptionId": "sub_premium_001",
  "clientId": "client_1042",
  "returnRedirect": "https://merchant.example/subscriptions/1042",
  "successRedirect": "https://merchant.example/subscriptions/1042/success",
  "failRedirect": "https://merchant.example/subscriptions/1042/failed",
  "underpaymentPercentThreshold": 0,
  "overpaymentPercentThreshold": 0.5
}'
Successful response
{
  "ok": true,
  "companyId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
  "subscription": {
    "id": "f30e6a6b-acde-4c2d-82f1-9a1224fca9d2",
    "uid": "sub_premium_001",
    "companyAccountId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
    "status": "active",
    "customerEmail": "buyer@example.com",
    "label": "Premium plan",
    "description": "Monthly subscription",
    "amountUsd": "49.99",
    "settlementAsset": "ETH.USDT-0xdac17f958d2ee523a2206206994597c13d831ec7",
    "cadence": "monthly",
    "billingIntervalUnit": "month",
    "billingIntervalCount": 1,
    "startAt": "2026-04-20T10:00:00.000Z",
    "timezone": "Asia/Dubai",
    "metadata": {
      "clientId": "client_1042"
    },
    "createdAt": "2026-04-20T10:00:00.000Z",
    "updatedAt": "2026-04-20T10:00:00.000Z"
  },
  "cycle": {
    "id": "1138ef25-6b0f-4247-a5fb-39a122c5881b",
    "subscriptionId": "f30e6a6b-acde-4c2d-82f1-9a1224fca9d2",
    "companyAccountId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
    "sequence": 0,
    "dueAt": "2026-04-20T10:00:00.000Z",
    "amountUsd": "49.99",
    "paymentLinkId": "3a85f64-5717-4562-b3fc-2c963f66afa6",
    "paymentLinkUid": "01hzy4k6p4w9y2x7e2z7n8a2xm",
    "status": "invoice_created"
  },
  "paymentLink": {
    "id": "3a85f64-5717-4562-b3fc-2c963f66afa6",
    "uid": "01hzy4k6p4w9y2x7e2z7n8a2xm",
    "donation_slug": null,
    "link_type": "one_time",
    "source": "api",
    "status": "active",
    "amount": "129.99",
    "fiatAmount": "129.99",
    "fiatCurrency": "USD",
    "currency": "USDT",
    "asset": "ETH.USDT-0xdac17f958d2ee523a2206206994597c13d831ec7",
    "title": "Website order #1042",
    "label": "Website order #1042",
    "description": "Checkout for order #1042",
    "orderId": "order_1042",
    "customerEmail": "buyer@example.com",
    "clientId": null,
    "metadata": {
      "source": "api"
    },
    "payload": {
      "title": "Website order #1042",
      "description": "Checkout for order #1042",
      "amount": "129.99",
      "fiatCurrency": "USD",
      "currency": "USDT",
      "asset": "ETH.USDT-0xdac17f958d2ee523a2206206994597c13d831ec7",
      "runtimeMode": "merchant_target_net_v2",
      "billingVersion": "v2",
      "merchantName": "Merchant Co",
      "merchantPaymentLinkTheme": "system",
      "customerEmail": "buyer@example.com",
      "orderId": "order_1042",
      "skipQuoteAcceptance": true,
      "metadata": {
        "source": "api"
      }
    },
    "latestSession": null,
    "timelineEvents": [],
    "publicUrl": "https://makepay.io/payment/01hzy4k6p4w9y2x7e2z7n8a2xm",
    "created_at": "2026-04-19T00:00:00.000Z",
    "updated_at": "2026-04-19T00:00:00.000Z",
    "expires_at": "2026-04-19T12:00:00.000Z",
    "dashboardUrl": "https://www.makecrypto.io/home/makepay/payment-links?orderUid=01hzy4k6p4w9y2x7e2z7n8a2xm"
  }
}
Successful response

List customers

Read MakePay customer profiles for the API key's company.

Body

noneapplication/json
This request does not require a JSON body.

Responses

application/json

The request completed successfully.

ListCustomersResponse

companyIdstring (uuid)required8d15bb78-d0f8-45ef-88d7-2a1f1f79644b
customersarray Customer[]required
GET/api/partner/v1/makepay/customers
curl "https://www.makecrypto.io/api/partner/v1/makepay/customers" \
  -H "x-makecrypto-key-id: MAKEPAY_API_KEY_ID" \
  -H "x-makecrypto-key-secret: MAKEPAY_API_SECRET" \
  -H "Accept: application/json"
Successful response
{
  "companyId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
  "customers": [
    {
      "id": "b834dd77-69b8-41a9-a4b6-95bc9dd14c2d",
      "uid": "cus_01hzy4k6p4w9y2x7e2z7n8a2xm",
      "companyAccountId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
      "email": "buyer@example.com",
      "name": "Ada Lovelace",
      "clientId": "client_1042",
      "metadata": {
        "source": "api"
      },
      "createdAt": "2026-04-20T10:00:00.000Z",
      "updatedAt": "2026-04-20T10:00:00.000Z"
    }
  ]
}
Successful response

Upsert customer

Create or update a MakePay customer profile by email.

Body

requiredapplication/json

Request

emailstringrequiredbuyer@example.com
namestringrequiredAda Lovelace
clientIdstringrequiredclient_1042
metadataObjectrequired

Responses

application/json

The request completed successfully.

UpsertCustomerResponse

okbooleanrequiredtrue
companyIdstring (uuid)required8d15bb78-d0f8-45ef-88d7-2a1f1f79644b
customerCustomerrequired
POST/api/partner/v1/makepay/customers
curl -X POST "https://www.makecrypto.io/api/partner/v1/makepay/customers" \
  -H "x-makecrypto-key-id: MAKEPAY_API_KEY_ID" \
  -H "x-makecrypto-key-secret: MAKEPAY_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
  "email": "buyer@example.com",
  "name": "Ada Lovelace",
  "clientId": "client_1042",
  "metadata": {
    "source": "api"
  }
}'
Successful response
{
  "ok": true,
  "companyId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
  "customer": {
    "id": "b834dd77-69b8-41a9-a4b6-95bc9dd14c2d",
    "uid": "cus_01hzy4k6p4w9y2x7e2z7n8a2xm",
    "companyAccountId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
    "email": "buyer@example.com",
    "name": "Ada Lovelace",
    "clientId": "client_1042",
    "metadata": {
      "source": "api"
    },
    "createdAt": "2026-04-20T10:00:00.000Z",
    "updatedAt": "2026-04-20T10:00:00.000Z"
  }
}
Successful response

Create customer portal link

Generate a 24-hour signed MakePay customer portal URL for a stored customer.

Body

noneapplication/json
This request does not require a JSON body.

Responses

application/json

The request completed successfully.

CreateCustomerPortalResponse

okbooleanrequiredtrue
companyIdstring (uuid)required8d15bb78-d0f8-45ef-88d7-2a1f1f79644b
customerCustomerWithPortalrequired
expiresAtstring (date-time)required2026-04-21T10:00:00.000Z
POST/api/partner/v1/makepay/customers/{customerId}/portal
curl -X POST "https://www.makecrypto.io/api/partner/v1/makepay/customers/CUSTOMER_ID/portal" \
  -H "x-makecrypto-key-id: MAKEPAY_API_KEY_ID" \
  -H "x-makecrypto-key-secret: MAKEPAY_API_SECRET" \
  -H "Accept: application/json"
Successful response
{
  "ok": true,
  "companyId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
  "customer": {
    "id": "b834dd77-69b8-41a9-a4b6-95bc9dd14c2d",
    "uid": "cus_01hzy4k6p4w9y2x7e2z7n8a2xm",
    "companyAccountId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
    "email": "buyer@example.com",
    "name": "Ada Lovelace",
    "clientId": "client_1042",
    "metadata": {
      "source": "api"
    },
    "createdAt": "2026-04-20T10:00:00.000Z",
    "updatedAt": "2026-04-20T10:00:00.000Z",
    "urls": {
      "customerPortal": "https://makepay.io/billing?company=8d15bb78-d0f8-45ef-88d7-2a1f1f79644b&customer=cus_01hzy4k6p4w9y2x7e2z7n8a2xm&expires=1776765600&signature=8d1f..."
    }
  },
  "expiresAt": "2026-04-21T10:00:00.000Z"
}
Successful response

Read MakePay settings

Inspect settlement, callback, redirect, fee, and checkout policy settings.

Body

noneapplication/json
This request does not require a JSON body.

Responses

application/json

The request completed successfully.

ReadMakePaySettingsResponse

companyIdstring (uuid)required8d15bb78-d0f8-45ef-88d7-2a1f1f79644b
settingsMakePaySettingsrequired
GET/api/partner/v1/makepay/settings
curl "https://www.makecrypto.io/api/partner/v1/makepay/settings" \
  -H "x-makecrypto-key-id: MAKEPAY_API_KEY_ID" \
  -H "x-makecrypto-key-secret: MAKEPAY_API_SECRET" \
  -H "Accept: application/json"
Successful response
{
  "companyId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
  "settings": {
    "status": "active",
    "defaultDestinationAsset": "ETH.USDT-0xdac17f958d2ee523a2206206994597c13d831ec7",
    "settlementPriorities": [
      {
        "symbol": "USDT",
        "assetIdentifiers": [
          "ETH.USDT-0xdac17f958d2ee523a2206206994597c13d831ec7"
        ]
      }
    ],
    "feePaidBy": "merchant",
    "merchantSurchargePercent": 0.5,
    "callbackUrl": "https://merchant.example/webhooks/makepay",
    "returnRedirectUrl": "https://merchant.example/orders",
    "successRedirectUrl": "https://merchant.example/orders/success",
    "failureRedirectUrl": "https://merchant.example/orders/failed",
    "underpaymentPercentEnabled": true,
    "underpaymentPercentThreshold": 1,
    "overpaymentPercentThreshold": 1,
    "underpaymentFixedEnabled": true,
    "underpaymentFixedThreshold": 2,
    "refundAddressMode": "merchant_wallet",
    "skipQuoteAcceptance": true,
    "notificationPreferences": {
      "paymentReceived": {
        "inApp": true,
        "email": true,
        "browser": true
      },
      "paymentCompleted": {
        "inApp": true,
        "email": true,
        "browser": true
      },
      "emailRecipients": [
        "payments@merchant.example"
      ]
    },
    "webhookSecret": {
      "configured": true,
      "last4": "d1f0",
      "createdAt": "2026-04-19T00:00:00.000Z",
      "updatedAt": "2026-04-19T00:00:00.000Z"
    }
  }
}
Successful response

Update MakePay settings

Update callback URL, redirects, fee policy, checkout policy, or product state.

Body

requiredapplication/json

Request

statusstringrequiredactive
feePaidBystringrequiredmerchant
skipQuoteAcceptancebooleanrequiredtrue
merchantSurchargePercentnumberrequired0.5
callbackUrlstringrequiredhttps://merchant.example/webhooks/makepay
returnRedirectUrlstringrequiredhttps://merchant.example/orders
successRedirectUrlstringrequiredhttps://merchant.example/orders/success
failureRedirectUrlstringrequiredhttps://merchant.example/orders/failed

Responses

application/json

The request completed successfully.

UpdateMakePaySettingsResponse

okbooleanrequiredtrue
companyIdstring (uuid)required8d15bb78-d0f8-45ef-88d7-2a1f1f79644b
settingsMakePaySettingsrequired
PUT/api/partner/v1/makepay/settings
curl -X PUT "https://www.makecrypto.io/api/partner/v1/makepay/settings" \
  -H "x-makecrypto-key-id: MAKEPAY_API_KEY_ID" \
  -H "x-makecrypto-key-secret: MAKEPAY_API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
  "status": "active",
  "feePaidBy": "merchant",
  "skipQuoteAcceptance": true,
  "merchantSurchargePercent": 0.5,
  "callbackUrl": "https://merchant.example/webhooks/makepay",
  "returnRedirectUrl": "https://merchant.example/orders",
  "successRedirectUrl": "https://merchant.example/orders/success",
  "failureRedirectUrl": "https://merchant.example/orders/failed"
}'
Successful response
{
  "ok": true,
  "companyId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
  "settings": {
    "status": "active",
    "defaultDestinationAsset": "ETH.USDT-0xdac17f958d2ee523a2206206994597c13d831ec7",
    "settlementPriorities": [
      {
        "symbol": "USDT",
        "assetIdentifiers": [
          "ETH.USDT-0xdac17f958d2ee523a2206206994597c13d831ec7"
        ]
      }
    ],
    "feePaidBy": "merchant",
    "merchantSurchargePercent": 0.5,
    "callbackUrl": "https://merchant.example/webhooks/makepay",
    "returnRedirectUrl": "https://merchant.example/orders",
    "successRedirectUrl": "https://merchant.example/orders/success",
    "failureRedirectUrl": "https://merchant.example/orders/failed",
    "underpaymentPercentEnabled": true,
    "underpaymentPercentThreshold": 1,
    "overpaymentPercentThreshold": 1,
    "underpaymentFixedEnabled": true,
    "underpaymentFixedThreshold": 2,
    "refundAddressMode": "merchant_wallet",
    "skipQuoteAcceptance": true,
    "notificationPreferences": {
      "paymentReceived": {
        "inApp": true,
        "email": true,
        "browser": true
      },
      "paymentCompleted": {
        "inApp": true,
        "email": true,
        "browser": true
      },
      "emailRecipients": [
        "payments@merchant.example"
      ]
    },
    "webhookSecret": {
      "configured": true,
      "last4": "d1f0",
      "createdAt": "2026-04-19T00:00:00.000Z",
      "updatedAt": "2026-04-19T00:00:00.000Z"
    }
  }
}
Successful response

List destination assets

Read supported settlement assets for MakePay.

Body

noneapplication/json
This request does not require a JSON body.

Responses

application/json

The request completed successfully.

ListDestinationAssetsResponse

companyIdstring (uuid)required8d15bb78-d0f8-45ef-88d7-2a1f1f79644b
defaultDestinationAssetstring | nullrequiredETH.USDT-0xdac17f958d2ee523a2206206994597c13d831ec7
assetsarray DestinationAsset[]required
GET/api/partner/v1/makepay/destination-assets
curl "https://www.makecrypto.io/api/partner/v1/makepay/destination-assets" \
  -H "x-makecrypto-key-id: MAKEPAY_API_KEY_ID" \
  -H "x-makecrypto-key-secret: MAKEPAY_API_SECRET" \
  -H "Accept: application/json"
Successful response
{
  "companyId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
  "defaultDestinationAsset": "ETH.USDT-0xdac17f958d2ee523a2206206994597c13d831ec7",
  "assets": [
    {
      "assetIdentifier": "ETH.USDT-0xdac17f958d2ee523a2206206994597c13d831ec7",
      "chainCode": "ETH",
      "symbol": "USDT",
      "displayName": "Tether USD",
      "assetType": "erc20",
      "decimals": 6,
      "tokenReference": "0xdac17f958d2ee523a2206206994597c13d831ec7",
      "logoURI": "https://assets.makecrypto.io/tokens/usdt.svg",
      "isDefault": true
    }
  ]
}
Successful response

List webhook deliveries

Review MakePay payment and subscription webhook attempts and delivery state.

Body

noneapplication/json
This request does not require a JSON body.

Responses

application/json

The request completed successfully.

ListWebhookDeliveriesResponse

requestsarray WebhookDelivery[]required
GET/api/partner/v1/makepay/webhook-requests
curl "https://www.makecrypto.io/api/partner/v1/makepay/webhook-requests" \
  -H "x-makecrypto-key-id: MAKEPAY_API_KEY_ID" \
  -H "x-makecrypto-key-secret: MAKEPAY_API_SECRET" \
  -H "Accept: application/json"
Successful response
{
  "requests": [
    {
      "id": "a8909b0b-2735-44a1-9510-c6c95bad19c2",
      "deliveryId": "delivery_01j...",
      "deliveryGroupId": "delivery_group_01j...",
      "deliveryOrigin": "event",
      "attemptNumber": 1,
      "maxRetryAttempts": 10,
      "paymentLinkId": "3a85f64-5717-4562-b3fc-2c963f66afa6",
      "paymentLinkUid": "01hzy4k6p4w9y2x7e2z7n8a2xm",
      "paymentLinkLabel": "Website order #1042",
      "paymentLinkDescription": "Checkout for order #1042",
      "paymentLinkPublicUrl": "https://makepay.io/payment/01hzy4k6p4w9y2x7e2z7n8a2xm",
      "sessionId": "e74ccdb4-8dd1-48ad-8e0d-a324a3f798a1",
      "subscriptionId": null,
      "subscriptionUid": null,
      "eventType": "payment.status.updated",
      "paymentStatus": "complete",
      "previousPaymentStatus": "pending",
      "subscriptionStatus": null,
      "previousSubscriptionStatus": null,
      "callbackUrl": "https://merchant.example/webhooks/makepay",
      "requestMethod": "POST",
      "requestHeaders": {
        "content-type": "application/json"
      },
      "requestBody": {
        "eventType": "payment.status.updated"
      },
      "responseStatus": 200,
      "responseBody": "{\"ok\":true}",
      "responseBodyTruncated": false,
      "responseContentType": "application/json",
      "responseOk": true,
      "deliveryStatus": "succeeded",
      "durationMs": 184,
      "errorMessage": null,
      "nextRetryAt": null,
      "merchantNotifiedAt": "2026-04-19T00:05:00.000Z",
      "createdAt": "2026-04-19T00:05:00.000Z",
      "updatedAt": "2026-04-19T00:05:00.000Z"
    }
  ]
}
Successful response

Read current OAuth webhook subscription

Read the payment-webhook subscription isolated to the current OAuth grant. Signing secrets are never returned by reads.

Body

noneapplication/json
This request does not require a JSON body.

Responses

application/json

The request completed successfully.

GetOAuthWebhookSubscriptionResponse

companyIdstring (uuid)required8d15bb78-d0f8-45ef-88d7-2a1f1f79644b
subscriptionOAuthWebhookSubscription | nullrequired

One payment-webhook subscription isolated to an OAuth authorization grant. Full signing secrets are never returned in this object.

GET/api/partner/v1/makepay/webhook-subscriptions/current
curl "https://www.makecrypto.io/api/partner/v1/makepay/webhook-subscriptions/current" \
  -H "Authorization: DPoP MAKEPAY_OAUTH_ACCESS_TOKEN" \
  -H "DPoP: MAKEPAY_DPOP_PROOF" \
  -H "Accept: application/json"
Successful response
{
  "companyId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
  "subscription": {
    "id": "7f74e4ca-014e-4cf7-a17a-f8ef6f2eabf2",
    "oauthGrantId": "01c3075c-35f2-4afb-8461-603fb6b7f489",
    "companyId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
    "url": "https://api.shop.example/hooks/payment/makepay_makepay",
    "events": [
      "makepay.payment.*"
    ],
    "active": true,
    "status": "active",
    "description": "Medusa production store",
    "metadata": {
      "integration": "medusa",
      "installationId": "medusa_store_01hzy4k6p4w9y2x7e2z7n8a2xm"
    },
    "secretLast4": "d1f0",
    "secretCreatedAt": "2026-07-19T10:00:00.000Z",
    "secretUpdatedAt": "2026-07-19T10:00:00.000Z",
    "createdAt": "2026-07-19T10:00:00.000Z",
    "updatedAt": "2026-07-19T10:00:00.000Z"
  }
}
Successful response

Put current OAuth webhook subscription

Create, reactivate, update, or explicitly rotate the payment-webhook subscription owned by the current OAuth grant.

Body

requiredapplication/json

PutOAuthWebhookSubscriptionRequest

urlstring (uri)optionalhttps://api.shop.example/hooks/payment/makepay_makepay

Absolute public HTTPS callback URL. The aliases endpointUrl, callbackUrl, and webhookUrl are also accepted.

eventsarray string[]optional[ "makepay.payment.*" ]

One to 32 fully qualified makepay.payment.* event names. Defaults to the makepay.payment.* wildcard.

activebooleanoptional

Set false to disable the current subscription through PUT. DELETE is the clearer equivalent.

descriptionstringoptionalMedusa production store

Optional operator label, up to 500 characters.

metadataMetadataoptional

Merchant-defined values returned in dashboards and webhooks.

rotateSecretbooleanoptionalfalse

Set true to issue a new signing secret. The full secret is returned once in this response.

Responses

application/json

The request completed successfully.

PutOAuthWebhookSubscriptionResponse

okbooleanrequiredtrue
companyIdstring (uuid)required8d15bb78-d0f8-45ef-88d7-2a1f1f79644b
createdbooleanoptionaltrue
rotatedbooleanoptionalfalse
subscriptionOAuthWebhookSubscriptionrequired

One payment-webhook subscription isolated to an OAuth authorization grant. Full signing secrets are never returned in this object.

signingSecretstringoptionalmkwhsec_8d1f...d1f0

Returned only when a secret is created or explicitly rotated. Store it immediately.

PUT/api/partner/v1/makepay/webhook-subscriptions/current
curl -X PUT "https://www.makecrypto.io/api/partner/v1/makepay/webhook-subscriptions/current" \
  -H "Authorization: DPoP MAKEPAY_OAUTH_ACCESS_TOKEN" \
  -H "DPoP: MAKEPAY_DPOP_PROOF" \
  -H "Idempotency-Key: order_1042_mutation_v1" \
  -H "Content-Type: application/json" \
  -d '{
  "url": "https://api.shop.example/hooks/payment/makepay_makepay",
  "events": [
    "makepay.payment.*"
  ],
  "description": "Medusa production store",
  "metadata": {
    "integration": "medusa",
    "installationId": "medusa_store_01hzy4k6p4w9y2x7e2z7n8a2xm"
  },
  "rotateSecret": false
}'
Successful response
{
  "ok": true,
  "companyId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
  "created": true,
  "rotated": false,
  "subscription": {
    "id": "7f74e4ca-014e-4cf7-a17a-f8ef6f2eabf2",
    "oauthGrantId": "01c3075c-35f2-4afb-8461-603fb6b7f489",
    "companyId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
    "url": "https://api.shop.example/hooks/payment/makepay_makepay",
    "events": [
      "makepay.payment.*"
    ],
    "active": true,
    "status": "active",
    "description": "Medusa production store",
    "metadata": {
      "integration": "medusa",
      "installationId": "medusa_store_01hzy4k6p4w9y2x7e2z7n8a2xm"
    },
    "secretLast4": "d1f0",
    "secretCreatedAt": "2026-07-19T10:00:00.000Z",
    "secretUpdatedAt": "2026-07-19T10:00:00.000Z",
    "createdAt": "2026-07-19T10:00:00.000Z",
    "updatedAt": "2026-07-19T10:00:00.000Z"
  },
  "signingSecret": "mkwhsec_8d1f...d1f0"
}
Successful response

Disable current OAuth webhook subscription

Disable the current grant's payment-webhook subscription and erase its encrypted signing secret.

Body

noneapplication/json
This request does not require a JSON body.

Responses

application/json

The request completed successfully.

DeleteOAuthWebhookSubscriptionResponse

okbooleanrequiredtrue
companyIdstring (uuid)required8d15bb78-d0f8-45ef-88d7-2a1f1f79644b
subscriptionOAuthWebhookSubscription | nullrequired

One payment-webhook subscription isolated to an OAuth authorization grant. Full signing secrets are never returned in this object.

DELETE/api/partner/v1/makepay/webhook-subscriptions/current
curl -X DELETE "https://www.makecrypto.io/api/partner/v1/makepay/webhook-subscriptions/current" \
  -H "Authorization: DPoP MAKEPAY_OAUTH_ACCESS_TOKEN" \
  -H "DPoP: MAKEPAY_DPOP_PROOF" \
  -H "Idempotency-Key: order_1042_mutation_v1" \
  -H "Accept: application/json"
Successful response
{
  "ok": true,
  "companyId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
  "subscription": {
    "id": "7f74e4ca-014e-4cf7-a17a-f8ef6f2eabf2",
    "oauthGrantId": "01c3075c-35f2-4afb-8461-603fb6b7f489",
    "companyId": "8d15bb78-d0f8-45ef-88d7-2a1f1f79644b",
    "url": "https://api.shop.example/hooks/payment/makepay_makepay",
    "events": [
      "makepay.payment.*"
    ],
    "active": false,
    "status": "disabled",
    "description": "Medusa production store",
    "metadata": {
      "integration": "medusa",
      "installationId": "medusa_store_01hzy4k6p4w9y2x7e2z7n8a2xm"
    },
    "secretLast4": null,
    "secretCreatedAt": "2026-07-19T10:00:00.000Z",
    "secretUpdatedAt": "2026-07-19T11:00:00.000Z",
    "createdAt": "2026-07-19T10:00:00.000Z",
    "updatedAt": "2026-07-19T11:00:00.000Z"
  }
}
Successful response

List timezones

Read supported IANA timezone identifiers.

Body

noneapplication/json
This request does not require a JSON body.

Responses

application/json

The request completed successfully.

ListTimezonesResponse

timezonesarray string[]required[ "Asia/Dubai", "Europe/London", "UTC" ]

This route defines no application-level error responses.

GET/api/partner/v1/timezones
curl "https://www.makecrypto.io/api/partner/v1/timezones" \
  -H "Accept: application/json"
Successful response
{
  "timezones": [
    "Asia/Dubai",
    "Europe/London",
    "UTC"
  ]
}
Successful response

API Testing

Request credentials

Select a merchant, choose or create a MakePay API key, and enter its one-time secret. These settings apply to every Test Request control in the endpoint reference.

Back to endpoints
Request credentials
Setup required
Loading merchants and API keys...