Skip to content

Accounts

Read the verification status and eligibility of the customers and corporates linked to your integration. The reasoning and the data boundary are explained in the accounts guide; this page states the shapes.

Both endpoints need account:read. That scope is granted only under a signed data processing agreement. See scopes.

Read a customer

GET/v1/customers/{customerId}account:readPlanned

Planned

This is part of the v1 contract and is documented ahead of release. It is not yet served in production. Build against it only once this notice is gone.

Returns the verification status and eligibility of one customer. Only customers linked to your integration can be read; any other customerId returns 404 NOT_FOUND, the same as one that does not exist. account:read requires a signed data processing agreement. Until one is on file the call returns 403 SCOPE_DENIED, even if the key was issued with the scope.

Path parameters

ParameterTypeNotes
customerIdstringThe opaque identifier MYRT assigned when the customer was linked to your integration
bash
curl https://sandbox-api.myrt.money/v1/customers/cus_9f2a3b4c \
  -H "Authorization: Bearer $MYRT_API_KEY"
ts
const res = await fetch(
  "https://sandbox-api.myrt.money/v1/customers/cus_9f2a3b4c",
  { headers: { Authorization: `Bearer ${process.env.MYRT_API_KEY}` } }
);
const customer = await res.json();
python
import os, requests

res = requests.get(
    "https://sandbox-api.myrt.money/v1/customers/cus_9f2a3b4c",
    headers={"Authorization": f"Bearer {os.environ['MYRT_API_KEY']}"},
    timeout=30,
)
customer = res.json()

Response 200 OK

json
{
  "ok": true,
  "customerId": "cus_9f2a3b4c",
  "accountType": "RETAIL",
  "verification": { "status": "VERIFIED", "level": "TIER_2", "verifiedAt": "2026-04-02T09:11:00.000Z" },
  "residency": { "countryCode": "MY", "isResident": true },
  "limits": {
    "currency": "MYR",
    "monthlyWithdrawalCap": "50000.00",
    "monthlyWithdrawalUsed": "12500.00",
    "monthlyWithdrawalRemaining": "37500.00"
  },
  "capabilities": { "canMint": true, "canRedeem": true, "canTransfer": true },
  "createdAt": "2026-04-01T02:20:14.000Z"
}

Response fields

FieldTypeDescription
okbooleantrue on success
customerIdstringThe identifier you supplied in the path
accountTypestringRETAIL or ENTERPRISE
verification.statusstringUNVERIFIED, PENDING, VERIFIED, REJECTED or SUSPENDED
verification.levelstringA tier label, for example TIER_2. New labels may appear; handle unknown values
verification.verifiedAtstring or nullISO 8601 UTC. null unless verification.status is VERIFIED
residency.countryCodestringISO 3166-1 alpha-2
residency.isResidentbooleantrue for a resident customer. A non-resident customer is limited to RM 100,000 per transaction on mint and redeem (FOREIGNER_LIMIT_EXCEEDED)
limits.currencystringThe currency the limit values are expressed in
limits.monthlyWithdrawalCapstringThe monthly withdrawal limit for this customer. Decimal string; see amounts
limits.monthlyWithdrawalUsedstringThe part of the limit already used this month. Redemptions count against it. Decimal string
limits.monthlyWithdrawalRemainingstringThe part of the limit still available this month. A redeem above it returns MONTHLY_WITHDRAWAL_LIMIT_EXCEEDED. Decimal string
capabilities.canMintbooleanWhether the customer can currently mint
capabilities.canRedeembooleanWhether the customer can currently redeem
capabilities.canTransferbooleanWhether the customer can currently transfer
createdAtstringISO 8601 UTC

Errors

CodeHTTPWhen
UNAUTHORIZED401Missing, malformed, unknown, revoked, expired or wrong-environment key
SCOPE_DENIED403Key lacks account:read, or no data processing agreement is on file
NOT_FOUND404The customer is not linked to your integration, or does not exist

See errors for the meaning of each code.

Read a corporate

GET/v1/corporates/{corporateId}account:readPlanned

Planned

This is part of the v1 contract and is documented ahead of release. It is not yet served in production. Build against it only once this notice is gone.

Returns the verification status and eligibility of one corporate. Only corporates linked to your integration can be read; any other corporateId returns 404 NOT_FOUND, the same as one that does not exist. account:read requires a signed data processing agreement. Until one is on file the call returns 403 SCOPE_DENIED, even if the key was issued with the scope.

Path parameters

ParameterTypeNotes
corporateIdstringThe identifier of a corporate linked to your integration, for example cor_71bd5e29
bash
curl https://sandbox-api.myrt.money/v1/corporates/cor_71bd5e29 \
  -H "Authorization: Bearer $MYRT_API_KEY"
ts
const res = await fetch(
  "https://sandbox-api.myrt.money/v1/corporates/cor_71bd5e29",
  { headers: { Authorization: `Bearer ${process.env.MYRT_API_KEY}` } }
);
const corporate = await res.json();
python
import os, requests

res = requests.get(
    "https://sandbox-api.myrt.money/v1/corporates/cor_71bd5e29",
    headers={"Authorization": f"Bearer {os.environ['MYRT_API_KEY']}"},
    timeout=30,
)
corporate = res.json()

Response 200 OK

json
{
  "ok": true,
  "corporateId": "cor_71bd5e29",
  "companyName": "Acme Sdn Bhd",
  "verification": { "status": "VERIFIED", "stage": "COMPLETE", "verifiedAt": "2026-05-18T03:44:00.000Z" },
  "jurisdiction": { "countryCode": "MY" },
  "industry": "Payments",
  "capabilities": { "canMint": true, "canRedeem": true, "canPayroll": true },
  "createdAt": "2026-05-02T01:02:03.000Z"
}

Response fields

FieldTypeDescription
okbooleantrue on success
corporateIdstringThe identifier you supplied in the path
companyNamestringCompany name
verification.statusstringUNVERIFIED, PENDING, VERIFIED, REJECTED or SUSPENDED
verification.stagestringA stage label, for example COMPLETE. Handle unknown values
verification.verifiedAtstring or nullISO 8601 UTC. null unless verification.status is VERIFIED
jurisdiction.countryCodestringISO 3166-1 alpha-2
industrystringThe industry the corporate operates in
capabilities.canMintbooleanWhether the corporate can currently mint
capabilities.canRedeembooleanWhether the corporate can currently redeem
capabilities.canPayrollbooleanWhether the corporate currently has the payroll capability
createdAtstringISO 8601 UTC

Errors

CodeHTTPWhen
UNAUTHORIZED401Missing, malformed, unknown, revoked, expired or wrong-environment key
SCOPE_DENIED403Key lacks account:read, or no data processing agreement is on file
NOT_FOUND404The corporate is not linked to your integration, or does not exist

See errors for the meaning of each code.

Never returned

By design, and permanently, these endpoints never return:

  • Email addresses or phone numbers
  • Legal names of individuals
  • National identity or passport numbers
  • Uploaded verification documents, or links to them
  • Residential or registered addresses
  • IP addresses, login history or device data
  • Internal identifiers
  • Wallet addresses other than the ones you supplied on your own orders
  • Any data about a party you did not onboard

A request for any other party returns 404 NOT_FOUND, the same as a party that does not exist. Identity attributes beyond what is shown on this page need a separate agreement with a separate legal basis under the Personal Data Protection Act of Malaysia. They are not part of the partner API.

MYRT is a 1:1 Ringgit-backed stablecoin on Ethereum.