xref: /aosp_15_r20/external/googleapis/google/cloud/paymentgateway/issuerswitch/v1/resolutions.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1// Copyright 2023 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto3";
16
17package google.cloud.paymentgateway.issuerswitch.v1;
18
19import "google/api/annotations.proto";
20import "google/api/client.proto";
21import "google/api/field_behavior.proto";
22import "google/api/resource.proto";
23import "google/cloud/paymentgateway/issuerswitch/v1/common_fields.proto";
24import "google/longrunning/operations.proto";
25import "google/protobuf/timestamp.proto";
26import "google/type/money.proto";
27
28option csharp_namespace = "Google.Cloud.PaymentGateway.IssuerSwitch.V1";
29option go_package = "cloud.google.com/go/paymentgateway/issuerswitch/apiv1/issuerswitchpb;issuerswitchpb";
30option java_multiple_files = true;
31option java_outer_classname = "ResolutionsProto";
32option java_package = "com.google.cloud.paymentgateway.issuerswitch.v1";
33option php_namespace = "Google\\Cloud\\PaymentGateway\\IssuerSwitch\\V1";
34option ruby_package = "Google::Cloud::PaymentGateway::IssuerSwitch::V1";
35
36// Creates and resolves UPI complaints and disputes.
37service IssuerSwitchResolutions {
38  option (google.api.default_host) = "issuerswitch.googleapis.com";
39  option (google.api.oauth_scopes) =
40      "https://www.googleapis.com/auth/cloud-platform";
41
42  // Create a complaint. The returned `Operation` type has
43  // the following method-specific fields:
44  //
45  // - `metadata`:
46  // [CreateComplaintMetadata][google.cloud.paymentgateway.issuerswitch.v1.CreateComplaintMetadata]
47  // - `response`:
48  // [Complaint][google.cloud.paymentgateway.issuerswitch.v1.Complaint]
49  rpc CreateComplaint(CreateComplaintRequest)
50      returns (google.longrunning.Operation) {
51    option (google.api.http) = {
52      post: "/v1/{parent=projects/*}/complaints"
53      body: "complaint"
54    };
55    option (google.api.method_signature) = "parent,complaint";
56    option (google.longrunning.operation_info) = {
57      response_type: "Complaint"
58      metadata_type: "CreateComplaintMetadata"
59    };
60  }
61
62  // Resolve a complaint. The returned `Operation` type has
63  // the following method-specific fields:
64  //
65  // - `metadata`:
66  // [ResolveComplaintMetadata][google.cloud.paymentgateway.issuerswitch.v1.ResolveComplaintMetadata]
67  // - `response`:
68  // [Complaint][google.cloud.paymentgateway.issuerswitch.v1.Complaint]
69  rpc ResolveComplaint(ResolveComplaintRequest)
70      returns (google.longrunning.Operation) {
71    option (google.api.http) = {
72      post: "/v1/{complaint.name=projects/*/complaints/*}:resolve"
73      body: "complaint"
74    };
75    option (google.api.method_signature) = "complaint";
76    option (google.longrunning.operation_info) = {
77      response_type: "Complaint"
78      metadata_type: "ResolveComplaintMetadata"
79    };
80  }
81
82  // Create a dispute. The returned `Operation` type has
83  // the following method-specific fields:
84  //
85  // - `metadata`:
86  // [CreateDisputeMetadata][google.cloud.paymentgateway.issuerswitch.v1.CreateDisputeMetadata]
87  // - `response`:
88  // [Dispute][google.cloud.paymentgateway.issuerswitch.v1.Dispute]
89  rpc CreateDispute(CreateDisputeRequest)
90      returns (google.longrunning.Operation) {
91    option (google.api.http) = {
92      post: "/v1/{parent=projects/*}/disputes"
93      body: "dispute"
94    };
95    option (google.api.method_signature) = "parent,dispute";
96    option (google.longrunning.operation_info) = {
97      response_type: "Dispute"
98      metadata_type: "CreateDisputeMetadata"
99    };
100  }
101
102  // Resolve a dispute. The returned `Operation` type has
103  // the following method-specific fields:
104  //
105  // - `metadata`:
106  // [ResolveDisputeMetadata][google.cloud.paymentgateway.issuerswitch.v1.ResolveDisputeMetadata]
107  // - `response`:
108  // [Dispute][google.cloud.paymentgateway.issuerswitch.v1.Dispute]
109  rpc ResolveDispute(ResolveDisputeRequest)
110      returns (google.longrunning.Operation) {
111    option (google.api.http) = {
112      post: "/v1/{dispute.name=projects/*/disputes/*}:resolve"
113      body: "dispute"
114    };
115    option (google.api.method_signature) = "dispute";
116    option (google.longrunning.operation_info) = {
117      response_type: "Dispute"
118      metadata_type: "ResolveDisputeMetadata"
119    };
120  }
121}
122
123// A complaint processed by the issuer switch.
124message Complaint {
125  option (google.api.resource) = {
126    type: "issuerswitch.googleapis.com/Complaint"
127    pattern: "projects/{project}/complaints/{complaint}"
128  };
129
130  // The name of the complaint. This uniquely identifies the complaint.
131  // Format of name is
132  // projects/{project_id}/complaints/{complaint_id}.
133  string name = 1;
134
135  // The reason for raising the complaint. This maps adjustment flag
136  // and reason code for the complaint to `reqAdjFlag` and `reqAdjCode` in
137  // complaint request respectively while raising a complaint.
138  RaiseComplaintAdjustment raise_complaint_adjustment = 2;
139
140  // Required. Details required for raising / resolving a complaint.
141  CaseDetails details = 4 [(google.api.field_behavior) = REQUIRED];
142
143  // Output only. Response to the raised / resolved complaint.
144  CaseResponse response = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
145
146  // The reason for resolving the complaint. It provides adjustment values while
147  // resolving and for already resolved complaints. This maps adjustment flag
148  // and reason code for the complaint to `reqAdjFlag` and `reqAdjCode` in
149  // complaint request respectively when a complete resolution is done via
150  // Resolve Complaint API otherwise maps to `respAdjFlag` and `respAdjCode` in
151  // complaint response respectively when a complaint request from UPI is
152  // directly resolved by issuer switch.
153  ResolveComplaintAdjustment resolve_complaint_adjustment = 6;
154}
155
156// Request for the `CreateComplaint` method.
157message CreateComplaintRequest {
158  // Required. The parent resource for the complaint. The format is
159  // `projects/{project}`.
160  string parent = 1 [
161    (google.api.field_behavior) = REQUIRED,
162    (google.api.resource_reference) = {
163      child_type: "issuerswitch.googleapis.com/Complaint"
164    }
165  ];
166
167  // Required. The complaint to be raised.
168  Complaint complaint = 2 [(google.api.field_behavior) = REQUIRED];
169}
170
171// Request for the `ResolveComplaint` method.
172message ResolveComplaintRequest {
173  // Required. The complaint to be resolved.
174  Complaint complaint = 1 [(google.api.field_behavior) = REQUIRED];
175}
176
177// A dispute processed by the issuer switch.
178message Dispute {
179  option (google.api.resource) = {
180    type: "issuerswitch.googleapis.com/Dispute"
181    pattern: "projects/{project}/disputes/{dispute}"
182  };
183
184  // The name of the dispute. This uniquely identifies the dispute.
185  // Format of name is
186  // projects/{project_id}/disputes/{dispute_id}.
187  string name = 1;
188
189  // The reason for raising the dispute. This maps adjustment flag
190  // and reason code for the dispute to `reqAdjFlag` and `reqAdjCode` in
191  // complaint request respectively while raising a dispute.
192  RaiseDisputeAdjustment raise_dispute_adjustment = 2;
193
194  // Required. Details required for raising/resolving dispute.
195  CaseDetails details = 4 [(google.api.field_behavior) = REQUIRED];
196
197  // Output only. Response to the raised/resolved dispute.
198  CaseResponse response = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
199
200  // The reason for resolving the dispute. It provides adjustment values while
201  // resolving and for already resolved disputes. This maps adjustment flag
202  // and reason code for the dispute to `reqAdjFlag` and `reqAdjCode` in
203  // dispute request respectively while resolving a dispute.
204  ResolveDisputeAdjustment resolve_dispute_adjustment = 6;
205}
206
207// Request for the `CreateDispute` method.
208message CreateDisputeRequest {
209  // Required. The parent resource for the dispute. The format is
210  // `projects/{project}`.
211  string parent = 1 [
212    (google.api.field_behavior) = REQUIRED,
213    (google.api.resource_reference) = {
214      child_type: "issuerswitch.googleapis.com/Dispute"
215    }
216  ];
217
218  // Required. The dispute to be raised.
219  Dispute dispute = 2 [(google.api.field_behavior) = REQUIRED];
220}
221
222// Request for the `ResolveDispute` method.
223message ResolveDisputeRequest {
224  // Required. The dispute to be resolved.
225  Dispute dispute = 1 [(google.api.field_behavior) = REQUIRED];
226}
227
228// Details of original transaction.
229message OriginalTransaction {
230  // Required. Uniquely identifies the original transaction. This maps to the
231  // `Txn.Id` value of the original transaction in India's UPI system.
232  string transaction_id = 1 [(google.api.field_behavior) = REQUIRED];
233
234  // Required. Retrieval Reference Number (RRN) of the original transaction.
235  string retrieval_reference_number = 2
236      [(google.api.field_behavior) = REQUIRED];
237
238  // Timestamp of the original transaction request.
239  google.protobuf.Timestamp request_time = 3;
240}
241
242// Details of the complaint or dispute.
243message CaseDetails {
244  // Required. Details of original transaction.
245  OriginalTransaction original_transaction = 1
246      [(google.api.field_behavior) = REQUIRED];
247
248  // Required. Initiator of the complaint / dispute.
249  TransactionSubType transaction_sub_type = 2
250      [(google.api.field_behavior) = REQUIRED];
251
252  // Required. The adjustment amount in URCS for the complaint / dispute. This
253  // maps to `reqAdjAmount` in complaint request.
254  google.type.Money amount = 3 [(google.api.field_behavior) = REQUIRED];
255
256  // The original response code which has been updated in the complaint
257  // Response. This should map to settlement response code currently available
258  // in URCS system.
259  string original_settlement_response_code = 4;
260
261  // Required. Set to true if the complaint / dispute belongs to current
262  // settlement cycle, false otherwise.
263  bool current_cycle = 5 [(google.api.field_behavior) = REQUIRED];
264}
265
266// Response to the complaint or dispute.
267message CaseResponse {
268  // The status of the complaint or dispute transaction. This maps to `result`
269  // in complaint transaction response.
270  enum Result {
271    // Unspecified status.
272    RESULT_UNSPECIFIED = 0;
273
274    // The transaction has successfully completed.
275    SUCCESS = 1;
276
277    // The transaction has failed.
278    FAILURE = 2;
279  }
280
281  // Complaint Reference Number(CRN) sent by UPI as a reference against the
282  // generated complaint / dispute.
283  string complaint_reference_number = 1;
284
285  // The adjustment amount of the response. This maps to `adjAmt` in
286  // complaint response.
287  google.type.Money amount = 2;
288
289  // The adjustment flag in response to the complaint. This maps adjustment flag
290  // in URCS for the complaint transaction to `Resp.Ref.adjFlag` in complaint
291  // response.
292  string adjustment_flag = 3;
293
294  // The adjustment code in response to the complaint. This maps reason code in
295  // URCS for the complaint transaction to `Resp.Ref.adjCode` in complaint
296  // response.
297  string adjustment_code = 4;
298
299  // It defines the Adjustment Reference ID which has been updated in the
300  // complaint response. This maps to `adjRefID` in complaint response.
301  string adjustment_reference_id = 5;
302
303  // Adjustment Remarks. This maps to `adjRemarks` in complaint response.
304  string adjustment_remarks = 6;
305
306  // The Approval Reference Number. This maps to `approvalNum` in complaint
307  // response.
308  string approval_number = 7;
309
310  // Process Status of the transaction. This maps to `procStatus` in complaint
311  // response.
312  string process_status = 8;
313
314  // The adjustment timestamp when bank performs the adjustment for the received
315  // complaint request. This maps to `adjTs` in complaint response.
316  google.protobuf.Timestamp adjustment_time = 9;
317
318  // The details of the participant of the original financial transaction.
319  oneof participant {
320    // The payer in the original financial transaction.
321    Participant payer = 10;
322
323    // The payee in the original financial transaction.
324    Participant payee = 11;
325  }
326
327  // The result of the transaction.
328  Result result = 12;
329}
330
331// The adjusment flag and reason code for raising complaint.
332message RaiseComplaintAdjustment {
333  // The adjusment flag for raising complaint.
334  enum AdjustmentFlag {
335    // Unspecified adjustment flag.
336    ADJUSTMENT_FLAG_UNSPECIFIED = 0;
337
338    // Complaint Raise. This flag maps to the `PBRB` adjustment flag as defined
339    // in NPCI's `UDIR` specification.
340    RAISE = 1;
341  }
342
343  // The reason for raising complaint.
344  enum ReasonCode {
345    // Unspecified reason code.
346    REASON_CODE_UNSPECIFIED = 0;
347
348    // Customer account has not yet reversed for a declined pay transaction.
349    // This reason code maps to the `U005` reason code as defined in NPCI's
350    // `UDIR` specification.
351    CUSTOMER_ACCOUNT_NOT_REVERSED = 1;
352
353    // Goods / services are not provided for approved transaction.
354    // This reason code maps to the `U008` reason code as defined in NPCI's
355    // `UDIR` specification.
356    GOODS_SERVICES_NOT_PROVIDED = 2;
357
358    // Customer account not credited back for declined transaction. This
359    // reason code maps to the `U009` reason code as defined in NPCI's `UDIR`
360    // specification.
361    CUSTOMER_ACCOUNT_NOT_CREDITED_BACK = 3;
362
363    // Beneficiary account is not credited for successful pay transaction. This
364    // reason code maps to the `U010` reason code as defined in NPCI's `UDIR`
365    // specification.
366    BENEFICIARY_ACCOUNT_NOT_CREDITED = 4;
367
368    // Credit not processed for cancelled or returned goods and services.
369    // This reason code maps to the `U021` reason code as defined in NPCI's
370    // `UDIR` specification.
371    GOODS_SERVICES_CREDIT_NOT_PROCESSED = 5;
372
373    // Account debited but transaction confirmation not received at merchant
374    // location. This reason code maps to the `U022` reason code as defined in
375    // NPCI's `UDIR` specification.
376    MERCHANT_NOT_RECEIVED_CONFIRMATION = 6;
377
378    // Paid by alternate means / Duplicate payment. This reason code maps to the
379    // `U023` reason code as defined in NPCI's `UDIR` specification.
380    PAID_BY_ALTERNATE_MEANS = 7;
381  }
382
383  // Required. The adjustment flag in URCS for the complaint transaction. This
384  // maps to `reqAdjFlag` in complaint request and `respAdjFlag` in complaint
385  // response.
386  AdjustmentFlag adjustment_flag = 1 [(google.api.field_behavior) = REQUIRED];
387
388  // Required. The adjustment code in URCS for the complaint transaction. This
389  // maps to `reqAdjCode` in complaint request.
390  ReasonCode adjustment_code = 2 [(google.api.field_behavior) = REQUIRED];
391}
392
393// The adjusment flag and reason code for resolving the complaint.
394message ResolveComplaintAdjustment {
395  // The adjusment flag for resolving the complaint.
396  enum AdjustmentFlag {
397    // Unspecified adjustment flag.
398    ADJUSTMENT_FLAG_UNSPECIFIED = 0;
399
400    // Debit Reversal Confirmation. This flag maps to the `DRC` adjustment flag
401    // as defined in NPCI's `UDIR` specification.
402    DEBIT_REVERSAL_CONFIRMATION = 1;
403
404    // Return. This flag maps to the `RET` adjustment flag as defined in NPCI's
405    // `UDIR` specification.
406    RETURN = 2;
407
408    // Refund Reversal Confirmation. This flag maps to the `RRC` adjustment
409    // flag as defined in NPCI's `UDIR` specification.
410    REFUND_REVERSAL_CONFIRMATION = 3;
411
412    // Transaction Credit Confirmation. This flag maps to the `TCC` adjustment
413    // flag as defined in NPCI's `UDIR` specification.
414    TRANSACTION_CREDIT_CONFIRMATION = 4;
415  }
416
417  // The complaint resolution reason code.
418  enum ReasonCode {
419    // Unspecified reason code.
420    REASON_CODE_UNSPECIFIED = 0;
421
422    // Customer account has been reversed online for DRC dispute or beneficiary
423    // account has been credited online for TCC dispute. This reason code maps
424    // to the `102` reason code as defined in NPCI's `UDIR` specification.
425    COMPLAINT_RESOLVED_ONLINE = 1;
426
427    // Customer account has been reversed now or manually post reconciliation
428    // for DRC dispute or beneficiary account has been credited now or manually
429    // post reconciliation for TCC dispute. This reason code maps to the `103`
430    // reason code as defined in NPCI's `UDIR` specification.
431    COMPLAINT_RESOLVED_NOW_OR_MANUALLY = 2;
432
433    // Online decline response failed. This reason code maps to the
434    // `104` reason code as defined in NPCI's `UDIR` specification.
435    ORIGINAL_TRANSACTION_NOT_DONE = 3;
436
437    // Account closed. This reason code maps to the `114` reason code for
438    // RET dispute as defined in NPCI's `UDIR` specification.
439    RET_ACCOUNT_CLOSED = 4;
440
441    // Account does not exist. This reason code maps to the `115` reason code
442    // for RET dispute as defined in NPCI's `UDIR` specification.
443    RET_ACCOUNT_DOES_NOT_EXIST = 5;
444
445    // Party instructions. This reason code maps to the `116` reason code for
446    // RET dispute as defined in NPCI's `UDIR` specification.
447    RET_PARTY_INSTRUCTIONS = 6;
448
449    // NRI account. This reason code maps to the `117` reason code for RET
450    // dispute as defined in NPCI's `UDIR` specification.
451    RET_NRI_ACCOUNT = 7;
452
453    // Credit freezed. This reason code maps to the `118` reason code for RET
454    // dispute as defined in NPCI's `UDIR` specification.
455    RET_CREDIT_FREEZED = 8;
456
457    // Invalid beneficiary details. This reason code maps to the `119` reason
458    // code for RET dispute as defined in NPCI's `UDIR` specification.
459    RET_INVALID_BENEFICIARY_DETAILS = 9;
460
461    // Any other reason. This reason code maps to the `120` reason code for RET
462    // dispute as defined in NPCI's `UDIR` specification.
463    RET_ANY_OTHER_REASON = 10;
464
465    // Beneficiary bank unable to credit their customer account.
466    // This reason code maps to the `1094` reason code for RET dispute as
467    // defined in NPCI's `UDIR` specification.
468    RET_BENEFICIARY_CANNOT_CREDIT = 11;
469
470    // Account debited but transaction confirmation not received at merchant
471    // location. This reason code maps to the `1065` reason code for Credit
472    // adjustment and RET dispute as defined in NPCI's `UDIR` specification.
473    RET_MERCHANT_NOT_RECEIVED_CONFIRMATION = 12;
474
475    // Customer account has been credited. This reason code maps to the `501`
476    // reason code for Refund reversal confirmation dispute as defined in NPCI's
477    // `UDIR` specification.
478    RRC_CUSTOMER_ACCOUNT_CREDITED = 13;
479  }
480
481  // Required. The adjustment flag in URCS for the complaint transaction. This
482  // maps to `reqAdjFlag` in complaint request and `respAdjFlag` in complaint
483  // response.
484  AdjustmentFlag adjustment_flag = 1 [(google.api.field_behavior) = REQUIRED];
485
486  // Required. The adjustment code in URCS for the complaint transaction. This
487  // maps to `reqAdjCode` in complaint request.
488  ReasonCode adjustment_code = 2 [(google.api.field_behavior) = REQUIRED];
489}
490
491// The adjusment flag and reason code for raising dispute.
492message RaiseDisputeAdjustment {
493  // The adjusment flag for raising dispute.
494  enum AdjustmentFlag {
495    // Unspecified adjustment flag.
496    ADJUSTMENT_FLAG_UNSPECIFIED = 0;
497
498    // Chargeback Raise. This flag maps to the `B` adjustment flag as
499    // defined in NPCI's `UDIR` specification.
500    CHARGEBACK_RAISE = 1;
501
502    // Fraud Chargeback Raise. This flag maps to the `FC` adjustment flag
503    // as defined in NPCI's `UDIR` specification.
504    FRAUD_CHARGEBACK_RAISE = 2;
505
506    // Wrong Credit Chargeback Raise. This flag maps to the `WC` adjustment
507    // flag as defined in NPCI's `UDIR` specification.
508    WRONG_CREDIT_CHARGEBACK_RAISE = 3;
509
510    // Deferred Chargeback Raise. This flag maps to the `FB` adjustment flag
511    // as defined in NPCI's `UDIR` specification.
512    DEFERRED_CHARGEBACK_RAISE = 4;
513
514    // Pre-Arbitration Raise. This flag maps to the `P` adjustment flag as
515    // defined in NPCI's `UDIR` specification.
516    PRE_ARBITRATION_RAISE = 5;
517
518    // Deferred Pre-Arbitration Raise. This flag maps to the `FP` adjustment
519    // flag as defined in NPCI's `UDIR` specification.
520    DEFERRED_PRE_ARBITRATION_RAISE = 6;
521
522    // Arbitration Raise. This flag maps to the `AR` adjustment flag as
523    // defined in NPCI's `UDIR` specification.
524    ARBITRATION_RAISE = 7;
525
526    // Deferred Arbitration Raise. This flag maps to the `FAR` adjustment flag
527    // as defined in NPCI's `UDIR` specification.
528    DEFERRED_ARBITRATION_RAISE = 8;
529  }
530
531  // The reason for raising dispute.
532  enum ReasonCode {
533    // Unspecified reason code.
534    REASON_CODE_UNSPECIFIED = 0;
535
536    // Remitter account is debited but beneficiary account is not credited.
537    // This reason code maps to the `108` reason code as defined in
538    // NPCI's `UDIR` specification.
539    CHARGEBACK_RAISE_REMITTER_DEBITED_BENEFICIARY_NOT_CREDITED = 1;
540
541    // Remitter bank customer still disputes that beneficiary account is not
542    // credited. This reason code maps to the `109` reason code as defined in
543    // NPCI's `UDIR` specification.
544    PRE_ARBITRATION_RAISE_BENEFICIARY_NOT_CREDITED = 2;
545
546    // TCC has been raised but customer still complaining that beneficiary
547    // account is not credited. This reason code maps to the `121` reason code
548    // as defined in NPCI's `UDIR` specification.
549    DEFERRED_CHARGEBACK_RAISE_BENEFICIARY_NOT_CREDITED = 3;
550
551    // Customer is still complaining for not crediting the beneficiary
552    // customer account. This reason code maps to the `124` reason code as
553    // defined in NPCI's `UDIR` specification.
554    DEFERRED_PRE_ARBITRATION_RAISE_BENEFICIARY_NOT_CREDITED = 4;
555
556    // Customer is complaining even after raising Deferred Chargeback and
557    // Pre-Arbitration on Deferred Chargeback where both have been rejected by
558    // beneficiary bank. This reason code maps to the `127` reason code as
559    // defined in NPCI's `UDIR` specification.
560    DEFERRED_ARBITRATION_RAISE_DEFERRED_CHARGEBACK_PRE_ARBITRATION_REJECTED = 5;
561
562    // Chargeback on fraudulent transaction. This reason code maps to the `128`
563    // reason code as defined in NPCI's `UDIR` specification.
564    CHARGEBACK_ON_FRAUD = 6;
565
566    // Credit not processed for cancelled or returned goods and services. This
567    // reason code maps to the `1061` reason code as defined in NPCI's `UDIR`
568    // specification.
569    GOODS_SERVICES_CREDIT_NOT_PROCESSED = 7;
570
571    // Goods and services not as described / defective. This reason code maps to
572    // the `1062` reason code as defined in NPCI's `UDIR` specification.
573    GOODS_SERVICES_DEFECTIVE = 8;
574
575    // Paid by alternate means. This reason code maps to the `1063` reason code
576    // as defined in NPCI's `UDIR` specification.
577    PAID_BY_ALTERNATE_MEANS = 9;
578
579    // Goods or services not provided / not received. This reason code maps to
580    // the `1064` reason code as defined in NPCI's `UDIR` specification.
581    GOODS_SERVICES_NOT_RECEIVED = 10;
582
583    // Account debited but transaction confirmation not received at merchant
584    // location. This reason code maps to the `1065` reason code for chargeback
585    // raise and deferred chargeback raise as defined in NPCI's `UDIR`
586    // specification.
587    MERCHANT_NOT_RECEIVED_CONFIRMATION = 11;
588
589    // Transaction not steeled within the specified timeframes. This reason code
590    // maps to the `1081` reason code as defined in NPCI's `UDIR` specification.
591    TRANSACTION_NOT_STEELED = 12;
592
593    // Duplicate / Multiple transaction. This reason code maps to the `1084`
594    // reason code as defined in NPCI's `UDIR` specification.
595    DUPLICATE_TRANSACTION = 13;
596
597    // Card holder was charged more than the transaction amount.
598    // This reason code maps to the `1085` reason code for Chargeback raise
599    // dispute as defined in NPCI's `UDIR` specification.
600    CHARGEBACK_CARD_HOLDER_CHARGED_MORE = 14;
601
602    // Customer is still claiming that services are not delivered. This reason
603    // code maps to the `1097` reason code as defined in NPCI's `UDIR`
604    // specification.
605    CUSTOMER_CLAIMING_GOODS_SERVICES_NOT_DELIVERED = 15;
606
607    // Both the parties denied to agree. This reason code maps to the `1100`
608    // reason code as defined in NPCI's `UDIR` specification.
609    PARTIES_DENIED = 16;
610
611    // Customer transferred funds to the unintended beneficiary account. This
612    // reason code maps to the `WC1` reason code as defined in NPCI's `UDIR`
613    // specification.
614    FUNDS_TRANSFERRED_TO_UNINTENDED_BENEFICIARY = 17;
615  }
616
617  // Required. The adjustment flag in URCS for the complaint transaction. This
618  // maps to `reqAdjFlag` in dispute request and `respAdjFlag` in dispute
619  // response.
620  AdjustmentFlag adjustment_flag = 1 [(google.api.field_behavior) = REQUIRED];
621
622  // Required. The adjustment code in URCS for the complaint transaction. This
623  // maps to `reqAdjCode` in dispute request.
624  ReasonCode adjustment_code = 2 [(google.api.field_behavior) = REQUIRED];
625}
626
627// The adjusment flag and reason code for resolving the dispute.
628message ResolveDisputeAdjustment {
629  // The adjusment flag for resolving the dispute.
630  enum AdjustmentFlag {
631    // Unspecified adjustment flag.
632    ADJUSTMENT_FLAG_UNSPECIFIED = 0;
633
634    // Re-presentment Raise. This flag maps to the `R` adjustment flag as
635    // defined in NPCI's `UDIR` specification.
636    RE_PRESENTMENT_RAISE = 1;
637
638    // Deferred Re-presentment Raise. This flag maps to the `FR` adjustment
639    // flag as defined in NPCI's `UDIR` specification.
640    DEFERRED_RE_PRESENTMENT_RAISE = 2;
641
642    // Chargeback Acceptance. This flag maps to the `A` adjustment flag as
643    // defined in NPCI's `UDIR` specification.
644    CHARGEBACK_ACCEPTANCE = 3;
645
646    // Deferred Chargeback Acceptance. This flag maps to the `FA` adjustment
647    // flag as defined in NPCI's `UDIR` specification.
648    DEFERRED_CHARGEBACK_ACCEPTANCE = 4;
649
650    // Pre-Arbitration Acceptance. This flag maps to the `AP` adjustment flag as
651    // defined in NPCI's `UDIR` specification.
652    PRE_ARBITRATION_ACCEPTANCE = 5;
653
654    // Deferred Pre-Arbitration Acceptance. This flag maps to the `FAP`
655    // adjustment flag as defined in NPCI's `UDIR` specification.
656    DEFERRED_PRE_ARBITRATION_ACCEPTANCE = 6;
657
658    // Pre-Arbitration Declined. This flag maps to the `PR` adjustment flag as
659    // defined in NPCI's `UDIR` specification.
660    PRE_ARBITRATION_DECLINED = 7;
661
662    // Deferred Pre-Arbitration Declined. This flag maps to the `FPR` adjustment
663    // flag as defined in NPCI's `UDIR` specification.
664    DEFERRED_PRE_ARBITRATION_DECLINED = 8;
665
666    // Arbitration Acceptance. This flag maps to the `ACA` adjustment flag as
667    // defined in NPCI's `UDIR` specification.
668    ARBITRATION_ACCEPTANCE = 9;
669
670    // Arbitration Continuation. This flag maps to the `ACC` adjustment flag as
671    // defined in NPCI's `UDIR` specification.
672    ARBITRATION_CONTINUATION = 10;
673
674    // Arbitration Withdrawn. This flag maps to the `ACW` adjustment flag as
675    // defined in NPCI's `UDIR` specification.
676    ARBITRATION_WITHDRAWN = 11;
677
678    // Arbitration Verdict. This flag maps to the `ACV` adjustment flag as
679    // defined in NPCI's `UDIR` specification.
680    ARBITRATION_VERDICT = 12;
681
682    // Credit Adjustment. This flag maps to the `C` adjustment flag as
683    // defined in NPCI's `UDIR` specification.
684    CREDIT_ADJUSTMENT = 13;
685
686    // Fraud Chargeback Representment. This flag maps to the `FCR` adjustment
687    // flag as defined in NPCI's `UDIR` specification.
688    FRAUD_CHARGEBACK_REPRESENTMENT = 14;
689
690    // Fraud Chargeback Accept. This flag maps to the `FCA` adjustment flag
691    // as defined in NPCI's `UDIR` specification.
692    FRAUD_CHARGEBACK_ACCEPT = 15;
693
694    // Wrong Credit Representment. This flag maps to the `WR` adjustment
695    // flag as defined in NPCI's `UDIR` specification.
696    WRONG_CREDIT_REPRESENTMENT = 16;
697
698    // Wrong Credit Chargeback Acceptance. This flag maps to the `WA` adjustment
699    // flag as defined in NPCI's `UDIR` specification.
700    WRONG_CREDIT_CHARGEBACK_ACCEPTANCE = 17;
701
702    // Manual Adjustment. This flag maps to the `MA` adjustment flag as defined
703    // in NPCI's `UDIR` specification.
704    MANUAL_ADJUSTMENT = 18;
705  }
706
707  // The dispute resolution reason code.
708  enum ReasonCode {
709    // Unspecified reason code.
710    REASON_CODE_UNSPECIFIED = 0;
711
712    // Beneficiary bank unable to credit their customer account for Chargeback
713    // Acceptance dispute or duplicate processing for Pre Arbitration Acceptance
714    // dispute. This reason code maps to the `111` reason code as defined in
715    // NPCI's `UDIR` specification.
716    CHARGEBACK_BENEFICIARY_CANNOT_CREDIT_OR_PRE_ARBITRATION_DUPLICATE_PROCESS =
717        1;
718
719    // Beneficiary account has been credited online. This reason code maps to
720    // the `112` reason code for Pre-arbitration declined dispute as defined in
721    // NPCI's `UDIR` specification.
722    PRE_ARBITRATION_DECLINED_BENEFICIARY_CREDITED_ONLINE = 3;
723
724    // Beneficiary account has been credited manually post reconciliation. This
725    // reason code maps to the `113` reason code for Pre-arbitration declined
726    // dispute as defined in NPCI's `UDIR` specification.
727    PRE_ARBITRATION_DECLINED_BENEFICIARY_CREDITED_MANUALLY = 4;
728
729    // Customer account is not credited, TCC raised inadvertently. This reason
730    // code maps to the `122` reason code as defined in NPCI's `UDIR`
731    // specification.
732    DEFERRED_CHARGEBACK_ACCEPTANCE_ACCOUNT_NOT_CREDITED_TCC_RAISED = 5;
733
734    // Customer account is credited successfully and TCC raised accordingly.
735    // This reason code maps to the `123` reason code as defined in NPCI's
736    // `UDIR` specification.
737    DEFERRED_RE_PRESENTMENT_RAISE_ACCOUNT_CREDITED_TCC_RAISED = 6;
738
739    // Customer account is not credited, TCC and Re-Presentment raised
740    // inadvertently. This reason code maps to the `125` reason code as defined
741    // in NPCI's `UDIR` specification.
742    DEFERRED_PRE_ARBITRATION_ACCEPTANCE_ACCOUNT_NOT_CREDITED = 7;
743
744    // Customer account is credited successfully and TCC and Re-Presentment
745    // raised accordingly. This reason code maps to the `126` reason code as
746    // defined in NPCI's `UDIR` specification.
747    DEFERRED_PRE_ARBITRATION_DECLINED_ACCOUNT_CREDITED = 8;
748
749    // Amount has been recovered successfully from the fraudulent customer
750    // account. This reason code maps to the `129` reason code as defined
751    // in NPCI's `UDIR` specification.
752    FRAUD_CHARGEBACK_ACCEPT_AMOUNT_RECOVERED_FROM_FRAUDULENT_ACCOUNT = 9;
753
754    // Lien marked however, customer account is not having sufficient balance to
755    // debit. This reason code maps to the `130` reason code for
756    // Fraud chargeback representment dispute as defined in NPCI's `UDIR`
757    // specification.
758    FRAUD_CHARGEBACK_REPRESENTMENT_LIEN_MARKED_INSUFFICIENT_BALANCE = 10;
759
760    // FIR Copy not provided for the disputed transaction. This reason code maps
761    // to the `131` reason code as defined in NPCI's `UDIR` specification.
762    FRAUD_CHARGEBACK_REPRESENTMENT_FIR_NOT_PROVIDED = 11;
763
764    // Other reason for Fraud chargeback representment dispute. This reason code
765    // maps to the `132` reason code as defined in NPCI's `UDIR` specification.
766    FRAUD_CHARGEBACK_REPRESENTMENT_REASON_OTHERS = 12;
767
768    // Beneficiary account credited online. This reason code maps to the `208`
769    // reason code for Re-presentment raise dispute as defined in NPCI's `UDIR`
770    // specification.
771    RE_PRESENTMENT_RAISE_BENEFICIARY_CREDITED_ONLINE = 13;
772
773    // Beneficiary account credited manually post reconciliation. This reason
774    // code maps to the `209` reason code for Re-presentment raise dispute as
775    // defined in NPCI's `UDIR` specification.
776    RE_PRESENTMENT_RAISE_BENEFICIARY_CREDITED_MANUALLY = 14;
777
778    // Credit not processed for cancelled or returned goods and services. This
779    // reason code maps to the `1061` reason code as defined in NPCI's `UDIR`
780    // specification.
781    CREDIT_ADJUSTMENT_GOODS_SERVICES_CREDIT_NOT_PROCESSED = 15;
782
783    // Goods and Services not as described / defective. This reason code maps to
784    // the `1062` reason code as defined in NPCI's `UDIR` specification.
785    CREDIT_ADJUSTMENT_GOODS_SERVICES_DEFECTIVE = 16;
786
787    // Paid by alternate means. This reason code maps to the `1063` reason code
788    // as defined in NPCI's `UDIR` specification.
789    CREDIT_ADJUSTMENT_PAID_BY_ALTERNATE_MEANS = 17;
790
791    // Goods or Services Not Provided / Not Received. This reason code maps to
792    // the `1064` reason code as defined in NPCI's `UDIR` specification.
793    CREDIT_ADJUSTMENT_GOODS_SERVICES_NOT_RECEIVED = 18;
794
795    // Account debited but transaction confirmation not received at merchant
796    // location. This reason code maps to the `1065` reason code for Credit
797    // adjustment as defined in NPCI's `UDIR` specification.
798    CREDIT_ADJUSTMENT_MERCHANT_NOT_RECEIVED_CONFIRMATION = 19;
799
800    // Duplicate /Multiple Transaction. This reason code maps to the `1084`
801    // reason code as defined in NPCI's `UDIR` specification.
802    CREDIT_ADJUSTMENT_DUPLICATE_TRANSACTION = 20;
803
804    // Other reason for Credit adjustment. This reason code maps to the `1090`
805    // reason code as defined in NPCI's `UDIR` specification.
806    CREDIT_ADJUSTMENT_REASON_OTHERS = 21;
807
808    // Non Matching account number. This reason code maps to the `1091`
809    // reason code as defined in NPCI's `UDIR` specification.
810    CREDIT_ADJUSTMENT_NON_MATCHING_ACCOUNT_NUMBER = 22;
811
812    // Card holder was charged more than the transaction amount.
813    // This reason code maps to the `1092` reason code as defined in NPCI's
814    // `UDIR` specification.
815    CREDIT_ADJUSTMENT_CARD_HOLDER_CHARGED_MORE = 23;
816
817    // Credit not Processed. This reason code maps to the `1093` reason code as
818    // defined in NPCI's `UDIR` specification.
819    CREDIT_ADJUSTMENT_CREDIT_NOT_PROCESSED = 24;
820
821    // Beneficiary bank unable to credit their customer account. This reason
822    // code maps to the `1094` reason code for Credit Adjustment dispute as
823    // defined in NPCI's `UDIR` specification.
824    CREDIT_ADJUSTMENT_BENEFICIARY_CANNOT_CREDIT = 25;
825
826    // Merchant was unable to provide the service. This reason code maps to the
827    // `1095` reason code as defined in NPCI's `UDIR` specification.
828    CHARGEBACK_ACCEPTANCE_MERCHANT_CANNOT_PROVIDE_SERVICE = 26;
829
830    // Services/Goods provided see the supporting document. This reason code
831    // maps to the `1096` reason code as defined in NPCI's `UDIR` specification.
832    RE_PRESENTMENT_RAISE_GOODS_SERVICES_PROVIDED = 27;
833
834    // Services provided later see supporting documents. This reason code maps
835    // to the `1098` reason code as defined in NPCI's `UDIR` specification.
836    PRE_ARBITRATION_DECLINED_SERVICES_PROVIDED_LATER = 28;
837
838    // Services not provided by the merchant. This reason code maps to the
839    // `1099` reason code as defined in NPCI's `UDIR` specification.
840    PRE_ARBITRATION_ACCEPTANCE_SERVICES_NOT_PROVIDED_BY_MERCHANT = 29;
841
842    // Illegible Fulfilment. This reason code maps to the `1101` reason code for
843    // arbitration acceptance dispute as defined in NPCI's `UDIR` specification.
844    ARBITRATION_ACCEPTANCE_ILLEGIBLE_FULFILMENT = 30;
845
846    // Customer has still not received the service. This reason code maps to the
847    // `1102` reason code as defined in NPCI's `UDIR` specification.
848    ARBITRATION_CONTINUATION_CUSTOMER_STILL_NOT_RECEIVED_SERVICE = 31;
849
850    // Customer has received the service later. This reason code maps to the
851    // `1103` reason code as defined in NPCI's `UDIR` specification.
852    ARBITRATION_WITHDRAWN_CUSTOMER_RECEIVED_SERVICE_LATER = 32;
853
854    // Panel will give the verdict. This reason code maps to the `1104` reason
855    // code as defined in NPCI's `UDIR` specification.
856    ARBITRATION_VERDICT_PANEL_VERDICT = 33;
857
858    // Manual adjustment. This reason code maps to the `2001` reason code as
859    // defined in NPCI's `UDIR` specification.
860    MANUAL_ADJUSTMENT_REASON = 34;
861
862    // Attributing to the Customer. This reason code maps to the `AC` reason
863    // code as defined in NPCI's `UDIR` specification.
864    ATTRIBUTING_CUSTOMER = 35;
865
866    // Attributing to the Technical issue at bank/aggregator/merchant. This
867    // reason code maps to the `AT` reason code as defined in NPCI's `UDIR`
868    // specification.
869    ATTRIBUTING_TECHNICAL_ISSUE = 36;
870
871    // Amount has been recovered successfully from the unintended customer
872    // account. This reason code maps to the `WC2` reason code as defined in
873    // NPCI's `UDIR` specification.
874    WRONG_CREDIT_CHARGEBACK_ACCEPTANCE_AMOUNT_RECOVERED = 37;
875
876    // Lien marked however customer account is not having sufficient balance to
877    // debit the customer account. This reason code maps to the `WC3` reason
878    // code for Wrong credit representment dispute as defined in NPCI's `UDIR`
879    // specification.
880    WRONG_CREDIT_REPRESENTMENT_LIEN_MARKED_INSUFFICIENT_BALANCE = 38;
881
882    // Customer is not accessible for obtaining debit confirmation. This reason
883    // code maps to the `WC4` reason code as defined in NPCI's `UDIR`
884    // specification.
885    WRONG_CREDIT_REPRESENTMENT_CUSTOMER_INACCESSIBLE = 39;
886
887    // Other reason for Wrong credit representment. This reason code maps to the
888    // `WC5` reason code as defined in NPCI's `UDIR` specification.
889    WRONG_CREDIT_REPRESENTMENT_REASON_OTHERS = 40;
890  }
891
892  // Required. The adjustment flag in URCS for the complaint transaction. This
893  // maps to `reqAdjFlag` in dispute request and `respAdjFlag` in dispute
894  // response.
895  AdjustmentFlag adjustment_flag = 1 [(google.api.field_behavior) = REQUIRED];
896
897  // Required. The adjustment code in URCS for the complaint transaction. This
898  // maps to `reqAdjCode` in dispute request.
899  ReasonCode adjustment_code = 2 [(google.api.field_behavior) = REQUIRED];
900}
901
902// Metadata for CreateComplaint.
903message CreateComplaintMetadata {}
904
905// Metadata for ResolveComplaint.
906message ResolveComplaintMetadata {}
907
908// Metadata for CreateDispute.
909message CreateDisputeMetadata {}
910
911// Metadata for ResolveDispute.
912message ResolveDisputeMetadata {}
913
914// The subtype of the complaint or dispute.
915enum TransactionSubType {
916  // Unspecified transaction subtype.
917  TRANSACTION_SUB_TYPE_UNSPECIFIED = 0;
918
919  // Beneficiary transaction subtype.
920  TRANSACTION_SUB_TYPE_BENEFICIARY = 1;
921
922  // Remitter transaction subtype.
923  TRANSACTION_SUB_TYPE_REMITTER = 2;
924}
925