x/paymsg
ISO 20022-shaped credit transfers between institutions that governance has approved, each leaving a queryable statement entry.
Transactions
MsgApplyParticipant
/blockchain.paymsg.v1.MsgApplyParticipant
Signed by the creator field.
ApplyParticipant defines the ApplyParticipant RPC.
| Field | Type | Description |
|---|---|---|
creator |
string | |
code |
string | |
name |
string |
MsgApproveParticipant
/blockchain.paymsg.v1.MsgApproveParticipant
Signed by the authority field.
ApproveParticipant defines the ApproveParticipant RPC. It is authority-gated (the x/gov module account) and approves or rejects a pending participant application submitted via MsgApplyParticipant.
| Field | Type | Description |
|---|---|---|
authority |
string | authority is the address that controls the module (defaults to x/gov unless overwritten). |
participant |
string | |
approve |
bool |
MsgRegisterCustomer
/blockchain.paymsg.v1.MsgRegisterCustomer
Signed by the participant field.
RegisterCustomer records that an account banks with the signing participant, which is what entitles a payment from that account to name the participant as its instructing agent.
| Field | Type | Description |
|---|---|---|
participant |
string | participant is the approved institution, and the only signer that may claim or disclaim an account as its customer. |
customer |
string | |
registered |
bool | registered false removes the relationship, so a participant can end one without governance being involved. |
MsgSendPayment
/blockchain.paymsg.v1.MsgSendPayment
Signed by the debtor field.
SendPayment defines the SendPayment RPC.
| Field | Type | Description |
|---|---|---|
debtor |
string | |
end_to_end_id |
string | |
instructing_participant |
string | |
instructed_participant |
string | |
creditor |
string | |
denom |
string | |
amount |
string | |
purpose_code |
string | |
remittance_information |
string |
MsgUpdateParams
/blockchain.paymsg.v1.MsgUpdateParams
Signed by the authority field.
UpdateParams defines a (governance) operation for updating the module parameters. The authority defaults to the x/gov module account.
| Field | Type | Description |
|---|---|---|
authority |
string | authority is the address that controls the module (defaults to x/gov unless overwritten). |
params |
Params | NOTE: All parameters must be supplied. |
Queries
GetApprovedParticipant
GET /yamale/blockchain/paymsg/v1/approved_participant/{participant}
ListApprovedParticipant Queries a list of ApprovedParticipant items.
Request:
| Field | Type | Description |
|---|---|---|
participant |
string |
Response:
| Field | Type | Description |
|---|---|---|
approved_participant |
ApprovedParticipant |
GetParticipantApplication
GET /yamale/blockchain/paymsg/v1/participant_application/{creator}
ListParticipantApplication Queries a list of ParticipantApplication items.
Request:
| Field | Type | Description |
|---|---|---|
creator |
string |
Response:
| Field | Type | Description |
|---|---|---|
participant_application |
ParticipantApplication |
GetPaymentRecord
GET /yamale/blockchain/paymsg/v1/payment_record/{instructing_participant}/{end_to_end_id}
ListPaymentRecord Queries a list of PaymentRecord items.
Request:
| Field | Type | Description |
|---|---|---|
end_to_end_id |
string | |
instructing_participant |
string | instructing_participant scopes the id. End-to-end ids are unique per instructing party in ISO 20022, not globally, so the id alone does not identify a payment. |
Response:
| Field | Type | Description |
|---|---|---|
payment_record |
PaymentRecord |
ListApprovedParticipant
GET /yamale/blockchain/paymsg/v1/approved_participant
ListApprovedParticipant defines the ListApprovedParticipant RPC.
Request:
| Field | Type | Description |
|---|---|---|
pagination |
PageRequest |
Response:
| Field | Type | Description |
|---|---|---|
approved_participant |
repeated ApprovedParticipant | |
pagination |
PageResponse |
ListParticipantApplication
GET /yamale/blockchain/paymsg/v1/participant_application
ListParticipantApplication defines the ListParticipantApplication RPC.
Request:
| Field | Type | Description |
|---|---|---|
pagination |
PageRequest |
Response:
| Field | Type | Description |
|---|---|---|
participant_application |
repeated ParticipantApplication | |
pagination |
PageResponse |
ListPaymentRecord
GET /yamale/blockchain/paymsg/v1/payment_record
ListPaymentRecord defines the ListPaymentRecord RPC.
Request:
| Field | Type | Description |
|---|---|---|
pagination |
PageRequest |
Response:
| Field | Type | Description |
|---|---|---|
payment_record |
repeated PaymentRecord | |
pagination |
PageResponse |
Params
GET /yamale/blockchain/paymsg/v1/params
Parameters queries the parameters of the module.
Response:
| Field | Type | Description |
|---|---|---|
params |
Params | params holds all the parameters of this module. |
State
ApprovedParticipant
ApprovedParticipant defines the ApprovedParticipant message.
| Field | Type | Description |
|---|---|---|
participant |
string | |
code |
string | |
name |
string |
Customer
Customer is an account an approved participant acts for.
One participant per customer, mirroring the arrangement it describes: an account holder's payment service provider is a single institution, and allowing several would reintroduce the ambiguity about who instructed a payment that this record exists to remove.
| Field | Type | Description |
|---|---|---|
customer |
string | |
participant |
string |
ParticipantApplication
ParticipantApplication defines the ParticipantApplication message.
| Field | Type | Description |
|---|---|---|
creator |
string | |
status |
string | |
code |
string | |
name |
string |
PaymentRecord
PaymentRecord defines the PaymentRecord message.
| Field | Type | Description |
|---|---|---|
end_to_end_id |
string | |
instructing_participant |
string | |
instructed_participant |
string | |
debtor |
string | |
creditor |
string | |
denom |
string | |
amount |
string | |
purpose_code |
string | |
remittance_information |
string | |
block_height |
uint64 |
Errors
Every way a transaction to this module can be rejected.
| Code | Name | Message |
|---|---|---|
| 1100 | ErrInvalidSigner |
expected gov account as only signer for proposal message |
| 1101 | ErrApplicationExists |
a participant application already exists for this address |
| 1102 | ErrApplicationNotFound |
participant application not found |
| 1103 | ErrApplicationNotPending |
participant application is not pending |
| 1104 | ErrNotApprovedParticipant |
address is not an approved participant |
| 1105 | ErrPaymentExists |
a payment with this end-to-end id already exists |
| 1106 | ErrInvalidAmount |
invalid coin amount |
| 1107 | ErrNotACustomer |
the debtor does not bank with the instructing participant |
| 1108 | ErrInvalidPaymentField |
payment field is missing or outside its ISO 20022 limit |