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