IssuerCallbackService link
Issuer-implemented endpoint t-0 calls to reserve deposit addresses and obtain
the renderable QR payloads for an intent.
IssuerService link
t-0 endpoints the Issuer calls to report on-chain recognition, settlement,
and reservation expiry.
Requests And Response Types link
CreatePaymentInstructionsRequest link
| Field | Type | Label | Description |
|---|
| payment_intent_id | uint64 | | |
| acquirer_id | uint64 | | t-0’s stable id for the Acquirer; the Issuer resolves its settlement wallet from it. |
| amount_usdt | tzero.v1.common.Decimal | | Amount the reserved addresses should accept. |
| expires_at | google.protobuf.Timestamp | | Absolute moment t-0 requires the reservation held until, on t-0’s clock (t-0 sets a 60–120 second window in the MVP). |
CreatePaymentInstructionsResponse link
CreatePaymentInstructionsResponse.Failure link
CreatePaymentInstructionsResponse.Success link
| Field | Type | Label | Description |
|---|
| qr_options | QrOption | repeated | One option per chain the Issuer supports for this intent. |
| expires_at | google.protobuf.Timestamp | | Absolute expiry of the reservation. |
IssuerPaymentExpiredRequest link
PaymentExpired is also a method on AcquirerCallbackService in this flat
package, so the request/response carry a role prefix to avoid a colliding
PaymentExpiredRequest. Interim name: buf STANDARD RPC_REQUEST_STANDARD_NAME
accepts only bare PaymentExpiredRequest or the full
IssuerServicePaymentExpiredRequest, so this short form needs a lint
ignore at graduation (or rename the method).
IssuerPaymentExpiredResponse link
IssuerPaymentExpiredResponse.Accepted link
This message has no fields defined.
IssuerPaymentExpiredResponse.Rejected link
PaymentReceivedRequest link
PaymentReceivedResponse link
PaymentReceivedResponse.Accepted link
This message has no fields defined.
PaymentReceivedResponse.Rejected link
SettlementSentRequest link
| Field | Type | Label | Description |
|---|
| settlement_ref | string | | Issuer’s id for this USDt settlement; idempotency key, unique per Issuer. |
| amount_usdt | tzero.v1.common.Decimal | | |
| settlement | OnChainSettlementDetails | | On-chain transaction, chain, and registered destination wallet for this settlement. |
| settled_payment_intent_ids | uint64 | repeated | Intents this settlement clears; per-intent amounts are read from t-0’s ledger. |
| settled_at | google.protobuf.Timestamp | | |
SettlementSentResponse link
SettlementSentResponse.Accepted link
This message has no fields defined.
SettlementSentResponse.Rejected link
CreatePaymentInstructionsResponse.Failure.Reason link
| Name | Number | Description |
|---|
| REASON_UNSPECIFIED | 0 | |
| REASON_ISSUER_UNAVAILABLE | 10 | The Issuer is unavailable to allocate. |
| REASON_ADDRESS_POOL_EMPTY | 20 | No free one-time deposit addresses. |
| REASON_AMOUNT_OUT_OF_RANGE | 40 | The amount falls outside the acceptable range. |
IssuerPaymentExpiredResponse.Rejected.Reason link
| Name | Number | Description |
|---|
| REASON_UNSPECIFIED | 0 | |
| REASON_UNKNOWN_INTENT | 10 | payment_intent_id is one t-0 never opened. |
PaymentReceivedResponse.Rejected.Reason link
| Name | Number | Description |
|---|
| REASON_UNSPECIFIED | 0 | |
| REASON_INTENT_EXPIRED | 10 | Received after expires_at on t-0’s clock. |
| REASON_UNKNOWN_INTENT | 20 | No such intent exists. |
| REASON_AMOUNT_MISMATCH | 30 | amount_usdt is not exactly the intent’s stored amount. |
SettlementSentResponse.Rejected.Reason link
| Name | Number | Description |
|---|
| REASON_UNSPECIFIED | 0 | |
| REASON_ON_CHAIN_UNCONFIRMED | 10 | The on-chain transaction is not yet confirmed. |
| REASON_AMOUNT_MISMATCH | 20 | The confirmed amount does not equal amount_usdt or the covered intents’ sum. |
| REASON_WRONG_DESTINATION | 30 | destination_address (or its chain) is not the expected registered (chain, address) pair for the mode. |
| REASON_INTENT_NOT_SETTLEABLE | 40 | A listed intent is not in a settleable state (USDt mode: SETTLEMENT_PENDING; fiat mode: authorized). |