NetworkService

This service is used by provider to interact with the Network, e.g. push quotes and initiate payments.

All methods of this service are idempotent, meaning they are safe to retry and multiple calls with the same parameters will have no additional effect.

Method NameRequest TypeResponse TypeDescription
UpdateQuoteUpdateQuoteRequestUpdateQuoteResponseUsed by the provider to publish pay-in and pay-out quotes (FX rates) into the network. These quotes include tiered pricing bands and an expiration timestamp.
GetQuoteGetQuoteRequestGetQuoteResponseRequest the best available quote for a payout in a specific currency, for a given amount. If the payout quote exists, but the credit limit is exceeded, this quote will not be considered.
CreatePaymentCreatePaymentRequestCreatePaymentResponseSubmit a request to create a new payment for the specified pay-out currency. QuoteId is the optional parameter. If the quoteID is specified, it must be a valid quoteId that was previously returned by the GetPayoutQuote method. If the quoteId is not specified, the network will try to find a suitable quote for the payout currency and amount, same way as GetPayoutQuote rpc.
ConfirmPayoutConfirmPayoutRequestConfirmPayoutResponseInform the network that a payout has been completed. This endpoint is called by the payout provider, specifying the payment ID and payout ID, which was provided when the payout request was made to this provider.
CompleteManualAmlCheckCompleteManualAmlCheckRequestCompleteManualAmlCheckResponsePay-out provider reports the result of manual AML check. This endpoint is called after the manual AML check is completed. The network will find the new best quotes for the payment and will return the updated settlement/payout amount along with the updated quotes in the response.

Requests And Response Types

CompleteManualAmlCheckRequest

FieldTypeLabelDescription
payment_iduint64
approvedCompleteManualAmlCheckRequest.Approved
rejectedCompleteManualAmlCheckRequest.Rejected

CompleteManualAmlCheckRequest.Approved

This message has no fields defined.

CompleteManualAmlCheckRequest.Rejected

FieldTypeLabelDescription
reasonstring

CompleteManualAmlCheckResponse

FieldTypeLabelDescription
approvedCompleteManualAmlCheckResponse.Approved
rejectedCompleteManualAmlCheckResponse.Rejected

CompleteManualAmlCheckResponse.Approved

FieldTypeLabelDescription
pay_out_amounttzero.v1.common.Decimalamount in currency of the payout This is the updated amount that should be paid out to the recipient.
settlement_amounttzero.v1.common.Decimal
pay_out_quote_idint64unique identifier of the pay-out quote

CompleteManualAmlCheckResponse.Rejected

Rejected means that the updated quotes were rejected by pay-in provider, and the payout provider should not proceed with the payout.

This message has no fields defined.

ConfirmPayoutRequest

FieldTypeLabelDescription
payment_iduint64payment id assigned by the network, this is the same payment id that was provided in the PayoutRequest
payout_iduint64payout id assigned by the payout provider, this is the same payout id that was provided in the PayoutRequest
receipttzero.v1.common.PaymentReceiptoptionalPayment receipt might contain metadata about payment recognizable by pay-in provider.

ConfirmPayoutResponse

This message has no fields defined.

CreatePaymentRequest

FieldTypeLabelDescription
payment_client_idstringunique client generated id for this payment
amountPaymentAmountpayment amount - should be either pay-out amount or settlement amount
currencystringpay-out currency
payment_detailstzero.v1.common.PaymentDetailspay-out payment details
quote_idQuoteIdoptionalif specified, must be a valid quoteId that was previously returned by the GetPayoutQuote method otherwise last available quote will be used
travel_rule_dataCreatePaymentRequest.TravelRuleDataoptionaltravel rule data

CreatePaymentRequest.TravelRuleData

FieldTypeLabelDescription
originatorivms101.Personrepeatedthe natural or legal person that requests payment with originating provider
beneficiaryivms101.Personrepeatedthe natural or legal person or legal arrangement who is identified by the originator as the receiver of the requested payment.

CreatePaymentResponse

FieldTypeLabelDescription
payment_client_idstringclient generated id supplied in the request
acceptedCreatePaymentResponse.AcceptedAccepted response - means the payment was accepted, but the payout is not yet completed. This means, the network found a suitable quote for the payout currency and amount, and instructed the payout provider to process the payout.
settlement_requiredCreatePaymentResponse.SettlementRequiredSettlement required response - indicates that the payment requires settlement before payout completion.
failureCreatePaymentResponse.FailureFailure response - means the payment was not accepted, e.g. the network could not find a suitable quote for the payout currency and amount, or the credit limit is exceeded for the available quotes.

CreatePaymentResponse.Accepted

