| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895 | // 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/annotations.proto";import "google/api/client.proto";import "google/api/field_behavior.proto";import "google/api/resource.proto";import "google/cloud/paymentgateway/issuerswitch/v1/common_fields.proto";import "google/longrunning/operations.proto";import "google/protobuf/timestamp.proto";import "google/type/money.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 = "ResolutionsProto";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";// Creates and resolves UPI complaints and disputes.service IssuerSwitchResolutions {  option (google.api.default_host) = "issuerswitch.googleapis.com";  option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";  // Create a complaint. The returned `Operation` type has  // the following method-specific fields:  //  // - `metadata`: [CreateComplaintMetadata][google.cloud.paymentgateway.issuerswitch.v1.CreateComplaintMetadata]  // - `response`: [Complaint][google.cloud.paymentgateway.issuerswitch.v1.Complaint]  rpc CreateComplaint(CreateComplaintRequest) returns (google.longrunning.Operation) {    option (google.api.http) = {      post: "/v1/{parent=projects/*}/complaints"      body: "complaint"    };    option (google.api.method_signature) = "parent,complaint";    option (google.longrunning.operation_info) = {      response_type: "Complaint"      metadata_type: "CreateComplaintMetadata"    };  }  // Resolve a complaint. The returned `Operation` type has  // the following method-specific fields:  //  // - `metadata`: [ResolveComplaintMetadata][google.cloud.paymentgateway.issuerswitch.v1.ResolveComplaintMetadata]  // - `response`: [Complaint][google.cloud.paymentgateway.issuerswitch.v1.Complaint]  rpc ResolveComplaint(ResolveComplaintRequest) returns (google.longrunning.Operation) {    option (google.api.http) = {      post: "/v1/{complaint.name=projects/*/complaints/*}:resolve"      body: "complaint"    };    option (google.api.method_signature) = "complaint";    option (google.longrunning.operation_info) = {      response_type: "Complaint"      metadata_type: "ResolveComplaintMetadata"    };  }  // Create a dispute. The returned `Operation` type has  // the following method-specific fields:  //  // - `metadata`: [CreateDisputeMetadata][google.cloud.paymentgateway.issuerswitch.v1.CreateDisputeMetadata]  // - `response`: [Dispute][google.cloud.paymentgateway.issuerswitch.v1.Dispute]  rpc CreateDispute(CreateDisputeRequest) returns (google.longrunning.Operation) {    option (google.api.http) = {      post: "/v1/{parent=projects/*}/disputes"      body: "dispute"    };    option (google.api.method_signature) = "parent,dispute";    option (google.longrunning.operation_info) = {      response_type: "Dispute"      metadata_type: "CreateDisputeMetadata"    };  }  // Resolve a dispute. The returned `Operation` type has  // the following method-specific fields:  //  // - `metadata`: [ResolveDisputeMetadata][google.cloud.paymentgateway.issuerswitch.v1.ResolveDisputeMetadata]  // - `response`: [Dispute][google.cloud.paymentgateway.issuerswitch.v1.Dispute]  rpc ResolveDispute(ResolveDisputeRequest) returns (google.longrunning.Operation) {    option (google.api.http) = {      post: "/v1/{dispute.name=projects/*/disputes/*}:resolve"      body: "dispute"    };    option (google.api.method_signature) = "dispute";    option (google.longrunning.operation_info) = {      response_type: "Dispute"      metadata_type: "ResolveDisputeMetadata"    };  }}// A complaint processed by the issuer switch.message Complaint {  option (google.api.resource) = {    type: "issuerswitch.googleapis.com/Complaint"    pattern: "projects/{project}/complaints/{complaint}"  };  // The name of the complaint. This uniquely identifies the complaint.  // Format of name is  // projects/{project_id}/complaints/{complaint_id}.  string name = 1;  // The reason for raising the complaint. This maps adjustment flag  // and reason code for the complaint to `reqAdjFlag` and `reqAdjCode` in  // complaint request respectively while raising a complaint.  RaiseComplaintAdjustment raise_complaint_adjustment = 2;  // Required. Details required for raising / resolving a complaint.  CaseDetails details = 4 [(google.api.field_behavior) = REQUIRED];  // Output only. Response to the raised / resolved complaint.  CaseResponse response = 5 [(google.api.field_behavior) = OUTPUT_ONLY];  // The reason for resolving the complaint. It provides adjustment values while  // resolving and for already resolved complaints. This maps adjustment flag  // and reason code for the complaint to `reqAdjFlag` and `reqAdjCode` in  // complaint request respectively when a complete resolution is done via  // Resolve Complaint API otherwise maps to `respAdjFlag` and `respAdjCode` in  // complaint response respectively when a complaint request from UPI is  // directly resolved by issuer switch.  ResolveComplaintAdjustment resolve_complaint_adjustment = 6;}// Request for the `CreateComplaint` method.message CreateComplaintRequest {  // Required. The parent resource for the complaint. The format is  // `projects/{project}`.  string parent = 1 [    (google.api.field_behavior) = REQUIRED,    (google.api.resource_reference) = {      child_type: "issuerswitch.googleapis.com/Complaint"    }  ];  // Required. The complaint to be raised.  Complaint complaint = 2 [(google.api.field_behavior) = REQUIRED];}// Request for the `ResolveComplaint` method.message ResolveComplaintRequest {  // Required. The complaint to be resolved.  Complaint complaint = 1 [(google.api.field_behavior) = REQUIRED];}// A dispute processed by the issuer switch.message Dispute {  option (google.api.resource) = {    type: "issuerswitch.googleapis.com/Dispute"    pattern: "projects/{project}/disputes/{dispute}"  };  // The name of the dispute. This uniquely identifies the dispute.  // Format of name is  // projects/{project_id}/disputes/{dispute_id}.  string name = 1;  // The reason for raising the dispute. This maps adjustment flag  // and reason code for the dispute to `reqAdjFlag` and `reqAdjCode` in  // complaint request respectively while raising a dispute.  RaiseDisputeAdjustment raise_dispute_adjustment = 2;  // Required. Details required for raising/resolving dispute.  CaseDetails details = 4 [(google.api.field_behavior) = REQUIRED];  // Output only. Response to the raised/resolved dispute.  CaseResponse response = 5 [(google.api.field_behavior) = OUTPUT_ONLY];  // The reason for resolving the dispute. It provides adjustment values while  // resolving and for already resolved disputes. This maps adjustment flag  // and reason code for the dispute to `reqAdjFlag` and `reqAdjCode` in  // dispute request respectively while resolving a dispute.  ResolveDisputeAdjustment resolve_dispute_adjustment = 6;}// Request for the `CreateDispute` method.message CreateDisputeRequest {  // Required. The parent resource for the dispute. The format is  // `projects/{project}`.  string parent = 1 [    (google.api.field_behavior) = REQUIRED,    (google.api.resource_reference) = {      child_type: "issuerswitch.googleapis.com/Dispute"    }  ];  // Required. The dispute to be raised.  Dispute dispute = 2 [(google.api.field_behavior) = REQUIRED];}// Request for the `ResolveDispute` method.message ResolveDisputeRequest {  // Required. The dispute to be resolved.  Dispute dispute = 1 [(google.api.field_behavior) = REQUIRED];}// Details of original transaction.message OriginalTransaction {  // Required. Uniquely identifies the original transaction. This maps to the `Txn.Id`  // value of the original transaction in India's UPI system.  string transaction_id = 1 [(google.api.field_behavior) = REQUIRED];  // Required. Retrieval Reference Number (RRN) of the original transaction.  string retrieval_reference_number = 2 [(google.api.field_behavior) = REQUIRED];  // Timestamp of the original transaction request.  google.protobuf.Timestamp request_time = 3;}// Details of the complaint or dispute.message CaseDetails {  // Required. Details of original transaction.  OriginalTransaction original_transaction = 1 [(google.api.field_behavior) = REQUIRED];  // Required. Initiator of the complaint / dispute.  TransactionSubType transaction_sub_type = 2 [(google.api.field_behavior) = REQUIRED];  // Required. The adjustment amount in URCS for the complaint / dispute. This  // maps to `reqAdjAmount` in complaint request.  google.type.Money amount = 3 [(google.api.field_behavior) = REQUIRED];  // The original response code which has been updated in the complaint  // Response. This should map to settlement response code currently available  // in URCS system.  string original_settlement_response_code = 4;  // Required. Set to true if the complaint / dispute belongs to current settlement cycle,  // false otherwise.  bool current_cycle = 5 [(google.api.field_behavior) = REQUIRED];}// Response to the complaint or dispute.message CaseResponse {  // Complaint Reference Number(CRN) sent by UPI as a reference against the  // generated complaint / dispute.  string complaint_reference_number = 1;  // The adjustment amount of the response. This maps to `adjAmt` in  // complaint response.  google.type.Money amount = 2;  // The adjustment flag in response to the complaint. This maps adjustment flag  // in URCS for the complaint transaction to `Resp.Ref.adjFlag` in complaint  // response.  string adjustment_flag = 3;  // The adjustment code in response to the complaint. This maps reason code in  // URCS for the complaint transaction to `Resp.Ref.adjCode` in complaint  // response.  string adjustment_code = 4;  // It defines the Adjustment Reference ID which has been updated in the  // complaint response. This maps to `adjRefID` in complaint response.  string adjustment_reference_id = 5;  // Adjustment Remarks. This maps to `adjRemarks` in complaint response.  string adjustment_remarks = 6;  // The Approval Reference Number. This maps to `approvalNum` in complaint  // response.  string approval_number = 7;  // Process Status of the transaction. This maps to `procStatus` in complaint  // response.  string process_status = 8;  // The adjustment timestamp when bank performs the adjustment for the received  // complaint request. This maps to `adjTs` in complaint response.  google.protobuf.Timestamp adjustment_time = 9;  // The details of the participant of the original financial transaction.  oneof participant {    // The payer in the original financial transaction.    SettlementParticipant payer = 10;    // The payee in the original financial transaction.    SettlementParticipant payee = 11;  }}// The adjusment flag and reason code for raising complaint.message RaiseComplaintAdjustment {  // The adjusment flag for raising complaint.  enum AdjustmentFlag {    // Unspecified adjustment flag.    ADJUSTMENT_FLAG_UNSPECIFIED = 0;    // Complaint Raise. This flag maps to the `PBRB` adjustment flag as defined    // in NPCI's `UDIR` specification.    RAISE = 1;  }  // The reason for raising complaint.  enum ReasonCode {    // Unspecified reason code.    REASON_CODE_UNSPECIFIED = 0;    // Customer account has not yet reversed for a declined pay transaction.    // This reason code maps to the `U005` reason code as defined in NPCI's    // `UDIR` specification.    CUSTOMER_ACCOUNT_NOT_REVERSED = 1;    // Goods / services are not provided for approved transaction.    // This reason code maps to the `U008` reason code as defined in NPCI's    // `UDIR` specification.    GOODS_SERVICES_NOT_PROVIDED = 2;    // Customer account not credited back for declined transaction. This    // reason code maps to the `U009` reason code as defined in NPCI's `UDIR`    // specification.    CUSTOMER_ACCOUNT_NOT_CREDITED_BACK = 3;    // Beneficiary account is not credited for successful pay transaction. This    // reason code maps to the `U010` reason code as defined in NPCI's `UDIR`    // specification.    BENEFICIARY_ACCOUNT_NOT_CREDITED = 4;    // Credit not processed for cancelled or returned goods and services.    // This reason code maps to the `U021` reason code as defined in NPCI's    // `UDIR` specification.    GOODS_SERVICES_CREDIT_NOT_PROCESSED = 5;    // Account debited but transaction confirmation not received at merchant    // location. This reason code maps to the `U022` reason code as defined in    // NPCI's `UDIR` specification.    MERCHANT_NOT_RECEIVED_CONFIRMATION = 6;    // Paid by alternate means / Duplicate payment. This reason code maps to the    // `U023` reason code as defined in NPCI's `UDIR` specification.    PAID_BY_ALTERNATE_MEANS = 7;  }  // Required. The adjustment flag in URCS for the complaint transaction. This maps to  // `reqAdjFlag` in complaint request and `respAdjFlag` in complaint response.  AdjustmentFlag adjustment_flag = 1 [(google.api.field_behavior) = REQUIRED];  // Required. The adjustment code in URCS for the complaint transaction. This maps to  // `reqAdjCode` in complaint request.  ReasonCode adjustment_code = 2 [(google.api.field_behavior) = REQUIRED];}// The adjusment flag and reason code for resolving the complaint.message ResolveComplaintAdjustment {  // The adjusment flag for resolving the complaint.  enum AdjustmentFlag {    // Unspecified adjustment flag.    ADJUSTMENT_FLAG_UNSPECIFIED = 0;    // Debit Reversal Confirmation. This flag maps to the `DRC` adjustment flag    // as defined in NPCI's `UDIR` specification.    DEBIT_REVERSAL_CONFIRMATION = 1;    // Return. This flag maps to the `RET` adjustment flag as defined in NPCI's    // `UDIR` specification.    RETURN = 2;    // Refund Reversal Confirmation. This flag maps to the `RRC` adjustment    // flag as defined in NPCI's `UDIR` specification.    REFUND_REVERSAL_CONFIRMATION = 3;    // Transaction Credit Confirmation. This flag maps to the `TCC` adjustment    // flag as defined in NPCI's `UDIR` specification.    TRANSACTION_CREDIT_CONFIRMATION = 4;  }  // The complaint resolution reason code.  enum ReasonCode {    // Unspecified reason code.    REASON_CODE_UNSPECIFIED = 0;    // Customer account has been reversed online for DRC dispute or beneficiary    // account has been credited online for TCC dispute. This reason code maps    // to the `102` reason code as defined in NPCI's `UDIR` specification.    COMPLAINT_RESOLVED_ONLINE = 1;    // Customer account has been reversed now or manually post reconciliation    // for DRC dispute or beneficiary account has been credited now or manually    // post reconciliation for TCC dispute. This reason code maps to the `103`    // reason code as defined in NPCI's `UDIR` specification.    COMPLAINT_RESOLVED_NOW_OR_MANUALLY = 2;    // Online decline response failed. This reason code maps to the    // `104` reason code as defined in NPCI's `UDIR` specification.    ORIGINAL_TRANSACTION_NOT_DONE = 3;    // Account closed. This reason code maps to the `114` reason code for    // RET dispute as defined in NPCI's `UDIR` specification.    RET_ACCOUNT_CLOSED = 4;    // Account does not exist. This reason code maps to the `115` reason code    // for RET dispute as defined in NPCI's `UDIR` specification.    RET_ACCOUNT_DOES_NOT_EXIST = 5;    // Party instructions. This reason code maps to the `116` reason code for    // RET dispute as defined in NPCI's `UDIR` specification.    RET_PARTY_INSTRUCTIONS = 6;    // NRI account. This reason code maps to the `117` reason code for RET    // dispute as defined in NPCI's `UDIR` specification.    RET_NRI_ACCOUNT = 7;    // Credit freezed. This reason code maps to the `118` reason code for RET    // dispute as defined in NPCI's `UDIR` specification.    RET_CREDIT_FREEZED = 8;    // Invalid beneficiary details. This reason code maps to the `119` reason    // code for RET dispute as defined in NPCI's `UDIR` specification.    RET_INVALID_BENEFICIARY_DETAILS = 9;    // Any other reason. This reason code maps to the `120` reason code for RET    // dispute as defined in NPCI's `UDIR` specification.    RET_ANY_OTHER_REASON = 10;    // Beneficiary bank unable to credit their customer account.    // This reason code maps to the `1094` reason code for RET dispute as    // defined in NPCI's `UDIR` specification.    RET_BENEFICIARY_CANNOT_CREDIT = 11;    // Account debited but transaction confirmation not received at merchant    // location. This reason code maps to the `1065` reason code for Credit    // adjustment and RET dispute as defined in NPCI's `UDIR` specification.    RET_MERCHANT_NOT_RECEIVED_CONFIRMATION = 12;    // Customer account has been credited. This reason code maps to the `501`    // reason code for Refund reversal confirmation dispute as defined in NPCI's    // `UDIR` specification.    RRC_CUSTOMER_ACCOUNT_CREDITED = 13;  }  // Required. The adjustment flag in URCS for the complaint transaction. This maps to  // `reqAdjFlag` in complaint request and `respAdjFlag` in complaint response.  AdjustmentFlag adjustment_flag = 1 [(google.api.field_behavior) = REQUIRED];  // Required. The adjustment code in URCS for the complaint transaction. This maps to  // `reqAdjCode` in complaint request.  ReasonCode adjustment_code = 2 [(google.api.field_behavior) = REQUIRED];}// The adjusment flag and reason code for raising dispute.message RaiseDisputeAdjustment {  // The adjusment flag for raising dispute.  enum AdjustmentFlag {    // Unspecified adjustment flag.    ADJUSTMENT_FLAG_UNSPECIFIED = 0;    // Chargeback Raise. This flag maps to the `B` adjustment flag as    // defined in NPCI's `UDIR` specification.    CHARGEBACK_RAISE = 1;    // Fraud Chargeback Raise. This flag maps to the `FC` adjustment flag    // as defined in NPCI's `UDIR` specification.    FRAUD_CHARGEBACK_RAISE = 2;    // Wrong Credit Chargeback Raise. This flag maps to the `WC` adjustment    // flag as defined in NPCI's `UDIR` specification.    WRONG_CREDIT_CHARGEBACK_RAISE = 3;    // Deferred Chargeback Raise. This flag maps to the `FB` adjustment flag    // as defined in NPCI's `UDIR` specification.    DEFERRED_CHARGEBACK_RAISE = 4;    // Pre-Arbitration Raise. This flag maps to the `P` adjustment flag as    // defined in NPCI's `UDIR` specification.    PRE_ARBITRATION_RAISE = 5;    // Deferred Pre-Arbitration Raise. This flag maps to the `FP` adjustment    // flag as defined in NPCI's `UDIR` specification.    DEFERRED_PRE_ARBITRATION_RAISE = 6;    // Arbitration Raise. This flag maps to the `AR` adjustment flag as    // defined in NPCI's `UDIR` specification.    ARBITRATION_RAISE = 7;    // Deferred Arbitration Raise. This flag maps to the `FAR` adjustment flag    // as defined in NPCI's `UDIR` specification.    DEFERRED_ARBITRATION_RAISE = 8;  }  // The reason for raising dispute.  enum ReasonCode {    // Unspecified reason code.    REASON_CODE_UNSPECIFIED = 0;    // Remitter account is debited but beneficiary account is not credited.    // This reason code maps to the `108` reason code as defined in    // NPCI's `UDIR` specification.    CHARGEBACK_RAISE_REMITTER_DEBITED_BENEFICIARY_NOT_CREDITED = 1;    // Remitter bank customer still disputes that beneficiary account is not    // credited. This reason code maps to the `109` reason code as defined in    // NPCI's `UDIR` specification.    PRE_ARBITRATION_RAISE_BENEFICIARY_NOT_CREDITED = 2;    // TCC has been raised but customer still complaining that beneficiary    // account is not credited. This reason code maps to the `121` reason code    // as defined in NPCI's `UDIR` specification.    DEFERRED_CHARGEBACK_RAISE_BENEFICIARY_NOT_CREDITED = 3;    // Customer is still complaining for not crediting the beneficiary    // customer account. This reason code maps to the `124` reason code as    // defined in NPCI's `UDIR` specification.    DEFERRED_PRE_ARBITRATION_RAISE_BENEFICIARY_NOT_CREDITED = 4;    // Customer is complaining even after raising Deferred Chargeback and    // Pre-Arbitration on Deferred Chargeback where both have been rejected by    // beneficiary bank. This reason code maps to the `127` reason code as    // defined in NPCI's `UDIR` specification.    DEFERRED_ARBITRATION_RAISE_DEFERRED_CHARGEBACK_PRE_ARBITRATION_REJECTED = 5;    // Chargeback on fraudulent transaction. This reason code maps to the `128`    // reason code as defined in NPCI's `UDIR` specification.    CHARGEBACK_ON_FRAUD = 6;    // Credit not processed for cancelled or returned goods and services. This    // reason code maps to the `1061` reason code as defined in NPCI's `UDIR`    // specification.    GOODS_SERVICES_CREDIT_NOT_PROCESSED = 7;    // Goods and services not as described / defective. This reason code maps to    // the `1062` reason code as defined in NPCI's `UDIR` specification.    GOODS_SERVICES_DEFECTIVE = 8;    // Paid by alternate means. This reason code maps to the `1063` reason code    // as defined in NPCI's `UDIR` specification.    PAID_BY_ALTERNATE_MEANS = 9;    // Goods or services not provided / not received. This reason code maps to    // the `1064` reason code as defined in NPCI's `UDIR` specification.    GOODS_SERVICES_NOT_RECEIVED = 10;    // Account debited but transaction confirmation not received at merchant    // location. This reason code maps to the `1065` reason code for chargeback    // raise and deferred chargeback raise as defined in NPCI's `UDIR`    // specification.    MERCHANT_NOT_RECEIVED_CONFIRMATION = 11;    // Transaction not steeled within the specified timeframes. This reason code    // maps to the `1081` reason code as defined in NPCI's `UDIR` specification.    TRANSACTION_NOT_STEELED = 12;    // Duplicate / Multiple transaction. This reason code maps to the `1084`    // reason code as defined in NPCI's `UDIR` specification.    DUPLICATE_TRANSACTION = 13;    // Card holder was charged more than the transaction amount.    // This reason code maps to the `1085` reason code for Chargeback raise    // dispute as defined in NPCI's `UDIR` specification.    CHARGEBACK_CARD_HOLDER_CHARGED_MORE = 14;    // Customer is still claiming that services are not delivered. This reason    // code maps to the `1097` reason code as defined in NPCI's `UDIR`    // specification.    CUSTOMER_CLAIMING_GOODS_SERVICES_NOT_DELIVERED = 15;    // Both the parties denied to agree. This reason code maps to the `1100`    // reason code as defined in NPCI's `UDIR` specification.    PARTIES_DENIED = 16;    // Customer transferred funds to the unintended beneficiary account. This    // reason code maps to the `WC1` reason code as defined in NPCI's `UDIR`    // specification.    FUNDS_TRANSFERRED_TO_UNINTENDED_BENEFICIARY = 17;  }  // Required. The adjustment flag in URCS for the complaint transaction. This maps to  // `reqAdjFlag` in dispute request and `respAdjFlag` in dispute response.  AdjustmentFlag adjustment_flag = 1 [(google.api.field_behavior) = REQUIRED];  // Required. The adjustment code in URCS for the complaint transaction. This maps to  // `reqAdjCode` in dispute request.  ReasonCode adjustment_code = 2 [(google.api.field_behavior) = REQUIRED];}// The adjusment flag and reason code for resolving the dispute.message ResolveDisputeAdjustment {  // The adjusment flag for resolving the dispute.  enum AdjustmentFlag {    // Unspecified adjustment flag.    ADJUSTMENT_FLAG_UNSPECIFIED = 0;    // Re-presentment Raise. This flag maps to the `R` adjustment flag as    // defined in NPCI's `UDIR` specification.    RE_PRESENTMENT_RAISE = 1;    // Deferred Re-presentment Raise. This flag maps to the `FR` adjustment    // flag as defined in NPCI's `UDIR` specification.    DEFERRED_RE_PRESENTMENT_RAISE = 2;    // Chargeback Acceptance. This flag maps to the `A` adjustment flag as    // defined in NPCI's `UDIR` specification.    CHARGEBACK_ACCEPTANCE = 3;    // Deferred Chargeback Acceptance. This flag maps to the `FA` adjustment    // flag as defined in NPCI's `UDIR` specification.    DEFERRED_CHARGEBACK_ACCEPTANCE = 4;    // Pre-Arbitration Acceptance. This flag maps to the `AP` adjustment flag as    // defined in NPCI's `UDIR` specification.    PRE_ARBITRATION_ACCEPTANCE = 5;    // Deferred Pre-Arbitration Acceptance. This flag maps to the `FAP`    // adjustment flag as defined in NPCI's `UDIR` specification.    DEFERRED_PRE_ARBITRATION_ACCEPTANCE = 6;    // Pre-Arbitration Declined. This flag maps to the `PR` adjustment flag as    // defined in NPCI's `UDIR` specification.    PRE_ARBITRATION_DECLINED = 7;    // Deferred Pre-Arbitration Declined. This flag maps to the `FPR` adjustment    // flag as defined in NPCI's `UDIR` specification.    DEFERRED_PRE_ARBITRATION_DECLINED = 8;    // Arbitration Acceptance. This flag maps to the `ACA` adjustment flag as    // defined in NPCI's `UDIR` specification.    ARBITRATION_ACCEPTANCE = 9;    // Arbitration Continuation. This flag maps to the `ACC` adjustment flag as    // defined in NPCI's `UDIR` specification.    ARBITRATION_CONTINUATION = 10;    // Arbitration Withdrawn. This flag maps to the `ACW` adjustment flag as    // defined in NPCI's `UDIR` specification.    ARBITRATION_WITHDRAWN = 11;    // Arbitration Verdict. This flag maps to the `ACV` adjustment flag as    // defined in NPCI's `UDIR` specification.    ARBITRATION_VERDICT = 12;    // Credit Adjustment. This flag maps to the `C` adjustment flag as    // defined in NPCI's `UDIR` specification.    CREDIT_ADJUSTMENT = 13;    // Fraud Chargeback Representment. This flag maps to the `FCR` adjustment    // flag as defined in NPCI's `UDIR` specification.    FRAUD_CHARGEBACK_REPRESENTMENT = 14;    // Fraud Chargeback Accept. This flag maps to the `FCA` adjustment flag    // as defined in NPCI's `UDIR` specification.    FRAUD_CHARGEBACK_ACCEPT = 15;    // Wrong Credit Representment. This flag maps to the `WR` adjustment    // flag as defined in NPCI's `UDIR` specification.    WRONG_CREDIT_REPRESENTMENT = 16;    // Wrong Credit Chargeback Acceptance. This flag maps to the `WA` adjustment    // flag as defined in NPCI's `UDIR` specification.    WRONG_CREDIT_CHARGEBACK_ACCEPTANCE = 17;    // Manual Adjustment. This flag maps to the `MA` adjustment flag as defined    // in NPCI's `UDIR` specification.    MANUAL_ADJUSTMENT = 18;  }  // The dispute resolution reason code.  enum ReasonCode {    // Unspecified reason code.    REASON_CODE_UNSPECIFIED = 0;    // Beneficiary bank unable to credit their customer account for Chargeback    // Acceptance dispute or duplicate processing for Pre Arbitration Acceptance    // dispute. This reason code maps to the `111` reason code as defined in    // NPCI's `UDIR` specification.    CHARGEBACK_BENEFICIARY_CANNOT_CREDIT_OR_PRE_ARBITRATION_DUPLICATE_PROCESS = 1;    // Beneficiary account has been credited online. This reason code maps to    // the `112` reason code for Pre-arbitration declined dispute as defined in    // NPCI's `UDIR` specification.    PRE_ARBITRATION_DECLINED_BENEFICIARY_CREDITED_ONLINE = 3;    // Beneficiary account has been credited manually post reconciliation. This    // reason code maps to the `113` reason code for Pre-arbitration declined    // dispute as defined in NPCI's `UDIR` specification.    PRE_ARBITRATION_DECLINED_BENEFICIARY_CREDITED_MANUALLY = 4;    // Customer account is not credited, TCC raised inadvertently. This reason    // code maps to the `122` reason code as defined in NPCI's `UDIR`    // specification.    DEFERRED_CHARGEBACK_ACCEPTANCE_ACCOUNT_NOT_CREDITED_TCC_RAISED = 5;    // Customer account is credited successfully and TCC raised accordingly.    // This reason code maps to the `123` reason code as defined in NPCI's    // `UDIR` specification.    DEFERRED_RE_PRESENTMENT_RAISE_ACCOUNT_CREDITED_TCC_RAISED = 6;    // Customer account is not credited, TCC and Re-Presentment raised    // inadvertently. This reason code maps to the `125` reason code as defined    // in NPCI's `UDIR` specification.    DEFERRED_PRE_ARBITRATION_ACCEPTANCE_ACCOUNT_NOT_CREDITED = 7;    // Customer account is credited successfully and TCC and Re-Presentment    // raised accordingly. This reason code maps to the `126` reason code as    // defined in NPCI's `UDIR` specification.    DEFERRED_PRE_ARBITRATION_DECLINED_ACCOUNT_CREDITED = 8;    // Amount has been recovered successfully from the fraudulent customer    // account. This reason code maps to the `129` reason code as defined    // in NPCI's `UDIR` specification.    FRAUD_CHARGEBACK_ACCEPT_AMOUNT_RECOVERED_FROM_FRAUDULENT_ACCOUNT = 9;    // Lien marked however, customer account is not having sufficient balance to    // debit. This reason code maps to the `130` reason code for    // Fraud chargeback representment dispute as defined in NPCI's `UDIR`    // specification.    FRAUD_CHARGEBACK_REPRESENTMENT_LIEN_MARKED_INSUFFICIENT_BALANCE = 10;    // FIR Copy not provided for the disputed transaction. This reason code maps    // to the `131` reason code as defined in NPCI's `UDIR` specification.    FRAUD_CHARGEBACK_REPRESENTMENT_FIR_NOT_PROVIDED = 11;    // Other reason for Fraud chargeback representment dispute. This reason code    // maps to the `132` reason code as defined in NPCI's `UDIR` specification.    FRAUD_CHARGEBACK_REPRESENTMENT_REASON_OTHERS = 12;    // Beneficiary account credited online. This reason code maps to the `208`    // reason code for Re-presentment raise dispute as defined in NPCI's `UDIR`    // specification.    RE_PRESENTMENT_RAISE_BENEFICIARY_CREDITED_ONLINE = 13;    // Beneficiary account credited manually post reconciliation. This reason    // code maps to the `209` reason code for Re-presentment raise dispute as    // defined in NPCI's `UDIR` specification.    RE_PRESENTMENT_RAISE_BENEFICIARY_CREDITED_MANUALLY = 14;    // Credit not processed for cancelled or returned goods and services. This    // reason code maps to the `1061` reason code as defined in NPCI's `UDIR`    // specification.    CREDIT_ADJUSTMENT_GOODS_SERVICES_CREDIT_NOT_PROCESSED = 15;    // Goods and Services not as described / defective. This reason code maps to    // the `1062` reason code as defined in NPCI's `UDIR` specification.    CREDIT_ADJUSTMENT_GOODS_SERVICES_DEFECTIVE = 16;    // Paid by alternate means. This reason code maps to the `1063` reason code    // as defined in NPCI's `UDIR` specification.    CREDIT_ADJUSTMENT_PAID_BY_ALTERNATE_MEANS = 17;    // Goods or Services Not Provided / Not Received. This reason code maps to    // the `1064` reason code as defined in NPCI's `UDIR` specification.    CREDIT_ADJUSTMENT_GOODS_SERVICES_NOT_RECEIVED = 18;    // Account debited but transaction confirmation not received at merchant    // location. This reason code maps to the `1065` reason code for Credit    // adjustment as defined in NPCI's `UDIR` specification.    CREDIT_ADJUSTMENT_MERCHANT_NOT_RECEIVED_CONFIRMATION = 19;    // Duplicate /Multiple Transaction. This reason code maps to the `1084`    // reason code as defined in NPCI's `UDIR` specification.    CREDIT_ADJUSTMENT_DUPLICATE_TRANSACTION = 20;    // Other reason for Credit adjustment. This reason code maps to the `1090`    // reason code as defined in NPCI's `UDIR` specification.    CREDIT_ADJUSTMENT_REASON_OTHERS = 21;    // Non Matching account number. This reason code maps to the `1091`    // reason code as defined in NPCI's `UDIR` specification.    CREDIT_ADJUSTMENT_NON_MATCHING_ACCOUNT_NUMBER = 22;    // Card holder was charged more than the transaction amount.    // This reason code maps to the `1092` reason code as defined in NPCI's    // `UDIR` specification.    CREDIT_ADJUSTMENT_CARD_HOLDER_CHARGED_MORE = 23;    // Credit not Processed. This reason code maps to the `1093` reason code as    // defined in NPCI's `UDIR` specification.    CREDIT_ADJUSTMENT_CREDIT_NOT_PROCESSED = 24;    // Beneficiary bank unable to credit their customer account. This reason    // code maps to the `1094` reason code for Credit Adjustment dispute as    // defined in NPCI's `UDIR` specification.    CREDIT_ADJUSTMENT_BENEFICIARY_CANNOT_CREDIT = 25;    // Merchant was unable to provide the service. This reason code maps to the    // `1095` reason code as defined in NPCI's `UDIR` specification.    CHARGEBACK_ACCEPTANCE_MERCHANT_CANNOT_PROVIDE_SERVICE = 26;    // Services/Goods provided see the supporting document. This reason code    // maps to the `1096` reason code as defined in NPCI's `UDIR` specification.    RE_PRESENTMENT_RAISE_GOODS_SERVICES_PROVIDED = 27;    // Services provided later see supporting documents. This reason code maps    // to the `1098` reason code as defined in NPCI's `UDIR` specification.    PRE_ARBITRATION_DECLINED_SERVICES_PROVIDED_LATER = 28;    // Services not provided by the merchant. This reason code maps to the    // `1099` reason code as defined in NPCI's `UDIR` specification.    PRE_ARBITRATION_ACCEPTANCE_SERVICES_NOT_PROVIDED_BY_MERCHANT = 29;    // Illegible Fulfilment. This reason code maps to the `1101` reason code for    // arbitration acceptance dispute as defined in NPCI's `UDIR` specification.    ARBITRATION_ACCEPTANCE_ILLEGIBLE_FULFILMENT = 30;    // Customer has still not received the service. This reason code maps to the    // `1102` reason code as defined in NPCI's `UDIR` specification.    ARBITRATION_CONTINUATION_CUSTOMER_STILL_NOT_RECEIVED_SERVICE = 31;    // Customer has received the service later. This reason code maps to the    // `1103` reason code as defined in NPCI's `UDIR` specification.    ARBITRATION_WITHDRAWN_CUSTOMER_RECEIVED_SERVICE_LATER = 32;    // Panel will give the verdict. This reason code maps to the `1104` reason    // code as defined in NPCI's `UDIR` specification.    ARBITRATION_VERDICT_PANEL_VERDICT = 33;    // Manual adjustment. This reason code maps to the `2001` reason code as    // defined in NPCI's `UDIR` specification.    MANUAL_ADJUSTMENT_REASON = 34;    // Attributing to the Customer. This reason code maps to the `AC` reason    // code as defined in NPCI's `UDIR` specification.    ATTRIBUTING_CUSTOMER = 35;    // Attributing to the Technical issue at bank/aggregator/merchant. This    // reason code maps to the `AT` reason code as defined in NPCI's `UDIR`    // specification.    ATTRIBUTING_TECHNICAL_ISSUE = 36;    // Amount has been recovered successfully from the unintended customer    // account. This reason code maps to the `WC2` reason code as defined in    // NPCI's `UDIR` specification.    WRONG_CREDIT_CHARGEBACK_ACCEPTANCE_AMOUNT_RECOVERED = 37;    // Lien marked however customer account is not having sufficient balance to    // debit the customer account. This reason code maps to the `WC3` reason    // code for Wrong credit representment dispute as defined in NPCI's `UDIR`    // specification.    WRONG_CREDIT_REPRESENTMENT_LIEN_MARKED_INSUFFICIENT_BALANCE = 38;    // Customer is not accessible for obtaining debit confirmation. This reason    // code maps to the `WC4` reason code as defined in NPCI's `UDIR`    // specification.    WRONG_CREDIT_REPRESENTMENT_CUSTOMER_INACCESSIBLE = 39;    // Other reason for Wrong credit representment. This reason code maps to the    // `WC5` reason code as defined in NPCI's `UDIR` specification.    WRONG_CREDIT_REPRESENTMENT_REASON_OTHERS = 40;  }  // Required. The adjustment flag in URCS for the complaint transaction. This maps to  // `reqAdjFlag` in dispute request and `respAdjFlag` in dispute response.  AdjustmentFlag adjustment_flag = 1 [(google.api.field_behavior) = REQUIRED];  // Required. The adjustment code in URCS for the complaint transaction. This maps to  // `reqAdjCode` in dispute request.  ReasonCode adjustment_code = 2 [(google.api.field_behavior) = REQUIRED];}// Metadata for CreateComplaint.message CreateComplaintMetadata {}// Metadata for ResolveComplaint.message ResolveComplaintMetadata {}// Metadata for CreateDispute.message CreateDisputeMetadata {}// Metadata for ResolveDispute.message ResolveDisputeMetadata {}// The subtype of the complaint or dispute.enum TransactionSubType {  // Unspecified transaction subtype.  TRANSACTION_SUB_TYPE_UNSPECIFIED = 0;  // Beneficiary transaction subtype.  TRANSACTION_SUB_TYPE_BENEFICIARY = 1;  // Remitter transaction subtype.  TRANSACTION_SUB_TYPE_REMITTER = 2;}
 |