123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474 |
- // Copyright 2022 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";
- option csharp_namespace = "Google.Cloud.PaymentGateway.IssuerSwitch.V1";
- option go_package = "google.golang.org/genproto/googleapis/cloud/paymentgateway/issuerswitch/v1;issuerswitch";
- 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 code of a bank's branch.
- string ifsc_code = 1;
- // Type of account. Examples include SAVINGS, CURRENT, etc.
- string account_type = 2;
- // 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 {
- // The participant information.
- Participant participant = 1;
- // Unique identification of an account according to India's UPI standards.
- AccountReference account = 2;
- // 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 = 3;
- // Output only. The mobile number of the participant.
- string mobile = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
- // Output only. The device id of the participant.
- string device_id = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- // 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 virtual payment address (VPA) of the participant.
- string virtual_payment_address = 1;
- // The persona of the participant.
- Persona persona = 2;
- // The name of the participant.
- string user = 3;
- }
- // 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;
- }
- // 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;
- }
- // 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;
- }
|