Create a payment
Draft API Preview for the MorphosisBlock Payment API. This operation is a contract proposal. It is not a live merchant endpoint.

Authorizations

X-Morphosis-Signature
string
header
required

Morphosis HMAC v1 request authentication. Every API request includes the five X-Morphosis-* headers documented on each operation.

Build the canonical string by joining these values with newline characters:

  1. v1
  2. Uppercase HTTP method
  3. Request path and query string
  4. Unix timestamp in seconds
  5. Unique nonce
  6. Base64url-encoded SHA-256 digest of the exact request body bytes

Sign the UTF-8 canonical string with HMAC-SHA-256 and encode the result using unpadded base64url.

Headers

X-Morphosis-Signature-Version
string
required

Signature contract version.

Allowed value: "v1"
X-Morphosis-Key-Id
string
required

Public identifier for the merchant signing key.

Required string length: 1 - 128
Pattern: ^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$
X-Morphosis-Timestamp
string
required

Unix timestamp in whole seconds.

Pattern: ^[0-9]{10}$
X-Morphosis-Nonce
string
required

Unique, single-use request nonce.

Required string length: 16 - 128
Pattern: ^[A-Za-z0-9._~-]+$
X-Morphosis-Signature
string
required

Unpadded base64url HMAC-SHA-256 signature.

Pattern: ^[A-Za-z0-9_-]{43}$
Idempotency-Key
string
required

Merchant-generated identifier for one logical payment creation. Keep the key unchanged when safely repeating the same HTTP request.

Required string length: 16 - 128
Pattern: ^[A-Za-z0-9][A-Za-z0-9._~-]{15,127}$

Body

application/json
requested_amount
object
required

An exact monetary amount represented without floating-point numbers. decimal and minor_units must identify the same value at the currency's defined precision.

external_reference
string

Merchant order or invoice reference.

Required string length: 1 - 128
Example:

"merchant-order-20260730-001"

metadata
object

Merchant-defined string values returned unchanged.

Example:

Response

Payment created.

A successfully created payment with payer instructions. An unresolved 202 response uses the base Payment schema and may not have instructions yet.

payment_id
string
required
Pattern: ^pay_[A-Za-z0-9]{20,40}$
Example:

"pay_01K1DRAFT8F7Z6K5Q4N3M2P1A0"

status
enum<string>
required

Current payment lifecycle state.

  • pending: Awaiting a definitive payment outcome.
  • submission_unknown: Creation outcome requires retrieval; do not create a replacement payment.
  • paid: The exact expected payment has been confirmed.
  • denied: The payment was rejected.
  • cancelled: The payment was cancelled before completion.
  • review_required: The payment requires manual review.
Available options:
pending,
submission_unknown,
paid,
denied,
cancelled,
review_required
requested_amount
object
required

An exact monetary amount represented without floating-point numbers. decimal and minor_units must identify the same value at the currency's defined precision.

payment_instructions
object
required

Instructions shown to the payer when available.

environment
string
required

Sandbox / TRON Shasta preview environment.

Allowed value: "sandbox"
Example:

"sandbox"

created_at
string<date-time>
required
Example:

"2026-07-30T15:10:00Z"

updated_at
string<date-time>
required
Example:

"2026-07-30T15:12:30Z"

external_reference
string
Required string length: 1 - 128
Example:

"merchant-order-20260730-001"

metadata
object

Merchant-defined string values returned unchanged.

Example: