Public interface definitions of Google APIs. Topics (grpc依赖)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

552 lines
17 KiB

// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.paymentgateway.issuerswitch.v1;
import "google/api/field_behavior.proto";
import "google/type/latlng.proto";
import "google/type/money.proto";
option csharp_namespace = "Google.Cloud.PaymentGateway.IssuerSwitch.V1";
option go_package = "cloud.google.com/go/paymentgateway/issuerswitch/apiv1/issuerswitchpb;issuerswitchpb";
option java_multiple_files = true;
option java_outer_classname = "CommonFieldsProto";
option java_package = "com.google.cloud.paymentgateway.issuerswitch.v1";
option php_namespace = "Google\\Cloud\\PaymentGateway\\IssuerSwitch\\V1";
option ruby_package = "Google::Cloud::PaymentGateway::IssuerSwitch::V1";
// A reference to uniquely identify an account according to India's UPI
// standards.
message AccountReference {
// IFSC of the account's bank branch.
string ifsc = 1;
// Output only. Type of account. Examples include SAVINGS, CURRENT, etc.
string account_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Unique number for an account in a bank and branch.
string account_number = 3;
}
// A participant in a payment settlement transaction processed by the issuer
// switch. The participant could either be the payer or the payee in the
// transaction.
message SettlementParticipant {
// Details about a payment settlement.
message SettlementDetails {
// Output only. The id for the settlement in the bank's backend system. In
// UPI, this maps to the approval reference number. This value will be
// present only if this API transaction's state is SUCCEEDED.
string backend_settlement_id = 1
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. A code indicating additional details about the settlement.
// In UPI, this maps to the response code.
string code = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. A code indicating additional details about the reversal of a
// settlement. In UPI, this maps to the reversal response code.
string reversal_code = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The amount settled as part of this API transaction. If the
// settlement had failed, then this value will be 0.00.
google.type.Money settled_amount = 4
[(google.api.field_behavior) = OUTPUT_ONLY];
}
// The participant information.
Participant participant = 1;
// Information about a merchant who is a participant in the payment. This
// field will be specified only if the participant is a merchant.
MerchantInfo merchant_info = 2;
// Output only. The mobile number of the participant.
string mobile = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Additional details about the payment settlement. Values will
// be populated depending on whether the settlement transaction succeeded or
// failed.
SettlementDetails details = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// A participant's device tags
message DeviceDetails {
// The payment application on the device.
string payment_app = 1;
// The capability of the device.
string capability = 2;
// The geo-code of the device.
google.type.LatLng geo_code = 3;
// The device's ID.
string id = 4;
// The device's IP address.
string ip_address = 5;
// The coarse location of the device.
string location = 6;
// The operating system on the device.
string operating_system = 7;
// The device's telecom provider.
string telecom_provider = 8;
// The type of device.
string type = 9;
}
// A participant in a transaction processed by the issuer switch.
message Participant {
// The type of the participant.
enum Persona {
// Unspecified persona.
PERSONA_UNSPECIFIED = 0;
// Participant is an entity.
ENTITY = 1;
// Participant is a person.
PERSON = 2;
}
// The payment address of the participant. In the UPI system, this will be the
// virtual payment address (VPA) of the participant.
string payment_address = 1;
// The persona of the participant.
Persona persona = 2;
// The name of the participant.
string user = 3;
// Output only. Unique identification of an account according to India's UPI
// standards.
AccountReference account = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The device info of the participant.
DeviceDetails device_details = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// A merchant entity participating in a payment settlement transaction.
message MerchantInfo {
// A unique identifier for the merchant.
string id = 1;
// The name of the merchant who is a party in the payment. Includes multiple
// possible names for the merchant.
MerchantName merchant = 2;
// Additional information about the merchant.
MerchantAdditionalInfo additional_info = 3;
}
// The name of a merchant who is a participant in a payment settlement
// transaction. Includes multiple possible names for the merchant.
message MerchantName {
// The brand name of the merchant.
string brand = 1;
// The merchant's legal name.
string legal = 2;
// The franchise name under which the merchant operates.
string franchise = 3;
}
// Additional merchant information specific to India's UPI requirements.
message MerchantAdditionalInfo {
// Indicates the merchant's type as a small or large merchant.
enum Type {
// Unspecified merchant type.
TYPE_UNSPECIFIED = 0;
// Large merchant.
LARGE = 1;
// Small merchant.
SMALL = 2;
}
// Indicates whether the merchant is an online or offline merchant.
enum Genre {
// Unspecified merchant genre.
GENRE_UNSPECIFIED = 0;
// Offline merchant
OFFLINE = 1;
// Online merchant.
ONLINE = 2;
}
// Indicates whether the merchant has been onboarded by a bank or an
// aggregator.
enum OnboardingType {
// Unspecified merchant onboarding type.
ONBOARDING_TYPE_UNSPECIFIED = 0;
// Onboarded by aggreagator.
AGGREGATOR = 1;
// Onboarded by bank.
BANK = 2;
// Onboarded by the UPI network.
NETWORK = 3;
// Onboarded by the TPAP.
TPAP = 4;
}
// Indicates the ownership type of the merchant.
enum OwnershipType {
// Unspecified merchant ownership type.
OWNERSHIP_TYPE_UNSPECIFIED = 0;
// Properietary ownership.
PROPRIETARY = 1;
// Partnership ownership.
PARTNERSHIP = 2;
// Public ownership.
PUBLIC = 3;
// Private ownership.
PRIVATE = 4;
// Other ownership model.
OTHERS = 5;
}
// Merchant Category Code (MCC) as specified by UPI. This is a four-digit
// number listed in ISO 18245 for retail financial services.
string category_code = 1;
// A unique identifier for the merchant store where the payment settlement
// transaction occurred.
string store_id = 2;
// A unique identifier for the POS terminal in the store where the payment
// settlement transaction occurred.
string terminal_id = 3;
// Indicates the type of merchant.
Type type = 4;
// Indicates the genre of the merchant.
Genre genre = 5;
// Indicates the merchant's onboarding type.
OnboardingType onboarding_type = 6;
// Indicates the merchant's owner type.
OwnershipType ownership_type = 7;
}
// The API type for a transaction. Every transaction processed by the issuer
// switch will be one of these API types.
enum ApiType {
// Unspecified API type.
API_TYPE_UNSPECIFIED = 0;
// Balance API. Maps to UPI's `BalEnq` API. This is a metadata
// transaction API.
BALANCE = 1;
// Check transaction status API. Maps to UPI's `ChkTxn` API. This is a
// metadata transaction API.
CHECK_STATUS = 2;
// Complaint API. Maps to UPI's `Complaint` API. This is a dispute and issue
// resolution API.
COMPLAINT = 3;
// Heart beat API. Maps to UPI's `Hbt` API. This is a metadata transaction
// API.
HEART_BEAT = 4;
// Initiate registration API. Maps to UPI's `Otp` API. This is a metadata
// transaction API.
INITIATE_REGISTRATION = 5;
// List accounts API. Maps to UPI's `ListAccount` API. This is a metadata
// transaction API.
LIST_ACCOUNTS = 6;
// Mandate API. Maps to UPI's `Mandate` API. This is a metadata transaction
// API.
MANDATE = 7;
// Mandate confirmation API. Maps to UPI's `MandateConfirmation` API. This is
// a metadata transaction API.
MANDATE_CONFIRMATION = 8;
// Payment settlement API. Maps to UPI's `Pay` API. This is a financial
// transaction API.
SETTLE_PAYMENT = 9;
// Update credentials API. Maps to UPI's `SetCre` API. This is a metadata
// transaction API.
UPDATE_CREDENTIALS = 10;
// Validate registration API. Maps to UPI's `RegMob` API. This is a metadata
// transaction API.
VALIDATE_REGISTRATION = 11;
// Validate customer API. Maps to UPI's `ValCust` API. This is a validation
// API.
VALIDATE_CUSTOMER = 12;
// Voucher API. Maps to UPI's `Voucher` API.
VOUCHER = 13;
// Voucher confirmation API. Maps to UPI's `VoucherConfirmation` API.
VOUCHER_CONFIRMATION = 14;
// Activation API. Maps to UPI's `Activation` API.
ACTIVATION = 15;
}
// The type of a transaction. Every transaction processed by the issuer switch
// will be one of these transaction types. Transaction types are associated with
// a particular API type. This associated is documented with each value.
enum TransactionType {
// Unspecified transaction type.
TRANSACTION_TYPE_UNSPECIFIED = 0;
// Autoupdate transaction type. This is associated with the `CHECK_STATUS`
// API type. Maps to UPI's `AUTOUPDATE` type.
TRANSACTION_TYPE_AUTOUPDATE = 1;
// Balance check transaction type. This is associated with the
// `BALANCE_ENQUIRY` API type. Maps to UPI's `BalChk` type.
TRANSACTION_TYPE_BALANCE_CHECK = 2;
// Balance enquiry transaction type. This is associated with the
// `BALANCE_ENQUIRY` API type. Maps to UPI's `BalEnq` type.
TRANSACTION_TYPE_BALANCE_ENQUIRY = 3;
// Check status transaction type. This is associated with the `COMPLAINT` API
// type. Maps to UPI's `CHECKSTATUS` type.
TRANSACTION_TYPE_CHECK_STATUS = 4;
// Check transaction type. This is associated with the `CHECK_STATUS` API
// type. Maps to UPI's `ChkTxn` type.
TRANSACTION_TYPE_CHECK_TRANSACTION = 5;
// Complaint transaction type. This is associated with the `COMPLAINT` API
// type. Maps to UPI's `COMPLAINT` type.
TRANSACTION_TYPE_COMPLAINT = 6;
// Create transaction type. This is associated with the `MANDATE` API type.
// Maps to UPI's `CREATE` type.
TRANSACTION_TYPE_CREATE = 7;
// Credit transaction type. This is associated with the `SETTLE_PAYMENT` API
// type. Maps to UPI's `CREDIT` type.
TRANSACTION_TYPE_CREDIT = 8;
// Debit transaction type. This is associated with the `SETTLE_PAYMENT` API
// type. Maps to UPI's `DEBIT` type.
TRANSACTION_TYPE_DEBIT = 9;
// Dispute transaction type. This is associated with the `COMPLAINT` API
// type. Maps to UPI's `DISPUTE` type.
TRANSACTION_TYPE_DISPUTE = 10;
// Heart beat transaction type. This is associated with `HEART_BEAT` API type.
// Maps to UPI's `Hbt` type.
TRANSACTION_TYPE_HEART_BEAT = 11;
// List accounts transaction type. This is associated with `LIST_ACCOUNTS` API
// type. Maps to UPI's `ListAccount` type.
TRANSACTION_TYPE_LIST_ACCOUNTS = 12;
// Mandate notification transaction type. This is associated with the
// `VALIDATE_CUSTOMER` API type. Maps to UPI's `MandateNotification` type.
TRANSACTION_TYPE_MANDATE_NOTIFICATION = 13;
// OTP transaction type. This is associated with the `INITIATE_REGISTRATION`
// API type. Maps to UPI's `Otp` type.
TRANSACTION_TYPE_OTP = 14;
// Pause transaction type. This is associated with the `MANDATE` API type.
// Maps to UPI's `PAUSE` type.
TRANSACTION_TYPE_PAUSE = 15;
// Redeem transaction type. This is associated with the `VOUCHER_CONFIRMATION`
// API type. Maps to UPI's `REDEEM` type.
TRANSACTION_TYPE_REDEEM = 16;
// Refund transaction type. This is associated with the `COMPLAINT` API
// type. Maps to UPI's `REFUND` type.
TRANSACTION_TYPE_REFUND = 17;
// Register mobile transaction type. This is associated with the
// `VALIDATE_REGISTRATION` API type. Maps to UPI's `RegMob` type.
TRANSACTION_TYPE_REGISTER_MOBILE = 18;
// Reversal transaction type. This is associated with the `SETTLE_PAYMENT` and
// `COMPLAINT` API types. Maps to UPI's `REVERSAL` type.
TRANSACTION_TYPE_REVERSAL = 19;
// Revoke transaction type. This is associated with the `MANDATE` API type.
// Maps to UPI's `REVOKE` type.
TRANSACTION_TYPE_REVOKE = 20;
// Status update transaction type. This is associated with the `COMPLAINT` API
// type. Maps to UPI's `STATUSUPDATE` type.
TRANSACTION_TYPE_STATUS_UPDATE = 21;
// Update transaction type. This is associated with the `MANDATE` API type.
// Maps to UPI's `UNPAUSE` type.
TRANSACTION_TYPE_UNPAUSE = 22;
// Update transaction type. This is associated with the `MANDATE` API type.
// Maps to UPI's `UPDATE` type.
TRANSACTION_TYPE_UPDATE = 23;
// Update credentials transaction type. This is associated with
// `UPDATE_CREDENTIALS` API type. Maps to UPI's `SetCre` type.
TRANSACTION_TYPE_UPDATE_CREDENTIALS = 24;
// Validate customer transaction type. This is associated with
// `VALIDATE_CUSTOMER` API type. Maps to UPI's `ValCust` type.
TRANSACTION_TYPE_VALIDATE_CUSTOMER = 25;
// Activation international transaction type. This is associated with
// 'ACTIVATION' API type. Maps to UPI's `International` type.
TRANSACTION_TYPE_ACTIVATION_INTERNATIONAL = 26;
// Activation UPI services transaction type. This is associated with
// 'ACTIVATION' API type. Maps to UPI's `UPI Services` type.
TRANSACTION_TYPE_ACTIVATION_UPI_SERVICES = 27;
}
// XmlApiType specifies the API type of the request or response as specified in
// the XML payload.
enum XmlApiType {
// Unspecified API type.
XML_API_TYPE_UNSPECIFIED = 0;
// Balance enquiry request API type. Maps to UPI's `ReqBalEnq` API.
REQ_BAL_ENQ = 1;
// Check transaction request API type. Maps to UPI's `ReqChkTxn` API.
REQ_CHK_TXN = 2;
// Complaint request API type. Maps to UPI's `ReqComplaint` API.
REQ_COMPLAINT = 3;
// Heart beat request API type. Maps to UPI's `ReqHbt` API.
REQ_HBT = 4;
// List accounts request API type. Maps to UPI's `ReqListAccount` API.
REQ_LIST_ACCOUNT = 5;
// Mandate request API. Maps to UPI's `ReqMandate` API.
REQ_MANDATE = 6;
// Mandate confirmation request API type. Maps to UPI's
// `ReqMandateConfirmation` API.
REQ_MANDATE_CONFIRMATION = 7;
// OTP request API. Maps to UPI's `ReqOtp` API.
REQ_OTP = 8;
// Payment settlement request API type. Maps to UPI's `ReqPay` API.
REQ_PAY = 9;
// Register mobile request API type. Maps to UPI's `ReqRegMob` API.
REQ_REG_MOB = 10;
// Update credentials request API type. Maps to UPI's `ReqSetCre` API.
REQ_SET_CRE = 11;
// Validate customer request API type. Maps to UPI's `ReqValCust`.
REQ_VAL_CUST = 12;
// Create voucher request API type. Maps to UPI's `ReqVoucher`.
REQ_VOUCHER = 13;
// Voucher confirmation request API type. Maps to UPI's
// `ReqVoucherConfirmation` API.
REQ_VOUCHER_CONFIRMATION = 14;
// Transaction confirmation request API type. Maps to UPI's
// `ReqTxnConfirmation` API.
REQ_TXN_CONFIRMATION = 15;
// Balance enquiry response API type. Maps to UPI's `RespBalEnq` API.
RESP_BAL_ENQ = 16;
// Check transaction response API type. Maps to UPI's `RespChkTxn` API.
RESP_CHK_TXN = 17;
// Complaint response API type. Maps to UPI's `RespComplaint` API.
RESP_COMPLAINT = 18;
// Heart beat response API type. Maps to UPI's `RespHbt` API.
RESP_HBT = 19;
// List accounts response API type. Maps to UPI's `RespListAccount` API.
RESP_LIST_ACCOUNT = 20;
// Mandate response API type. Maps to UPI's `RespMandate` API.
RESP_MANDATE = 21;
// Mandate confirmation response API type. Maps to UPI's
// `RespMandateConfirmation` API.
RESP_MANDATE_CONFIRMATION = 22;
// OTP response API. Maps to UPI's `RespOtp` API.
RESP_OTP = 23;
// Payment settlement response API type. Maps to UPI's `RespPay` API.
RESP_PAY = 24;
// Register mobile response API type. Maps to UPI's `RespRegMob` API.
RESP_REG_MOB = 25;
// Update credentials response API type. Maps to UPI's `RespSetCre` API.
RESP_SET_CRE = 26;
// Validate customer response API type. Maps to UPI's `RespValCust`.
RESP_VAL_CUST = 27;
// Create voucher response API type. Maps to UPI's `RespVoucher`.
RESP_VOUCHER = 28;
// Voucher confirmation responseAPI type. Maps to UPI's
// `RespVoucherConfirmation` API.
RESP_VOUCHER_CONFIRMATION = 29;
// Transaction confirmation response API type. Maps to UPI's
// `RespTxnConfirmation` API.
RESP_TXN_CONFIRMATION = 30;
// Activation request API type. Maps to UPI's `ReqActivation` API.
REQ_ACTIVATION = 31;
// Activation response API type. Maps to UPI's `RespActivation` API.
RESP_ACTIVATION = 32;
}