resolutions.proto 37 KB

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