Pay an invoice with transfer

Pays a specific Invoice using a direct transfer of the specified asset from the sender's address. The invoice represents a digital record of payment obligation, and this operation transfers the required asset amount (in sparks) to the invoice's target address.

📘 Learn more about invoices.

Request Endpoint

POST /odata/v1.0/Invoices({key})/PayWithTransfer

Parameters

Parameter

Type

Description

Mandatory

key

string($uuid)

The unique identifier of the invoice to pay.

Request Body

Content type: application/json — Specifies the sender address initiating the payment.

Parameter

Type

Description

Mandatory

senderAddress

string

Wallet address which will pay the invoice. Must have enough units of the asset.

Example Request

POST /Invoices(68c6abdb-0650-46d5-7d33-08da44a68d8c)/PayWithTransfer

Content-Type: application/json

In EVM-compatible networks (e.g., Sparknet, Ethereum, and Polygon), the "SenderAddress" is 42 characters long. In non-EVM networks, the address length may differ. For example, on Internet Computer, it is 63 characters.

{
  "senderAddress": "0xe0450ce1e2ef73b15514ae6a003b90d0ebac8835"
}

Response Body

Content type: application/json — Returns details of the blockchain transaction created for invoice payment.

Parameter

Description

Id

Transaction ID in TEOS system.

State

State of the transaction.

BlockchainTransactionId

ID of the transaction on the blockchain.

CorrelationId

Correlation ID for tracking across services.

Type

Type of the transaction (e.g., ActivateAsset).

OnCreated

Timestamp when transaction was created.

OnUpdated

Timestamp when transaction was last updated.

OnSubmitted

Timestamp when transaction was submitted to blockchain.

OnCommitted

Timestamp when transaction was committed on blockchain.

OnConfirmed

Timestamp when transaction was confirmed on blockchain.

OnRevokedByBlockchain

Timestamp if transaction was revoked by blockchain.

OnRevokedByUser

Timestamp if transaction was revoked by user.

OnRevokedByTxServer

Timestamp if transaction was revoked by transaction server.

SignedBy

Entity that signed the transaction.

CreatedBy

ID of the user who created the transaction.

GasPrice

Gas price used for the blockchain transaction.

GasUsed

Gas used by the blockchain transaction.

DataAsJson

Additional transaction data in JSON format.

SigningParametersAsJson

JSON containing parameters used for signing.

Example Response Body

{
  "Id": "C0D34D73-6FD3-40F2-A7E1-08D9412448F7",
  "State": "3",
  "BlockchainTransactionId": "0x748ac47e7226cae0e4e13373375f33ab9e4d43ef29d85d233162a7e7e913703b",
  "CorrelationId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "Type": "ActivateAsset",
  "OnCreated": "2025-10-07T07:48:55.206Z",
  "OnUpdated": "2025-10-07T07:48:55.206Z",
  "OnSubmitted": "2025-10-07T07:48:55.206Z",
  "OnCommitted": "2025-10-07T07:48:55.206Z",
  "OnConfirmed": "2025-10-07T07:48:55.206Z",
  "OnRevokedByBlockchain": "2025-10-07T07:48:55.206Z",
  "OnRevokedByUser": "2025-10-07T07:48:55.206Z",
  "OnRevokedByTxServer": "2025-10-07T07:48:55.206Z",
  "SignedBy": "string",
  "CreatedBy": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "GasPrice": "string",
  "GasUsed": "string",
  "DataAsJson": "string",
  "SigningParametersAsJson": "string"
}

Response Codes

Code

Description

202

Invoice payment transaction accepted.

400

Bad request, invalid data or insufficient asset balance.

401

Unauthorized.

404

Invoice not found.

Last updated

Was this helpful?