MoMo · Authentication Profile

Momo Authentication

Authentication

MoMo declares 7 security scheme(s) across its OpenAPI definitions.

PaymentsMobile PaymentsFintechDigital WalletPayment GatewayQR PaymentsDisbursementBuy Now Pay LaterE-CommerceVietnam
Methods: Schemes: 7 OAuth flows: API key in:

Security Schemes

signature
scheme: HMAC-SHA256
encryption
scheme: RSA
encryption
scheme: AES
X-API-KEY apiKey
· in: header ()
oauth2-like
oauth2
signature
scheme: SHA256withRSA

Source

Authentication Profile

Raw ↑
generated: '2026-08-26'
method: searched
source: >-
  https://developers.momo.vn/v3/docs/payment/api/other/signature/,
  https://developers.momo.vn/v3/docs/payment/api/other/RSA/,
  https://developers.momo.vn/v3/docs/payment/api/other/AES/,
  https://developers.momo.vn/v3/docs/payment/onboarding/integration-process/,
  https://developers.momo.vn/v3/docs/business-page/start/,
  https://developers.momo.vn/v3/docs/voucher-distribution/integration-documentation/,
  https://developers.momo.vn/v3/docs/app-center/development-guideline/components-api-sdk/open-api/api-specifications/
note: >-
  Derived from MoMo's published documentation, not from a securitySchemes block —
  MoMo publishes no OpenAPI. Each of MoMo's four public APIs uses a DIFFERENT
  authentication model, which is the single most important fact for an integrator
  or an agent: credentials, header names and signing algorithms do not carry
  across them.
credential_issuance:
  portal: https://business.momo.vn/
  portal_name: MoMo for Business (M4B)
  process: >-
    Register a merchant profile, integrate against the test environment, complete
    UAT, verify the account, then request production credentials. Production keys
    are issued after MoMo review, not self-serve.
  environments_have_separate_keys: true
schemes:
- id: aio-hmac-signature
  api: momo:aio-payment-gateway
  type: signature
  scheme: HMAC-SHA256
  location: body
  fields:
    partnerCode: Business account's unique identity
    accessKey: Server access key
    secretKey: Used to create the digital signature (never transmitted)
    signature: HMAC-SHA256 over an alphabetically ordered key1=value1&key2=value2 string
  signed_payload: >-
    A canonical string of the request's fields sorted a-z, e.g.
    accessKey=$accessKey&amount=$amount&description=$description&orderId=$orderId&partnerCode=$partnerCode&requestId=$requestId&transId=$transId
    for the refund operation. The exact field list differs per operation and is
    published on each operation's reference page.
  transport: HTTPS POST, Content-Type application/json; charset=UTF-8
  docs: https://developers.momo.vn/v3/docs/payment/api/other/signature/
- id: aio-rsa
  api: momo:aio-payment-gateway
  type: encryption
  scheme: RSA
  purpose: >-
    Encrypt sensitive payload fields (card data on the non-hosted ATM flow,
    tokenisation binding data) with a MoMo-issued public key.
  docs: https://developers.momo.vn/v3/docs/payment/api/other/RSA/
- id: aio-aes
  api: momo:aio-payment-gateway
  type: encryption
  scheme: AES
  purpose: >-
    Decrypt the AES-wrapped callbackToken returned by the tokenisation binding
    and subscription flows.
  docs: https://developers.momo.vn/v3/docs/payment/api/other/AES/
- id: business-page-api-key
  api: momo:business-page-openapi
  type: apiKey
  in: header
  name: X-API-KEY
  companion_field: Partner Id
  scoped: true
  scope_model: >-
    The X-API-KEY is bound to the permission groups granted to the partner in the
    MoMo for Business portal — page management and setup, content/posts, messaging,
    reporting, customer care. A key only reaches the endpoints its granted groups
    cover.
  docs: https://developers.momo.vn/v3/docs/business-page/start/
- id: voucher-oauth-client-credentials
  api: momo:voucher-distribution
  type: oauth2-like
  flow: client_credentials
  token_endpoint: POST {environment-domain}/authentication/login
  request_fields:
    clientId: Identifier provided by MoMo
    clientSecret: Secret provided by MoMo
  token_lifetime_ms: 86400000
  token_lifetime_human: 24 hours
  presented_as: Authorization header, Bearer token
  header_note: >-
    MoMo's own documentation names the header "Authentication" in the request
    header table while describing it as a Bearer token in the prose — a genuine
    ambiguity in the published contract, recorded here as-is rather than resolved.
  additional_required_header:
    X-Request-Id: Unique UUID per request
  docs: https://developers.momo.vn/v3/docs/voucher-distribution/integration-documentation/
- id: open-platform-jwt
  api: momo:mini-app-open-api
  type: oauth2
  standard: 'Described by MoMo as "based on the industry standard OAuth2.0 authorization mechanism"'
  grant: authorization-code-like
  steps:
  - The Mini App calls the getUserAuth Mini API to obtain an authCode (a long-lived JWT, 90-day expiry)
  - The partner backend exchanges authCode for an accessToken (a short-lived JWT, 30-minute expiry) at GET /gateway/open/v1/oauth/accessToken
  - The accessToken is presented as Authorization on subsequent Open API calls and must never be returned to the Mini App client
  token_lifetimes:
    authCode: 90 days
    accessToken: 30 minutes
  token_endpoint: https://openapi.momo.vn/gateway/open/v1/oauth/accessToken
  test_token_endpoint: https://api.mservice.com.vn/openapi/gateway/open/v1/oauth/accessToken
  docs: https://developers.momo.vn/v3/docs/app-center/development-guideline/components-api-sdk/open-api/catalog-functions/
- id: open-platform-signature
  api: momo:mini-app-open-api
  type: signature
  scheme: SHA256withRSA
  header: OP-Signature
  companion_header: M-Timestamp
  construction: Base64UrlEncode(SHA256withRSA(data + M-Timestamp + openSecretKey))
  keys:
    openSecretKey: Unique per Mini App, provided by Open Platform, mixed into the signature
    openPrivateKey: RSA private key used to sign requests and decrypt responses
    openPublicKey: RSA public key used to verify responses and encrypt the AES symmetric key
  key_rotation: >-
    Newly generated keys are NOT applied immediately — they take effect
    automatically after 7 days (168 hours), or right away if the developer
    explicitly approves them in Mini App Center. A rollback to the previous keys
    is available. This is a published, dated rotation policy, which is unusual.
  payload_encryption:
    scheme: AES symmetric key, RSA-wrapped
    key_header: requestKey
    flag_header: encrypted
    get_parameter: data
  docs: https://developers.momo.vn/v3/docs/app-center/development-guideline/components-api-sdk/open-api/open-api-security/
network_controls:
  ip_allowlist:
    note: >-
      MoMo publishes the source and destination IP addresses for both
      environments so merchants can firewall them. This is a real, published
      network control, not inferred.
    sandbox:
      incoming: [210.245.113.71]
      outgoing: [118.69.210.244, 118.68.171.198]
    production:
      incoming: [118.69.212.158]
      outgoing: [118.69.210.244, 116.103.110.134, 14.161.2.38]
    source: https://developers.momo.vn/v3/docs/payment/onboarding/integration-process/
not_published:
- No OpenAPI securitySchemes block exists — MoMo publishes no machine-readable spec.
- No OAuth 2.0 discovery document (/.well-known/oauth-authorization-server) on any host.
- No OpenID Connect discovery document on any host.
- No mutual TLS requirement is documented.
- No published scope strings for the Open Platform accessToken; access is governed by user consent roles (see scopes/momo-scopes.yml).

Work with this as data

Every security artifact here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for security posture

4 MCP tools reach this
  • find_securityBrowse and filter every security artifact in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This security artifact
curl "https://apis.io/api/v1/security/momo-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.