FieldTypeLabelDescription
payment_iduint64payment ID assigned by the network
settlement_amounttzero.v1.common.Decimal
payout_amounttzero.v1.common.Decimal
payout_provider_iduint32payout provider id with the best quote selected for this payment

CreatePaymentResponse.Failure

FieldTypeLabelDescription
reasonCreatePaymentResponse.Failure.Reason

CreatePaymentResponse.SettlementRequired

FieldTypeLabelDescription
payment_iduint64payment ID assigned by the network
settlement_amounttzero.v1.common.Decimal
payout_provider_iduint32payout provider id with the best quote selected for this payment

GetQuoteRequest

FieldTypeLabelDescription
amountPaymentAmountpayment amount - must be either pay-out amount or settlement amount
pay_out_currencystringISO 4217 currency code, e.g. EUR, GBP, etc. in which the payout should be made
pay_out_methodtzero.v1.common.PaymentMethodTypepayment method to use for the payout, e.g. bank transfer, card, etc.
quote_typeQuoteTypetype of the quote, e.g. real-time

GetQuoteResponse

FieldTypeLabelDescription
successGetQuoteResponse.SuccessSuccess response - the network found a suitable quote for the provided parameters and with available credit or pre-settlement option. The returned quoteId can be used later to call the create payment endpoint.
failureGetQuoteResponse.FailureFailure response - means the quote was not found for the specified parameters, or provider limits would exceed by processing the payment amount with the specified amount.

GetQuoteResponse.Failure

FieldTypeLabelDescription
reasonGetQuoteResponse.Failure.Reason

GetQuoteResponse.Success

FieldTypeLabelDescription
ratetzero.v1.common.Decimalpay-out quote rate in settlement_currency/pay_out_currency, i.e. USD/pay_out_currency
expirationgoogle.protobuf.Timestampexpiration time of the payout quote
quote_idQuoteIdid of the payout quote
pay_out_amounttzero.v1.common.Decimalpay-out amount in pay-out currency if the quote from response is used
settlement_amounttzero.v1.common.Decimalsettlement amount in settlement currency if the quote from response is used

PaymentAmount

Payment amount could be specified either as settlement amount and then converted to corresponding amount of pay-out amount or as pay-out amount, so that the settlement amount is calculated accordingly

FieldTypeLabelDescription
pay_out_amounttzero.v1.common.DecimalAmount in the pay-out currency
settlement_amounttzero.v1.common.DecimalSettlement amount in the settlement currency

QuoteId

FieldTypeLabelDescription
quote_idint64unique identifier of the quote within the specified provider
provider_idint32provider id of the quote

UpdateQuoteRequest

Base currency is always USD, so the quotes are always in USD/currency format.

FieldTypeLabelDescription
pay_outUpdateQuoteRequest.QuoterepeatedZero or more quotes for pay-out operations, each quote must have a unique currency, and one or more bands, with the unique client_quote_id for each band.
pay_inUpdateQuoteRequest.QuoterepeatedZero or more quotes for pay-in operations, each quote must have a unique currency, and one or more bands, with the unique client_quote_id for each band.

UpdateQuoteRequest.Quote

FieldTypeLabelDescription
currencystringBRL, EUR, GBP, etc. (ISO 4217 currency code)
quote_typeQuoteType
payment_methodtzero.v1.common.PaymentMethodTypePayment method must be specified
bandsUpdateQuoteRequest.Quote.Bandrepeatedlist of bands for this quote
expirationgoogle.protobuf.Timestampexpiration time of the quote
timestampgoogle.protobuf.Timestamptimestamp quote was created

UpdateQuoteRequest.Quote.Band

FieldTypeLabelDescription
client_quote_idstringunique client generated id for this band
max_amounttzero.v1.common.Decimalmax amount of USD this quote is applicable for. Please look into documentation for valid amounts.
ratetzero.v1.common.DecimalUSD/currency rate

UpdateQuoteResponse

This message has no fields defined.

CreatePaymentResponse.Failure.Reason

NameNumberDescription
REASON_UNSPECIFIED0
REASON_QUOTE_NOT_FOUND10No matching quote for the specified payout currency found or provider limits would exceed by processing this payment
REASON_CREDIT_OR_PREDEPOSIT_REQUIRED20Payments with amount in pay out currency require available credit or pre-deposit

GetQuoteResponse.Failure.Reason

NameNumberDescription
REASON_UNSPECIFIED0
REASON_QUOTE_NOT_FOUND10No matching quote par for the specified payout currency found or provider limits would exceed by processing this payment

QuoteType

NameNumberDescription
QUOTE_TYPE_UNSPECIFIED0
QUOTE_TYPE_REALTIME1real-time quote must be valid at least for 30 seconds (TBD)