Yamale docs ← back to the site

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