xref: /aosp_15_r20/external/googleapis/google/cloud/paymentgateway/issuerswitch/v1/transactions.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/cloud/paymentgateway/issuerswitch/v1/resolutions.proto";
25import "google/longrunning/operations.proto";
26import "google/protobuf/timestamp.proto";
27import "google/type/date.proto";
28import "google/type/money.proto";
29
30option csharp_namespace = "Google.Cloud.PaymentGateway.IssuerSwitch.V1";
31option go_package = "cloud.google.com/go/paymentgateway/issuerswitch/apiv1/issuerswitchpb;issuerswitchpb";
32option java_multiple_files = true;
33option java_outer_classname = "TransactionsProto";
34option java_package = "com.google.cloud.paymentgateway.issuerswitch.v1";
35option php_namespace = "Google\\Cloud\\PaymentGateway\\IssuerSwitch\\V1";
36option ruby_package = "Google::Cloud::PaymentGateway::IssuerSwitch::V1";
37
38// Fetch the issuer switch participant.
39// Lists and exports transactions processed by the issuer switch.
40service IssuerSwitchTransactions {
41  option (google.api.default_host) = "issuerswitch.googleapis.com";
42  option (google.api.oauth_scopes) =
43      "https://www.googleapis.com/auth/cloud-platform";
44
45  // List metadata transactions that satisfy the specified filter criteria.
46  rpc ListMetadataTransactions(ListMetadataTransactionsRequest)
47      returns (ListMetadataTransactionsResponse) {
48    option (google.api.http) = {
49      get: "/v1/{parent=projects/*}/metadataTransactions"
50    };
51    option (google.api.method_signature) = "parent";
52  }
53
54  // List financial transactions that satisfy specified filter criteria.
55  rpc ListFinancialTransactions(ListFinancialTransactionsRequest)
56      returns (ListFinancialTransactionsResponse) {
57    option (google.api.http) = {
58      get: "/v1/{parent=projects/*}/financialTransactions"
59    };
60    option (google.api.method_signature) = "parent";
61  }
62
63  // List mandate transactions that satisfy specified filter criteria.
64  rpc ListMandateTransactions(ListMandateTransactionsRequest)
65      returns (ListMandateTransactionsResponse) {
66    option (google.api.http) = {
67      get: "/v1/{parent=projects/*}/mandateTransactions"
68    };
69    option (google.api.method_signature) = "parent";
70  }
71
72  // List complaint transactions that satisfy specified filter criteria.
73  rpc ListComplaintTransactions(ListComplaintTransactionsRequest)
74      returns (ListComplaintTransactionsResponse) {
75    option (google.api.http) = {
76      get: "/v1/{parent=projects/*}/complaintTransactions"
77    };
78    option (google.api.method_signature) = "parent";
79  }
80
81  // Export financial transactions received within the specified time range as a
82  // file into a configured target location. The returned `Operation` type has
83  // the following method-specific fields:
84  //
85  // - `metadata`:
86  // [ExportFinancialTransactionsMetadata][google.cloud.paymentgateway.issuerswitch.v1.ExportFinancialTransactionsMetadata]
87  // - `response`:
88  // [ExportFinancialTransactionsResponse][google.cloud.paymentgateway.issuerswitch.v1.ExportFinancialTransactionsResponse]
89  //
90  // The exported file will be in the standard CSV format where each row in the
91  // file represents a transaction. The file has the following fields in order:
92  //
93  // 1. `TransactionID`
94  //     * **Min Length** - 35 characters
95  //     * **Max Length** - 35 characters
96  //     * **Description** - UPI transaction ID.
97  // 1. `TransactionType`
98  //     * **Min Length** - 22 characters
99  //     * **Max Length** - 25 characters
100  //     * **Description** - Type of the transaction. This will be one of
101  //     `TRANSACTION_TYPE_CREDIT`, `TRANSACTION_TYPE_DEBIT` or
102  //     `TRANSACTION_TYPE_REVERSAL`.
103  // 1. `TransactionSubType`
104  //     * **Min Length** - 3 characters
105  //     * **Max Length** - 7 characters
106  //     * **Description** - Subtype of the transaction. This will be one of
107  //     `COLLECT`, or `PAY`.
108  // 1. `CreationTime`
109  //     * **Min Length** - 20 characters
110  //     * **Max Length** - 20 characters
111  //     * **Description** - Timestamp (in UTC) indicating when the issuer
112  //     switch created the transaction resource for processing the transaction.
113  //     The format will be as per RFC-3339. Example : 2022-11-22T23:00:05Z
114  // 1. `State`
115  //     * **Min Length** - 6 characters
116  //     * **Max Length** - 9 characters
117  //     * **Description** - State of the transaction. This will be one of
118  //     `FAILED`, `SUCCEEDED`, or `TIMED_OUT`.
119  // 1. `RRN`
120  //     * **Min Length** - 12 characters
121  //     * **Max Length** - 12 characters
122  //     * **Description** - Retrieval reference number associated with the
123  //     transaction.
124  // 1. `PayerVPA`
125  //     * **Min Length** - 3 characters
126  //     * **Max Length** - 255 characters
127  //     * **Description** - Virtual Payment Address (VPA) of the payer.
128  // 1. `PayerMobileNumber`
129  //     * **Min Length** - 12 characters
130  //     * **Max Length** - 12 characters
131  //     * **Description** - Mobile number of the payer.
132  // 1. `PayerIFSC`
133  //     * **Min Length** - 11 characters
134  //     * **Max Length** - 11 characters
135  //     * **Description** - IFSC of the payer's bank account.
136  // 1. `PayerAccountNumber`
137  //     * **Min Length** - 1 characters
138  //     * **Max Length** - 30 characters
139  //     * **Description** - Payer's bank account number.
140  // 1. `PayerAccountType`
141  //     * **Min Length** - 3 characters
142  //     * **Max Length** - 7 characters
143  //     * **Description** - Payer's bank account type. This will be one of
144  //     `SAVINGS`, `DEFAULT`, `CURRENT`, `NRE`, `NRO`, `PPIWALLET`,
145  //     `BANKWALLET`, `CREDIT`, `SOD`, or `UOD`.
146  // 1. `PayeeVPA`
147  //     * **Min Length** - 3 characters
148  //     * **Max Length** - 255 characters
149  //     * **Description** - Virtual Payment Address (VPA) of the payee.
150  // 1. `PayeeMobileNumber`
151  //     * **Min Length** - 12 characters
152  //     * **Max Length** - 12 characters
153  //     * **Description** - Payee's mobile number.
154  // 1. `PayeeIFSC`
155  //     * **Min Length** - 11 characters
156  //     * **Max Length** - 11 characters
157  //     * **Description** - IFSC of the payee's bank account.
158  // 1. `PayeeAccountNumber`
159  //     * **Min Length** - 1 characters
160  //     * **Max Length** - 30 characters
161  //     * **Description** - Payee's bank account number.
162  // 1. `PayeeAccountType`
163  //     * **Min Length** - 3 characters
164  //     * **Max Length** - 10 characters
165  //     * **Description** - Payee's bank account type. This will be one of
166  //     `SAVINGS`, `DEFAULT`, `CURRENT`, `NRE`, `NRO`, `PPIWALLET`,
167  //     `BANKWALLET`, `CREDIT`, `SOD`, or `UOD`.
168  // 1. `PayeeMerchantID`
169  //     * **Min Length** - 1 characters
170  //     * **Max Length** - 255 characters
171  //     * **Description** - Payee's merchant ID, only if the payee is a
172  //     merchant.
173  // 1. `PayeeMerchantName`
174  //     * **Min Length** - 1 characters
175  //     * **Max Length** - 99 characters
176  //     * **Description** - Payee's merchant name, only if the payee is a
177  //     merchant.
178  // 1. `PayeeMCC`
179  //     * **Min Length** - 4 characters
180  //     * **Max Length** - 4 characters
181  //     * **Description** - Payee's Merchant Category Code (MCC), only if the
182  //     payee is a merchant.
183  // 1. `Currency`
184  //     * **Min Length** - 3 characters
185  //     * **Max Length** - 3 characters
186  //     * **Description** - Currency of the amount involved in the transaction.
187  //     The currency codes are defined in ISO 4217.
188  // 1. `Amount`
189  //     * **Description** - Amount involved in the transaction.
190  // 1. `AdapterRequestIDs`
191  //     * **Min Length** - 0 characters
192  //     * **Max Length** - 2,000 characters
193  //     * **Description** - List of adapter request IDs (colon separated) used
194  //     when invoking the Adapter APIs for fulfilling a transaction request.
195  // 1. `ErrorCode`
196  //     * **Min Length** - 0 characters
197  //     * **Max Length** - 255 characters
198  //     * **Description** - Error code of a failed transaction.
199  // 1. `ErrorMessage`
200  //     * **Min Length** - 0 characters
201  //     * **Max Length** - 10,000 characters
202  //     * **Description** - Error description for a failed transaction.
203  // 1. `UPIErrorCode`
204  //     * **Min Length** - 0 characters
205  //     * **Max Length** - 3 characters
206  //     * **Description** - Error code as per the UPI specification. The issuer
207  //     switch maps the ErrorCode to an appropriate error code that complies
208  //     with the UPI specification.
209  // 1. `PayerDeviceInfoTypeAppName`
210  //     * **Min Length** - 0 characters
211  //     * **Max Length** - 20 characters
212  //     * **Description** - Payment application name on the payer's device.
213  // 1. `PayerDeviceInfoTypeCapability`
214  //     * **Min Length** - 0 characters
215  //     * **Max Length** - 99 characters
216  //     * **Description** - Capability of the payer's device.
217  // 1. `PayerDeviceInfoTypeGeoCode`
218  //     * **Min Length** - 0 characters
219  //     * **Max Length** - 15 characters
220  //     * **Description** - Geo code of the payer's device. This will include
221  //     floating point values for latitude and longitude (separated by colon).
222  // 1. `PayerDeviceInfoTypeID`
223  //     * **Min Length** - 0 characters
224  //     * **Max Length** - 35 characters
225  //     * **Description** - Device ID of the payer's device.
226  // 1. `PayerDeviceInfoTypeIP`
227  //     * **Min Length** - 0 characters
228  //     * **Max Length** - 39 characters
229  //     * **Description** - IP address of the payer's device.
230  // 1. `PayerDeviceInfoTypeLocation`
231  //     * **Min Length** - 0 characters
232  //     * **Max Length** - 40 characters
233  //     * **Description** - Coarse location of the payer's device.
234  // 1. `PayerDeviceInfoTypeOS`
235  //     * **Min Length** - 0 characters
236  //     * **Max Length** - 20 characters
237  //     * **Description** - Operating system on the payer's device.
238  // 1. `PayerDeviceInfoTypeTelecomProvider`
239  //     * **Min Length** - 0 characters
240  //     * **Max Length** - 99 characters
241  //     * **Description** - Telecom provider for the payer's device.
242  // 1. `PayerDeviceInfoTypeDeviceType`
243  //     * **Min Length** - 0 characters
244  //     * **Max Length** - 9 characters
245  //     * **Description** - Type of the payer's device. This will be one of
246  //     'MOB', 'INET', 'USDC/USDB', 'POS'.
247  // 1. `PayeeDeviceInfoTypeAppName`
248  //     * **Min Length** - 0 characters
249  //     * **Max Length** - 20 characters
250  //     * **Description** - Payment application name on the payee's device.
251  // 1. `PayeeDeviceInfoTypeCapability`
252  //     * **Min Length** - 0 characters
253  //     * **Max Length** - 99 characters
254  //     * **Description** - Capability of the payee's device.
255  // 1. `PayeeDeviceInfoTypeGeoCode`
256  //     * **Min Length** - 0 characters
257  //     * **Max Length** - 15 characters
258  //     * **Description** - Geo code of the payee's device. This will include
259  //     floating point values for latitude and longitude (separated by colon).
260  // 1. `PayeeDeviceInfoTypeID`
261  //     * **Min Length** - 0 characters
262  //     * **Max Length** - 35 characters
263  //     * **Description** - Device ID of the payee's device.
264  // 1. `PayeeDeviceInfoTypeIP`
265  //     * **Min Length** - 0 characters
266  //     * **Max Length** - 39 characters
267  //     * **Description** - IP address of the payee's device.
268  // 1. `PayeeDeviceInfoTypeLocation`
269  //     * **Min Length** - 0 characters
270  //     * **Max Length** - 40 characters
271  //     * **Description** - Coarse location of the payee's device.
272  // 1. `PayeeDeviceInfoTypeOS`
273  //     * **Min Length** - 0 characters
274  //     * **Max Length** - 20 characters
275  //     * **Description** - Operating system on the payee's device.
276  // 1. `PayeeDeviceInfoTypeTelecomProvider`
277  //     * **Min Length** - 0 characters
278  //     * **Max Length** - 99 characters
279  //     * **Description** - Telecom provider for the payee's device.
280  // 1. `PayeeDeviceInfoTypeDeviceType`
281  //     * **Min Length** - 0 characters
282  //     * **Max Length** - 9 characters
283  //     * **Description** - Type of the payee's device. This will be one of
284  //     'MOB', 'INET', 'USDC/USDB', 'POS'.
285  // 1. `ReferenceID`
286  //     * **Min Length** - 0 characters
287  //     * **Max Length** - 35 characters
288  //     * **Description** - Consumer reference number to identify loan number,
289  //     order id etc.
290  // 1. `ReferenceURI`
291  //     * **Min Length** - 1 characters
292  //     * **Max Length** - 35 characters
293  //     * **Description** - URL for the  transaction.
294  // 1. `ReferenceCategory`
295  //     * **Min Length** - 2 characters
296  //     * **Max Length** - 2 characters
297  //     * **Description** - Reference category.
298  rpc ExportFinancialTransactions(ExportFinancialTransactionsRequest)
299      returns (google.longrunning.Operation) {
300    option (google.api.http) = {
301      post: "/v1/{parent=projects/*}/financialTransactions:export"
302      body: "*"
303    };
304    option (google.longrunning.operation_info) = {
305      response_type: "ExportFinancialTransactionsResponse"
306      metadata_type: "ExportFinancialTransactionsMetadata"
307    };
308  }
309
310  // Export metadata transactions received within the specified time range as a
311  // file into a configured target location. The returned `Operation` type has
312  // the following method-specific fields:
313  //
314  // - `metadata`:
315  // [ExportMetadataTransactionsMetadata][google.cloud.paymentgateway.issuerswitch.v1.ExportMetadataTransactionsMetadata]
316  // - `response`:
317  // [ExportMetadataTransactionsResponse][google.cloud.paymentgateway.issuerswitch.v1.ExportMetadataTransactionsResponse]
318  //
319  // The exported file will be in the standard CSV format where each row in the
320  // file represents a transaction. The file has the following fields in order:
321  //
322  // 1. `TransactionID`
323  //     * **Min Length** - 35 characters
324  //     * **Max Length** - 35 characters
325  //     * **Description** - UPI transaction ID.
326  // 1. `APIType`
327  //     * **Description** - The transaction's API type. The value will be of
328  //     the [ApiType][google.cloud.paymentgateway.issuerswitch.v1.ApiType]
329  //     enum.
330  // 1. `TransactionType`
331  //     * **Description** - Type of the transaction. The value will be of the
332  //     [TransactionType][google.cloud.paymentgateway.issuerswitch.v1.TransactionType]
333  //     enum.
334  // 1. `CreationTime`
335  //     * **Min Length** - 20 characters
336  //     * **Max Length** - 20 characters
337  //     * **Description** - Timestamp (in UTC) indicating when the issuer
338  //     switch created the transaction resource for processing the transaction.
339  //     The format will be as per RFC-3339. Example : 2022-11-22T23:00:05Z
340  // 1. `State`
341  //     * **Min Length** - 6 characters
342  //     * **Max Length** - 9 characters
343  //     * **Description** - State of the transaction. This will be one of
344  //     `FAILED`, `SUCCEEDED`, or `TIMED_OUT`.
345  // 1. `OriginVPA`
346  //     * **Min Length** - 3 characters
347  //     * **Max Length** - 255 characters
348  //     * **Description** - Virtual Payment Address (VPA) of the originator of
349  //     the transaction.
350  // 1. `AdapterRequestIDs`
351  //     * **Min Length** - 0 characters
352  //     * **Max Length** - 2,000 characters
353  //     * **Description** - List of adapter request IDs (colon separated) used
354  //     when invoking the Adapter APIs for fulfilling a transaction request.
355  // 1. `ErrorCode`
356  //     * **Min Length** - 0 characters
357  //     * **Max Length** - 255 characters
358  //     * **Description** - Error code of the failed transaction.
359  // 1. `ErrorMessage`
360  //     * **Min Length** - 0 characters
361  //     * **Max Length** - 10,000 characters
362  //     * **Description** - Error description for the failed transaction.
363  // 1. `UPIErrorCode`
364  //     * **Min Length** - 0 characters
365  //     * **Max Length** - 3 characters
366  //     * **Description** - Error code as per the UPI specification. The issuer
367  //     switch maps the ErrorCode to an appropriate error code that complies
368  //     with the UPI specification.
369  rpc ExportMetadataTransactions(ExportMetadataTransactionsRequest)
370      returns (google.longrunning.Operation) {
371    option (google.api.http) = {
372      post: "/v1/{parent=projects/*}/metadataTransactions:export"
373      body: "*"
374    };
375    option (google.longrunning.operation_info) = {
376      response_type: "ExportMetadataTransactionsResponse"
377      metadata_type: "ExportMetadataTransactionsMetadata"
378    };
379  }
380
381  // Export mandate transactions received within the specified time range as a
382  // file into a configured target location. The returned `Operation` type has
383  // the following method-specific fields:
384  //
385  // - `metadata`:
386  // [ExportMandateTransactionsMetadata][google.cloud.paymentgateway.issuerswitch.v1.ExportMandateTransactionsMetadata]
387  // - `response`:
388  // [ExportMandateTransactionsResponse][google.cloud.paymentgateway.issuerswitch.v1.ExportMandateTransactionsResponse]
389  //
390  // The exported file will be in the standard CSV format where each row in the
391  // file represents a transaction. The file has the following fields in order:
392  //
393  // 1. `TransactionID`
394  //     * **Min Length** - 35 characters
395  //     * **Max Length** - 35 characters
396  //     * **Description** - UPI transaction ID.
397  // 1. `UniqueMandateNumber`
398  //     * **Min Length** - 3 characters
399  //     * **Max Length** - 70 characters
400  //     * **Description** - UPI Unique Mandate Number.
401  // 1. `TransactionType`
402  //     * **Min Length** - 23 characters
403  //     * **Max Length** - 23 characters
404  //     * **Description** - Type of the transaction. This will be one of
405  //     `TRANSACTION_TYPE_CREATE`, `TRANSACTION_TYPE_REVOKE`,
406  //     `TRANSACTION_TYPE_UPDATE`, `TRANSACTION_TYPE_PAUSE` or
407  //     `TRANSACTION_TYPE_UNPAUSE`.
408  // 1. `CreationTime`
409  //     * **Min Length** - 20 characters
410  //     * **Max Length** - 20 characters
411  //     * **Description** - Timestamp (in UTC) indicating when the issuer
412  //     switch created the transaction resource for processing the transaction.
413  //     The format will be as per RFC-3339. Example : 2022-11-22T23:00:05Z
414  // 1. `State`
415  //     * **Min Length** - 6 characters
416  //     * **Max Length** - 9 characters
417  //     * **Description** - State of the transaction. This will be one of
418  //     `FAILED`, `SUCCEEDED`, or `TIMED_OUT`.
419  // 1. `PayerVPA`
420  //     * **Min Length** - 3 characters
421  //     * **Max Length** - 255 characters
422  //     * **Description** - Virtual Payment Address (VPA) of the payer.
423  // 1. `PayerMobileNumber`
424  //     * **Min Length** - 12 characters
425  //     * **Max Length** - 12 characters
426  //     * **Description** - Mobile number of the payer.
427  // 1. `PayerIFSC`
428  //     * **Min Length** - 11 characters
429  //     * **Max Length** - 11 characters
430  //     * **Description** - IFSC of the payer's bank account.
431  // 1. `PayerAccountNumber`
432  //     * **Min Length** - 1 characters
433  //     * **Max Length** - 30 characters
434  //     * **Description** - Payer's bank account number.
435  // 1. `PayerAccountType`
436  //     * **Min Length** - 3 characters
437  //     * **Max Length** - 7 characters
438  //     * **Description** - Payer's bank account type. This will be one of
439  //     `SAVINGS`, `DEFAULT`, `CURRENT`, `NRE`, `NRO`, `PPIWALLET`,
440  //     `BANKWALLET`, `CREDIT`, `SOD`, or `UOD`.
441  // 1. `PayeeVPA`
442  //     * **Min Length** - 3 characters
443  //     * **Max Length** - 255 characters
444  //     * **Description** - Virtual Payment Address (VPA) of the payee.
445  // 1. `PayeeMobileNumber`
446  //     * **Min Length** - 12 characters
447  //     * **Max Length** - 12 characters
448  //     * **Description** - Mobile number of the payee.
449  // 1. `PayeeIFSC`
450  //     * **Min Length** - 11 characters
451  //     * **Max Length** - 11 characters
452  //     * **Description** - IFSC of the payee's bank account.
453  // 1. `PayeeAccountNumber`
454  //     * **Min Length** - 1 characters
455  //     * **Max Length** - 30 characters
456  //     * **Description** - Payee's bank account number.
457  // 1. `PayeeAccountType`
458  //     * **Min Length** - 3 characters
459  //     * **Max Length** - 10 characters
460  //     * **Description** - Payee's bank account type. This will be one of
461  //     `SAVINGS`, `DEFAULT`, `CURRENT`, `NRE`, `NRO`, `PPIWALLET`,
462  //     `BANKWALLET`, `CREDIT`, `SOD`, or `UOD`.
463  // 1. `PayeeMerchantID`
464  //     * **Min Length** - 1 characters
465  //     * **Max Length** - 30 characters
466  //     * **Description** - Payee's merchant ID, only if the payee is a
467  //     merchant
468  // 1. `PayeeMerchantName`
469  //     * **Min Length** - 1 characters
470  //     * **Max Length** - 99 characters
471  //     * **Description** - Payee's merchant name, only if the payee is a
472  //     merchant.
473  // 1. `PayeeMCC`
474  //     * **Min Length** - 4 characters
475  //     * **Max Length** - 4 characters
476  //     * **Description** - Payee's Merchant Category Code (MCC), only if the
477  //     payee is a merchant.
478  // 1. `Amount`
479  //     * **Description** - Amount specified in the mandate.
480  // 1. `RecurrencePattern`
481  //     * **Description** - Reccurence pattern of the mandate. The value will
482  //     be of the
483  //     [MandateTransaction.RecurrencePatternType][google.cloud.paymentgateway.issuerswitch.v1.MandateTransaction.RecurrencePatternType]
484  //     enum.
485  // 1. `RecurrenceRuleType`
486  //     * **Description** - Reccurrence rule type of the mandate. The value
487  //     will be of the
488  //     [MandateTransaction.RecurrenceRuleType][google.cloud.paymentgateway.issuerswitch.v1.MandateTransaction.RecurrenceRuleType]
489  //     enum.
490  // 1. `RecurrenceRuleValue`
491  //     * **Min Length** - 0 characters
492  //     * **Max Length** - 2 characters
493  //     * **Description** - Recurrence rule value of the mandate. This will be
494  //     an integer between 1 and 31.
495  // 1. `Revokeable`
496  //     * **Min Length** - 4 characters
497  //     * **Max Length** - 5 characters
498  //     * **Description** - Boolean value specifying if the mandate is
499  //     revokable.
500  // 1. `StartDate`
501  //     * **Min Length** - 10 characters
502  //     * **Max Length** - 10 characters
503  //     * **Description** - The start date of the mandate in `DD-MM-YYYY`
504  //     format.
505  // 1. `EndDate`
506  //     * **Min Length** - 10 characters
507  //     * **Max Length** - 10 characters
508  //     * **Description** - The end date of the mandate in `DD-MM-YYYY` format.
509  // 1. `AmountRuleType`
510  //     * **Description** - The amount rule of the mandate. The value will be
511  //     of the
512  //     [MandateTransaction.AmountRuleType][google.cloud.paymentgateway.issuerswitch.v1.MandateTransaction.AmountRuleType]
513  //     enum.
514  // 1. `ApprovalReference`
515  //     * **Min Length** - 6 characters
516  //     * **Max Length** - 9 characters
517  //     * **Description** - The block funds reference generated by the bank, if
518  //     funds have been blocked for the mandate. This column will have a value
519  //     only when the RecurrencePattern is ONETIME.
520  // 1. `BlockFunds`
521  //     * **Min Length** - 4 characters
522  //     * **Max Length** - 5 characters
523  //     * **Description** - Boolean value specifying if the mandate transaction
524  //     requested to block funds.
525  // 1. `LastUpdateTime`
526  //     * **Min Length** - 20 characters
527  //     * **Max Length** - 20 characters
528  //     * **Description** - Timestamp (in UTC) indicating when was the last
529  //     modification made to the mandate. The format will be as per RFC-3339.
530  //     Example : 2022-11-22T23:00:05Z
531  // 1. `AdapterRequestIDs`
532  //     * **Min Length** - 0 characters
533  //     * **Max Length** - 2,000 characters
534  //     * **Description** - List of adapter request IDs (colon separated) used
535  //     when invoking the Adapter APIs for fulfilling a transaction request.
536  // 1. `ErrorCode`
537  //     * **Min Length** - 0 characters
538  //     * **Max Length** - 255 characters
539  //     * **Description** - Error code of the failed transaction.
540  // 1. `ErrorMessage`
541  //     * **Min Length** - 0 characters
542  //     * **Max Length** - 10,000 characters
543  //     * **Description** - Error description for the failed transaction.
544  // 1. `UPIErrorCode`
545  //     * **Min Length** - 0 characters
546  //     * **Max Length** - 3 characters
547  //     * **Description** - Error code as per the UPI specification. The issuer
548  //     switch maps the ErrorCode to an appropriate error code that complies
549  //     with the UPI specification.
550  // 1. `PayerDeviceInfoTypeAppName`
551  //     * **Min Length** - 0 characters
552  //     * **Max Length** - 20 characters
553  //     * **Description** - Payment application name on the payer's device.
554  // 1. `PayerDeviceInfoTypeCapability`
555  //     * **Min Length** - 0 characters
556  //     * **Max Length** - 99 characters
557  //     * **Description** - Capability of the payer's device.
558  // 1. `PayerDeviceInfoTypeGeoCode`
559  //     * **Min Length** - 0 characters
560  //     * **Max Length** - 15 characters
561  //     * **Description** - Geo code of the payer's device. This will include
562  //     floating point values for latitude and longitude (separated by colon).
563  // 1. `PayerDeviceInfoTypeID`
564  //     * **Min Length** - 0 characters
565  //     * **Max Length** - 35 characters
566  //     * **Description** - Device ID of the payer's device.
567  // 1. `PayerDeviceInfoTypeIP`
568  //     * **Min Length** - 0 characters
569  //     * **Max Length** - 39 characters
570  //     * **Description** - IP address of the payer's device.
571  // 1. `PayerDeviceInfoTypeLocation`
572  //     * **Min Length** - 0 characters
573  //     * **Max Length** - 40 characters
574  //     * **Description** - Coarse location of the payer's device.
575  // 1. `PayerDeviceInfoTypeOS`
576  //     * **Min Length** - 0 characters
577  //     * **Max Length** - 20 characters
578  //     * **Description** - Operating system on the payer's device.
579  // 1. `PayerDeviceInfoTypeTelecomProvider`
580  //     * **Min Length** - 0 characters
581  //     * **Max Length** - 99 characters
582  //     * **Description** - Telecom provider for the payer's device.
583  // 1. `PayerDeviceInfoTypeDeviceType`
584  //     * **Min Length** - 0 characters
585  //     * **Max Length** - 9 characters
586  //     * **Description** - Type of the payer's device. This will be one of
587  //     'MOB', 'INET', 'USDC/USDB', 'POS'.
588  // 1. `PayeeDeviceInfoTypeAppName`
589  //     * **Min Length** - 0 characters
590  //     * **Max Length** - 20 characters
591  //     * **Description** - Payment application name on the payee's device.
592  // 1. `PayeeDeviceInfoTypeCapability`
593  //     * **Min Length** - 0 characters
594  //     * **Max Length** - 99 characters
595  //     * **Description** - Capability of the payee's device.
596  // 1. `PayeeDeviceInfoTypeGeoCode`
597  //     * **Min Length** - 0 characters
598  //     * **Max Length** - 15 characters
599  //     * **Description** - Geo code of the payee's device. This will include
600  //     floating point values for latitude and longitude (separated by colon).
601  // 1. `PayeeDeviceInfoTypeID`
602  //     * **Min Length** - 0 characters
603  //     * **Max Length** - 35 characters
604  //     * **Description** - Device ID of the payee's device.
605  // 1. `PayeeDeviceInfoTypeIP`
606  //     * **Min Length** - 0 characters
607  //     * **Max Length** - 39 characters
608  //     * **Description** - IP address of the payee's device.
609  // 1. `PayeeDeviceInfoTypeLocation`
610  //     * **Min Length** - 0 characters
611  //     * **Max Length** - 40 characters
612  //     * **Description** - Coarse location of the payee's device.
613  // 1. `PayeeDeviceInfoTypeOS`
614  //     * **Min Length** - 0 characters
615  //     * **Max Length** - 20 characters
616  //     * **Description** - Operating system on the payee's device.
617  // 1. `PayeeDeviceInfoTypeTelecomProvider`
618  //     * **Min Length** - 0 characters
619  //     * **Max Length** - 99 characters
620  //     * **Description** - Telecom provider for the payee's device.
621  // 1. `PayeeDeviceInfoTypeDeviceType`
622  //     * **Min Length** - 0 characters
623  //     * **Max Length** - 9 characters
624  //     * **Description** - Type of the payee's device. This will be one of
625  //     `MOB`, `INET`, `USDC/USDB`, `POS`.
626  // 1. `ReferenceID`
627  //     * **Min Length** - 0 characters
628  //     * **Max Length** - 35 characters
629  //     * **Description** - Consumer reference number to identify loan number,
630  //     order id etc.
631  // 1. `ReferenceURI`
632  //     * **Min Length** - 1 characters
633  //     * **Max Length** - 35 characters
634  //     * **Description** - URL for the  transaction.
635  // 1. `ReferenceCategory`
636  //     * **Min Length** - 2 characters
637  //     * **Max Length** - 2 characters
638  //     * **Description** - Reference category.
639  // 1. `MandateName`
640  //     * **Min Length** - 1 characters
641  //     * **Max Length** - 255 characters
642  //     * **Description** - The mandate's name.
643  rpc ExportMandateTransactions(ExportMandateTransactionsRequest)
644      returns (google.longrunning.Operation) {
645    option (google.api.http) = {
646      post: "/v1/{parent=projects/*}/mandateTransactions:export"
647      body: "*"
648    };
649    option (google.longrunning.operation_info) = {
650      response_type: "ExportMandateTransactionsResponse"
651      metadata_type: "ExportMandateTransactionsMetadata"
652    };
653  }
654
655  // Export complaint transactions received within the specified time range as a
656  // file into a configured target location. The returned `Operation` type has
657  // the following method-specific fields:
658  //
659  // - `metadata`:
660  // [ExportComplaintTransactionsMetadata][google.cloud.paymentgateway.issuerswitch.v1.ExportComplaintTransactionsMetadata]
661  // - `response`:
662  // [ExportComplaintTransactionsResponse][google.cloud.paymentgateway.issuerswitch.v1.ExportComplaintTransactionsResponse]
663  //
664  // The exported file will be in the standard CSV format where each row in the
665  // file represents a transaction. The file has the following fields in order:
666  //
667  // 1. `TransactionID`
668  //     * **Min Length** - 35 characters
669  //     * **Max Length** - 35 characters
670  //     * **Description** - UPI transaction ID.
671  // 1. `TransactionType`
672  //     * **Min Length** - 23 characters
673  //     * **Max Length** - 30 characters
674  //     * **Description** - Type of the transaction. This will be one of
675  //     `TRANSACTION_TYPE_CHECK_STATUS`, `TRANSACTION_TYPE_COMPLAINT`,
676  //     `TRANSACTION_TYPE_REVERSAL`, `TRANSACTION_TYPE_DISPUTE`,
677  //     `TRANSACTION_TYPE_REFUND`, or `TRANSACTION_TYPE_STATUS_UPDATE`.
678  // 1. `CreationTime`
679  //     * **Min Length** - 20 characters
680  //     * **Max Length** - 20 characters
681  //     * **Description** - Timestamp (in UTC) indicating when the issuer
682  //     switch created the transaction resource for processing the transaction.
683  //     The format will be as per RFC-3339. Example : 2022-11-22T23:00:05Z
684  // 1: `State`
685  //     * **Min Length** - 6 characters
686  //     * **Max Length** - 9 characters
687  //     * **Description** - State of the transaction. This will be one of
688  //     `FAILED`, `SUCCEEDED`, or `TIMED_OUT`.
689  // 1. `OriginalRRN`
690  //     * **Min Length** - 12 characters
691  //     * **Max Length** - 12 characters
692  //     * **Description** - Retrieval reference number of the original payment
693  //     transaction.
694  // 1. `BankType`
695  //     * **Min Length** - 8 characters
696  //     * **Max Length** - 11 characters
697  //     * **Description** - The subtype of the transaction based on the bank
698  //     involved. This will be one of `BENEFICIARY`, or `REMITTER`.
699  // 1. `OriginalTransactionID`
700  //     * **Min Length** - 35 characters
701  //     * **Max Length** - 35 characters
702  //     * **Description** - Transaction ID of the original unresolved
703  //     transaction.
704  // 1. `RaiseComplaintAdjFlag`
705  //     * **Min Length** - 0 characters
706  //     * **Max Length** - 255 characters
707  //     * **Description** - Indicates the type of action to raise the
708  //     complaint.
709  // 1. `RaiseComplaintAdjCode`
710  //     * **Min Length** - 0 characters
711  //     * **Max Length** - 255 characters
712  //     * **Description** - Indicates the reason of action to raise the
713  //     complaint.
714  // 1. `ResolveComplaintAdjFlag`
715  //     * **Min Length** - 0 characters
716  //     * **Max Length** - 255 characters
717  //     * **Description** - Indicates the type of action to resolve the
718  //     complaint.
719  // 1. `ResolveComplaintAdjCode`
720  //     * **Min Length** - 0 characters
721  //     * **Max Length** - 255 characters
722  //     * **Description** - Indicates the reason of action to resolve the
723  //     complaint.
724  // 1. `RaiseDisputeAdjFlag`
725  //     * **Min Length** - 0 characters
726  //     * **Max Length** - 255 characters
727  //     * **Description** - Indicates the type of action to raise the dispute.
728  // 1. `RaiseDisputeAdjCode`
729  //     * **Min Length** - 0 characters
730  //     * **Max Length** - 255 characters
731  //     * **Description** - Indicates the reason of action to raise the
732  //     dispute.
733  // 1. `ResolveDisputeAdjFlag`
734  //     * **Min Length** - 0 characters
735  //     * **Max Length** - 255 characters
736  //     * **Description** - Indicates the type of action to resolve the
737  //     dispute.
738  // 1. `ResolveDisputeAdjCode`
739  //     * **Min Length** - 0 characters
740  //     * **Max Length** - 255 characters
741  //     * **Description** - Indicates the reason of action to resolve the
742  //     dispute.
743  // 1. `Amount`
744  //     * **Description** - Amount to be resolved.
745  // 1. `CurrentCycle`
746  //     * **Min Length** - 4 characters
747  //     * **Max Length** - 5 characters
748  //     * **Description** - Boolean value specifying if the complaint / dispute
749  //     belongs to current settlement cycle or not.
750  // 1. `CRN`
751  //     * **Min Length** - 0 characters
752  //     * **Max Length** - 255 characters
753  //     * **Description** - Defines the Complaint Reference number.
754  // 1. `AdjTime`
755  //     * **Min Length** - 0 characters
756  //     * **Max Length** - 255 characters
757  //     * **Description** - Indicates the time when the resolution was done.
758  // 1. `RespAdjFlag`
759  //     * **Min Length** - 0 characters
760  //     * **Max Length** - 255 characters
761  //     * **Description** - Indicates the response category type.
762  // 1. `RespAdjCode`
763  //     * **Min Length** - 0 characters
764  //     * **Max Length** - 255 characters
765  //     * **Description** - Indicates the response reason used.
766  // 1. `AdjRemarks`
767  //     * **Min Length** - 0 characters
768  //     * **Max Length** - 255 characters
769  //     * **Description** - Indicates the additional remarks for the complaint
770  //     / dispute.
771  // 1. `AdapterRequestIDs`
772  //     * **Min Length** - 0 characters
773  //     * **Max Length** - 2,000 characters
774  //     * **Description** - List of adapter request IDs (colon separated) used
775  //     when invoking the Adapter APIs for fulfilling a transaction request.
776  // 1. `ErrorCode`
777  //     * **Min Length** - 0 characters
778  //     * **Max Length** - 255 characters
779  //     * **Description** - Error code of the failed transaction.
780  // 1. `ErrorMessage`
781  //     * **Min Length** - 0 characters
782  //     * **Max Length** - 10,000 characters
783  //     * **Description** - Error description for the failed transaction.
784  // 1. `UPIErrorCode`
785  //     * **Min Length** - 0 characters
786  //     * **Max Length** - 3 characters
787  //     * **Description** - Error code as per the UPI specification. The issuer
788  //     switch service maps the ErrorCode to an appropriate error code that
789  //     complies with the UPI specification.
790  rpc ExportComplaintTransactions(ExportComplaintTransactionsRequest)
791      returns (google.longrunning.Operation) {
792    option (google.api.http) = {
793      post: "/v1/{parent=projects/*}/complaintTransactions:export"
794      body: "*"
795    };
796    option (google.longrunning.operation_info) = {
797      response_type: "ExportComplaintTransactionsResponse"
798      metadata_type: "ExportComplaintTransactionsMetadata"
799    };
800  }
801}
802
803// Information about a transaction processed by the issuer switch.
804// The fields in this type are common across both financial and metadata
805// transactions.
806message TransactionInfo {
807  // Specifies the current state of the transaction.
808  enum State {
809    // Unspecified state.
810    STATE_UNSPECIFIED = 0;
811
812    // The transaction has successfully completed.
813    SUCCEEDED = 1;
814
815    // The transaction has failed.
816    FAILED = 2;
817
818    // The transaction has timed out.
819    TIMED_OUT = 3;
820  }
821
822  // The subtype of a transaction. This value is used only for certain API type
823  // and transaction type combinations.
824  enum TransactionSubType {
825    // Unspecified transaction subtype.
826    TRANSACTION_SUB_TYPE_UNSPECIFIED = 0;
827
828    // Collect subtype. This is used in a `SETTLE_PAYMENT` API type
829    // transaction, with the transaction type as either
830    // `TRANSACTION_TYPE_CREDIT` or `TRANSACTION_TYPE_DEBIT` when the payment
831    // was initiated by a collect request.
832    COLLECT = 1;
833
834    // Debit subtype. This is used in a `SETTLE_PAYMENT` API type transaction,
835    // with the transaction type as `TRANSACTION_TYPE_REVERSAL` when the
836    // original payment was a debit request.
837    DEBIT = 2;
838
839    // Pay subtype. This is used in a `SETTLE_PAYMENT` API type transaction,
840    // with the transaction type as either `TRANSACTION_TYPE_CREDIT` or
841    // `TRANSACTION_TYPE_DEBIT` when the payment was initiated by a pay request.
842    PAY = 3;
843
844    // Beneficiary subtype. This is used in a `COMPLAINT` API type transaction,
845    // when the complaint / dispute request is initiated / received by the
846    // beneficiary bank.
847    BENEFICIARY = 4;
848
849    // Remitter subtype. This is used in a `COMPLAINT` API type transaction,
850    // when the complaint / dispute request is initiated / received by the
851    // remitter bank.
852    REMITTER = 5;
853
854    // Refund subtype. This is used in a `SETTLE_PAYMENT` API type transaction,
855    // with the transaction type as `TRANSACTION_TYPE_CREDIT` when the payment
856    // was initiated in response to a refund.
857    REFUND = 6;
858
859    // Credit subtype. This is used in a `SETTLE_PAYMENT` API type transaction,
860    // with the transaction type as `TRANSACTION_TYPE_REVERSAL` when the
861    // original payment was a credit request.
862    CREDIT = 7;
863  }
864
865  // Common metadata about an API transaction.
866  message TransactionMetadata {
867    // Output only. The time at which the transaction resource was created by
868    // the issuer switch.
869    google.protobuf.Timestamp create_time = 1
870        [(google.api.field_behavior) = OUTPUT_ONLY];
871
872    // Output only. The time at which the transaction resource was last updated
873    // by the issuer switch.
874    google.protobuf.Timestamp update_time = 2
875        [(google.api.field_behavior) = OUTPUT_ONLY];
876
877    // Output only. A reference id for the API transaction.
878    string reference_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
879
880    // Output only. A reference URI to this API transaction.
881    string reference_uri = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
882
883    // Output only. A descriptive note about this API transaction.
884    string description = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
885
886    // Output only. The initiation mode of this API transaction. In UPI, the
887    // values are as defined by the UPI API specification.
888    string initiation_mode = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
889
890    // Output only. The purpose code of this API transaction. In UPI, the values
891    // are as defined by the UPI API specification.
892    string purpose_code = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
893
894    // Output only. The reference category of this API transaction.
895    string reference_category = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
896  }
897
898  // All details about any error in the processing of an API transaction.
899  message TransactionErrorDetails {
900    // Output only. Error code of the failed transaction.
901    string error_code = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
902
903    // Output only. Error description for the failed transaction.
904    string error_message = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
905
906    // Output only. Error code as per the UPI specification. The issuer switch
907    // maps the ErrorCode to an appropriate error code that complies with the
908    // UPI specification.
909    string upi_error_code = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
910  }
911
912  // Information about an adapter invocation triggered as part of the
913  // processing of an API transaction.
914  message AdapterInfo {
915    // Metadata about a response that the adapter includes in its response
916    // to the issuer switch.
917    message ResponseMetadata {
918      // A map of name-value pairs.
919      map<string, string> values = 1;
920    }
921
922    // Output only. List of adapter request IDs (colon separated) used when
923    // invoking the Adapter APIs for fulfilling a transaction request.
924    string request_ids = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
925
926    // Output only. Response metadata included by the adapter in its response to
927    // an API invocation from the issuer switch.
928    ResponseMetadata response_metadata = 2
929        [(google.api.field_behavior) = OUTPUT_ONLY];
930  }
931
932  // Information about the transaction's risk evaluation as provided by the
933  // payments orchestrator.
934  message TransactionRiskInfo {
935    // Entity providing the risk score. This could either be the payment service
936    // provider or the payment orchestrator (UPI, etc).
937    string provider = 1;
938
939    // Type of risk. Examples include `TXNRISK`.
940    string type = 2;
941
942    // Numeric value of risk evaluation ranging from 0 (No Risk) to 100 (Maximum
943    // Risk).
944    string value = 3;
945  }
946
947  // Output only. An identifier that is mandatorily present in every transaction
948  // processed via UPI. This maps to UPI's transaction ID.
949  string id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
950
951  // Output only. The API type of the transaction.
952  ApiType api_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
953
954  // Output only. The transaction type.
955  TransactionType transaction_type = 3
956      [(google.api.field_behavior) = OUTPUT_ONLY];
957
958  // Output only. The transaction subtype.
959  TransactionSubType transaction_sub_type = 4
960      [(google.api.field_behavior) = OUTPUT_ONLY];
961
962  // Output only. The transaction's state.
963  State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
964
965  // Metadata about the API transaction.
966  TransactionMetadata metadata = 6;
967
968  // Output only. Any error details for the current API transaction, if the
969  // state is `FAILED`.
970  TransactionErrorDetails error_details = 7
971      [(google.api.field_behavior) = OUTPUT_ONLY];
972
973  // Output only. Information about the adapter invocation from the issuer
974  // switch for processing this API transaction.
975  AdapterInfo adapter_info = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
976
977  // Risk information as provided by the payments orchestrator.
978  repeated TransactionRiskInfo risk_info = 9;
979}
980
981// A metadata API transaction processed by the issuer switch. This
982// includes UPI APIs such as List Accounts, Balance Enquiry, etc.
983message MetadataTransaction {
984  option (google.api.resource) = {
985    type: "issuerswitch.googleapis.com/MetadataTransaction"
986    pattern: "projects/{project}/metadataTransactions/{transaction}"
987  };
988
989  // The name of the metadata transaction. This uniquely identifies the
990  // transaction. Format of name is
991  // projects/{project_id}/metadataTransaction/{metadata_transaction_id}.
992  string name = 1;
993
994  // Information about the transaction.
995  TransactionInfo info = 2;
996
997  // Output only. The initiator of the metadata transaction.
998  Participant initiator = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
999}
1000
1001// A financial API transaction processed by the issuer switch. In UPI, this maps
1002// to the Pay API.
1003message FinancialTransaction {
1004  option (google.api.resource) = {
1005    type: "issuerswitch.googleapis.com/FinancialTransaction"
1006    pattern: "projects/{project}/financialTransactions/{transaction}"
1007  };
1008
1009  // A payment rule as provided by the payments orchestrator.
1010  message PaymentRule {
1011    // An enum of the possible rule names.
1012    enum PaymentRuleName {
1013      // Rule name unspecified.
1014      PAYMENT_RULE_NAME_UNSPECIFIED = 0;
1015
1016      // The `expire after` rule.
1017      EXPIRE_AFTER = 1;
1018
1019      // The `min amount` rule.
1020      MIN_AMOUNT = 2;
1021    }
1022
1023    // The rule's name.
1024    PaymentRuleName payment_rule = 1;
1025
1026    // The rule's value.
1027    string value = 2;
1028  }
1029
1030  // The name of the financial transaction. This uniquely identifies the
1031  // transaction. Format of name is
1032  // projects/{project_id}/financialTransactions/{financial_transaction_id}.
1033  string name = 1;
1034
1035  // Information about the transaction.
1036  TransactionInfo info = 2;
1037
1038  // Output only. A 12 digit numeric code associated with the request. It could
1039  // contain leading 0s. In UPI, this is also known as as the customer reference
1040  // or the UPI transaction ID.
1041  string retrieval_reference_number = 3
1042      [(google.api.field_behavior) = OUTPUT_ONLY];
1043
1044  // Output only. The payer in the transaction.
1045  SettlementParticipant payer = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
1046
1047  // Output only. The payee in the transaction.
1048  SettlementParticipant payee = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
1049
1050  // Output only. The amount for payment settlement in the transaction.
1051  google.type.Money amount = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
1052
1053  // A list of rules specified by the payments orchestrator for this API
1054  // transaction.
1055  repeated PaymentRule payment_rules = 7;
1056}
1057
1058// A mandate processed by the issuer switch. In UPI, this maps to the Mandate
1059// API.
1060message MandateTransaction {
1061  option (google.api.resource) = {
1062    type: "issuerswitch.googleapis.com/MandateTransaction"
1063    pattern: "projects/{project}/mandateTransactions/{transaction}"
1064  };
1065
1066  // RecurrencePatternType specifies the recurrence pattern type of the mandate.
1067  enum RecurrencePatternType {
1068    // Unspecified recurrence pattern.
1069    RECURRENCE_PATTERN_TYPE_UNSPECIFIED = 0;
1070
1071    // As presented recurrence pattern.
1072    AS_PRESENTED = 1;
1073
1074    // Bi monthly recurrence pattern.
1075    BIMONTHLY = 2;
1076
1077    // Daily recurrence pattern.
1078    DAILY = 3;
1079
1080    // Bi weekly recurrence pattern.
1081    FORTNIGHTLY = 4;
1082
1083    // Half yearly recurrence pattern.
1084    HALF_YEARLY = 5;
1085
1086    // Monthly recurrence pattern.
1087    MONTHLY = 6;
1088
1089    // One time recurrence pattern.
1090    ONE_TIME = 7;
1091
1092    // Quarterly recurrence pattern.
1093    QUARTERLY = 8;
1094
1095    // Weekly recurrence pattern.
1096    WEEKLY = 9;
1097
1098    // Yearly recurrence pattern.
1099    YEARLY = 10;
1100  }
1101
1102  // RecurrenceRuleType specifies the recurrence rule type of mandate.
1103  enum RecurrenceRuleType {
1104    // Unspecified recurrence rule type.
1105    RECURRENCE_RULE_TYPE_UNSPECIFIED = 0;
1106
1107    // After recurrence rule type.
1108    AFTER = 1;
1109
1110    // Before recurrence rule type.
1111    BEFORE = 2;
1112
1113    // On recurrence rule type.
1114    ON = 3;
1115  }
1116
1117  // AmountRuleType specifies the type of rule associated with the mandate
1118  // amount.
1119  enum AmountRuleType {
1120    // Unspecified amount rule.
1121    AMOUNT_RULE_TYPE_UNSPECIFIED = 0;
1122
1123    // Exact amount rule. Amount specified is the exact amount for which
1124    // mandate could be granted.
1125    EXACT = 1;
1126
1127    // Max amount rule. Amount specified is the maximum amount for which
1128    // mandate could be granted.
1129    MAX = 2;
1130  }
1131
1132  // The name of the mandate transaction. This uniquely identifies the
1133  // transaction. Format of name is
1134  // projects/{project_id}/mandateTransactions/{mandate_transaction_id}.
1135  string name = 1;
1136
1137  // Information about the transaction.
1138  TransactionInfo transaction_info = 2;
1139
1140  // Output only. This maps to Unique Mandate Number (UMN) in UPI specification.
1141  string unique_mandate_number = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
1142
1143  // Output only. The payer in the transaction.
1144  SettlementParticipant payer = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
1145
1146  // Output only. The payee in the transaction.
1147  SettlementParticipant payee = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
1148
1149  // Output only. The type of recurrence pattern of the mandate.
1150  RecurrencePatternType recurrence_pattern = 6
1151      [(google.api.field_behavior) = OUTPUT_ONLY];
1152
1153  // Output only. The type of recurrence rule of the mandate.
1154  RecurrenceRuleType recurrence_rule_type = 7
1155      [(google.api.field_behavior) = OUTPUT_ONLY];
1156
1157  // Output only. The recurrence rule value of the mandate. This is a value from
1158  // 1 to 31.
1159  int32 recurrence_rule_value = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
1160
1161  // Output only. The start date of the mandate.
1162  google.type.Date start_date = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
1163
1164  // Output only. The end date of the mandate.
1165  google.type.Date end_date = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
1166
1167  // Output only. If true, this specifies mandate can be revoked.
1168  bool revokable = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
1169
1170  // Output only. The amount of the mandate.
1171  double amount = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
1172
1173  // Output only. The amount rule type of the mandate.
1174  AmountRuleType amount_rule = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
1175
1176  // Output only. The Block funds reference generated by the bank, this will be
1177  // available only when Recurrence is ONETIME.
1178  string approval_reference = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
1179
1180  // Output only. If true, this specifies the mandate transaction requested
1181  // funds to be blocked.
1182  bool block_funds = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
1183
1184  // Output only. The mandate's name.
1185  string mandate_name = 16 [(google.api.field_behavior) = OUTPUT_ONLY];
1186}
1187
1188// A complaint API transaction processed by the issuer switch. In
1189// UPI, this maps to the Complaint API.
1190message ComplaintTransaction {
1191  option (google.api.resource) = {
1192    type: "issuerswitch.googleapis.com/ComplaintTransaction"
1193    pattern: "projects/{project}/complaintTransactions/{transaction}"
1194  };
1195
1196  // The name of the complaint transaction. This uniquely identifies the
1197  // transaction. Format of name is
1198  // projects/{project_id}/complaintTransactions/{complaint_transaction_id}.
1199  string name = 1;
1200
1201  // Information about the transaction.
1202  TransactionInfo info = 2;
1203
1204  // Information about the complaint transaction. It can be one of Complaint or
1205  // Dispute.
1206  oneof case {
1207    // Output only. Information about the complaint transaction when it is of
1208    // type complaint.
1209    Complaint complaint = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
1210
1211    // Output only. Information about the complaint transaction when it is of
1212    // type dispute.
1213    Dispute dispute = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
1214  }
1215}
1216
1217// Request for the `ListMetadataTransactions` method. Callers can request for
1218// transactions to be filtered by the given filter criteria and specified
1219// pagination parameters.
1220message ListMetadataTransactionsRequest {
1221  // Required. The parent resource. The format is `projects/{project}`.
1222  string parent = 1 [
1223    (google.api.field_behavior) = REQUIRED,
1224    (google.api.resource_reference) = {
1225      child_type: "issuerswitch.googleapis.com/MetadataTransaction"
1226    }
1227  ];
1228
1229  // The maximum number of transactions to return. The service may return fewer
1230  // than this value. If unspecified or if the specified value is less than 1,
1231  // at most 50 transactions will be returned. The maximum value is 1000; values
1232  // above 1000 will be coerced to 1000. While paginating, you can specify a new
1233  // page size parameter for each page of transactions to be listed.
1234  int32 page_size = 2;
1235
1236  // A page token, received from a previous `ListMetadataTransactions` call.
1237  // Specify this parameter to retrieve the next page of transactions.
1238  //
1239  // When paginating, you must specify only the `page_token` parameter. The
1240  // filter that was specified in the initial call to the
1241  // `ListMetadataTransactions` method that returned the page token will be
1242  // reused for all further calls where the page token parameter is specified.
1243  string page_token = 3;
1244
1245  // An expression that filters the list of metadata transactions.
1246  //
1247  // A filter expression consists of a field name, a comparison
1248  // operator, and a value for filtering. The value must be a string, a
1249  // number, or a boolean. The comparison operator must be one of: `<`, `>` or
1250  // `=`. Filters are not case sensitive.
1251  //
1252  // The following fields in the `MetadataTransaction` are eligible for
1253  // filtering:
1254  //
1255  //   * `apiType` - The API type of the metadata transaction. Must be one of
1256  //   [ApiType][google.cloud.paymentgateway.issuerswitch.v1.ApiType] values.
1257  //   Allowed comparison operators: `=`.
1258  //   * `transactionType` - The transaction type of the metadata transaction.
1259  //   Must be one of
1260  //   [TransactionType][google.cloud.paymentgateway.issuerswitch.v1.TransactionType]
1261  //   values. Allowed comparison operators: `=`.
1262  //   * `transactionID` - The UPI transaction ID of the metadata transaction.
1263  //   Allowed comparison operators: `=`.
1264  //   * `createTime` - The time at which the transaction was created
1265  //   (received) by the issuer switch. The value should be in
1266  //   the format `YYYY-MM-DDTHH:MM:SSZ`. Allowed comparison operators: `>`,
1267  //   `<`.
1268  //
1269  // You can combine multiple expressions by enclosing each expression in
1270  // parentheses. Expressions are combined with AND logic. No other logical
1271  // operators are supported.
1272  //
1273  // Here are a few examples:
1274  //
1275  //   * `apiType = LIST_ACCOUNTS` -  - The API type is _LIST_ACCOUNTS_.
1276  //   * `state = SUCCEEDED` - The transaction's state is _SUCCEEDED_.
1277  //   * `(apiType = LIST_ACCOUNTS) AND (create_time <
1278  //   \"2021-08-15T14:50:00Z\")` - The API type is _LIST_ACCOUNTS_ and
1279  //   the transaction was received before _2021-08-15 14:50:00 UTC_.
1280  string filter = 4;
1281}
1282
1283// Request for the `ListFinancialTransactions` method. Callers can request for
1284// transactions to be filtered by the given filter criteria and specified
1285// pagination parameters.
1286message ListFinancialTransactionsRequest {
1287  // Required. The parent resource. The format is `projects/{project}`.
1288  string parent = 1 [
1289    (google.api.field_behavior) = REQUIRED,
1290    (google.api.resource_reference) = {
1291      child_type: "issuerswitch.googleapis.com/FinancialTransaction"
1292    }
1293  ];
1294
1295  // The maximum number of transactions to return. The service may return fewer
1296  // than this value. If unspecified or if the specified value is less than 1,
1297  // at most 50 transactions will be returned. The maximum value is 1000; values
1298  // above 1000 will be coerced to 1000. While paginating, you can specify a new
1299  // page size parameter for each page of transactions to be listed.
1300  int32 page_size = 2;
1301
1302  // A page token, received from a previous `ListFinancialTransactions` call.
1303  // Specify this parameter to retrieve the next page of transactions.
1304  //
1305  // When paginating, you must specify only the `page_token` parameter. The
1306  // filter that was specified in the initial call to the
1307  // `ListFinancialTransactions` method that returned the page token will be
1308  // reused for all further calls where the page token parameter is specified.
1309  string page_token = 3;
1310
1311  // An expression that filters the list of financial transactions.
1312  //
1313  // A filter expression consists of a field name, a comparison operator, and
1314  // a value for filtering. The value must be a string, a number, or a
1315  // boolean. The comparison operator must be one of: `<`, `>`, or `=`.
1316  // Filters are not case sensitive.
1317  //
1318  // The following fields in the `FinancialTransaction` are eligible for
1319  // filtering:
1320  //
1321  //   * `transactionID` - The UPI transaction ID of the financial
1322  //   transaction. Allowed comparison operators: `=`.
1323  //   * `RRN` - The retrieval reference number of the transaction. Allowed
1324  //   comparison operators: `=`.
1325  //   * `payerVPA` - The VPA of the payer in a financial transaction. Allowed
1326  //   comparison operators: `=`.
1327  //   * `payeeVPA` - The VPA of the payee in a financial transaction. Allowed
1328  //   comparison operators: `=`.
1329  //   * `payerMobileNumber` - The mobile number of the payer in a financial
1330  //      transaction. Allowed comparison operators: `=`.
1331  //   * `payeeMobileNumber` - The mobile number of the payee in a financial
1332  //      transaction. Allowed comparison operators: `=`.
1333  //   * `createTime` - The time at which the transaction was created
1334  //   (received) by the issuer switch. The value should be in
1335  //   the format `YYYY-MM-DDTHH:MM:SSZ`. Allowed comparison operators: `>`,
1336  //   `<`.
1337  //
1338  // You can combine multiple expressions by enclosing each expression in
1339  // parentheses. Expressions are combined with AND logic. No other logical
1340  // operators are supported.
1341  //
1342  // Here are a few examples:
1343  //
1344  //   * `rrn = 123456789123` - The RRN is _123456789123_.
1345  //   * `payerVpa = example@goog` - The VPA of the payer is the string
1346  //   _example@goog_.
1347  //   * `(payeeVpa = example@goog) AND (createTime < "2021-08-15T14:50:00Z")`
1348  //   - The VPA of the payee is _example@goog_ and the transaction was received
1349  //   before _2021-08-15 14:50:00 UTC_.
1350  //   * `createTime > "2021-08-15T14:50:00Z" AND createTime <
1351  //   "2021-08-16T14:50:00Z"` - The transaction was received between
1352  //   _2021-08-15 14:50:00 UTC_ and _2021-08-16 14:50:00 UTC_.
1353  string filter = 4;
1354}
1355
1356// Request for the `ListMandateTransactions` method. Callers can request for
1357// transactions to be filtered by the given filter criteria and specified
1358// pagination parameters.
1359message ListMandateTransactionsRequest {
1360  // Required. The parent resource. The format is `projects/{project}`.
1361  string parent = 1 [
1362    (google.api.field_behavior) = REQUIRED,
1363    (google.api.resource_reference) = {
1364      child_type: "issuerswitch.googleapis.com/MandateTransaction"
1365    }
1366  ];
1367
1368  // The maximum number of transactions to return. The service may return fewer
1369  // than this value. If unspecified or if the specified value is less than 1,
1370  // at most 50 transactions will be returned. The maximum value is 1000; values
1371  // above 1000 will be coerced to 1000. While paginating, you can specify a new
1372  // page size parameter for each page of transactions to be listed.
1373  int32 page_size = 2;
1374
1375  // A page token, received from a previous `ListMandateTransactions` call.
1376  // Specify this parameter to retrieve the next page of transactions.
1377  //
1378  // When paginating, you must specify only the `page_token` parameter. The
1379  // filter that was specified in the initial call to the
1380  // `ListMandateTransactions` method that returned the page token will be
1381  // reused for all further calls where the page token parameter is specified.
1382  string page_token = 3;
1383
1384  // An expression that filters the list of mandate transactions.
1385  //
1386  // A filter expression consists of a field name, a comparison operator, and
1387  // a value for filtering. The value must be a string, a number, or a
1388  // boolean. The comparison operator must be one of: `<`, `>`, or `=`.
1389  // Filters are not case sensitive.
1390  //
1391  // The following fields in the `Mandate` are eligible for
1392  // filtering:
1393  //
1394  //   * `uniqueMandateNumber` - UPI Unique Mandate Number (UMN). Allowed
1395  //   comparison operators: `=`.
1396  //   * `transactionID` - The transaction ID of the mandate transaction.
1397  //   Allowed comparison operators: `=`.
1398  //   * `transactionType` - The transaction type of the mandate
1399  //   transaction. Must be one of
1400  //   [TransactionType][google.cloud.paymentgateway.issuerswitch.v1.TransactionType]
1401  //   values. For mandate transactions, only valid transaction types are
1402  //   `TRANSACTION_TYPE_CREATE`, `TRANSACTION_TYPE_REVOKE` and
1403  //   `TRANSACTION_TYPE_UPDATE`. Allowed comparison operators: `=`.
1404  //   * `createTime` - The time at which the transaction was created
1405  //   (received) by the issuer switch. The value should be in
1406  //   the format `YYYY-MM-DDTHH:MM:SSZ`. Allowed comparison
1407  //   operators: `>`, `<`.
1408  // You can combine multiple expressions by enclosing each expression in
1409  // parentheses. Expressions are combined with AND logic. No other logical
1410  // operators are supported.
1411  //
1412  // Here are a few examples:
1413  //   * `recurrencePattern = MONTHLY` - The recurrence pattern type is
1414  //   monthly.
1415  //   * `state = SUCCEEDED` - The transaction's state is _SUCCEEDED_.
1416  //   * `payerVPA = example@okbank` - The VPA of the payer is the string
1417  //   _example@okbank_.
1418  //   * `(payerVPA = example@okbank) AND (createTime <
1419  //   "2021-08-15T14:50:00Z")`
1420  //   - The payer VPA example@okbank and the transaction was received
1421  //   before _2021-08-15 14:50:00 UTC_.
1422  //   * `createTime > "2021-08-15T14:50:00Z" AND createTime <
1423  //   "2021-08-16T14:50:00Z"` - The transaction was received between
1424  //   _2021-08-15 14:50:00 UTC_ and _2021-08-16 14:50:00 UTC_.
1425  //   * `startDate > "2021-08-15" AND startDate < "2021-08-17"` - The start
1426  //   date for mandate is between _2021-08-15_ and _2021-08-17_.
1427  string filter = 4;
1428}
1429
1430// Request for the `ListComplaintTransactions` method. Callers can request for
1431// transactions to be filtered by the given filter criteria and specified
1432// pagination parameters.
1433message ListComplaintTransactionsRequest {
1434  // Required. The parent resource. The format is `projects/{project}`.
1435  string parent = 1 [
1436    (google.api.field_behavior) = REQUIRED,
1437    (google.api.resource_reference) = {
1438      child_type: "issuerswitch.googleapis.com/ComplaintTransaction"
1439    }
1440  ];
1441
1442  // The maximum number of transactions to return. The service may return fewer
1443  // than this value. If unspecified or if the specified value is less than 1,
1444  // at most 50 transactions will be returned. The maximum value is 1000; values
1445  // above 1000 will be coerced to 1000. While paginating, you can specify a new
1446  // page size parameter for each page of transactions to be listed.
1447  int32 page_size = 2;
1448
1449  // A page token, received from a previous `ListComplaintTransactions` call.
1450  // Specify this parameter to retrieve the next page of transactions.
1451  //
1452  // When paginating, you must specify only the `page_token` parameter. The
1453  // filter that was specified in the initial call to the
1454  // `ListComplaintTransactions` method that returned the page token will be
1455  // reused for all further calls where the page token parameter is specified.
1456  string page_token = 3;
1457
1458  // An expression that filters the list of complaint transactions.
1459  //
1460  // A filter expression consists of a field name, a comparison operator, and
1461  // a value for filtering. The value must be a string, a number, or a
1462  // boolean. The comparison operator must be one of: `<`, `>`, or `=`.
1463  // Filters are not case sensitive.
1464  //
1465  // The following fields in the `Complaint` are eligible for
1466  // filtering:
1467  //
1468  //   * `transactionID` - The transaction ID of the complaint transaction.
1469  //   Allowed comparison operators: `=`.
1470  //   * `transactionType` - The transaction type of the complaint
1471  //   transaction. Must be one of
1472  //   [TransactionType][google.cloud.paymentgateway.issuerswitch.v1.TransactionType]
1473  //   values. For complaint transactions, only valid transaction types are
1474  //  `TRANSACTION_TYPE_CHECK_STATUS`, `TRANSACTION_TYPE_COMPLAINT`,
1475  //  `TRANSACTION_TYPE_REVERSAL`, `TRANSACTION_TYPE_DISPUTE`,
1476  //  `TRANSACTION_TYPE_REFUND` or `TRANSACTION_TYPE_STATUS_UPDATE`. Allowed
1477  //   comparison operators: `=`.
1478  //   * `originalRRN` - The retrieval reference number of the original
1479  //   transaction for which complaint / dispute was raised / resolved. Allowed
1480  //   comparison operators: `=`.
1481  //   * `createTime` - The time at which the transaction was created
1482  //   (received) by the issuer switch. The value should be in
1483  //   the format `YYYY-MM-DDTHH:MM:SSZ`. Allowed comparison
1484  //   operators: `>`, `<`.
1485  //   * `state` - The state of the transaction. Must be one of
1486  //   [TransactionInfo.State][google.cloud.paymentgateway.issuerswitch.v1.TransactionInfo.State]
1487  //   values. Allowed comparison operators: `=`.
1488  //   * `errorCode` - Use this filter to list complaint transactions which
1489  //   have failed a particular error code. Allowed comparison
1490  //   operators: `=`.
1491  // You can combine multiple expressions by enclosing each expression in
1492  // parentheses. Expressions are combined with AND logic. No other logical
1493  // operators are supported.
1494  //
1495  // Here are a few examples:
1496  //
1497  //   * `state = SUCCEEDED` - The transaction's state is _SUCCEEDED_.
1498  //   * (createTime < "2021-08-15T14:50:00Z")`
1499  //   - The transaction was received before _2021-08-15 14:50:00 UTC_.
1500  //   * `createTime > "2021-08-15T14:50:00Z" AND createTime <
1501  //   "2021-08-16T14:50:00Z"` - The transaction was received between
1502  //   _2021-08-15 14:50:00 UTC_ and _2021-08-16 14:50:00 UTC_.
1503  string filter = 4;
1504}
1505
1506// Response for the `ListMetadataTransactions` method.
1507message ListMetadataTransactionsResponse {
1508  // List of non financial metadata transactions satisfying the filtered
1509  // request.
1510  repeated MetadataTransaction metadata_transactions = 1;
1511
1512  // Pass this token in the ListMetadataTransactionsRequest to continue to list
1513  // results. If all results have been returned, this field is an empty string
1514  // or not present in the response.
1515  string next_page_token = 2;
1516}
1517
1518// Response for the `ListFinancialTransactions` method.
1519message ListFinancialTransactionsResponse {
1520  // List of financial transactions satisfying the filtered request.
1521  repeated FinancialTransaction financial_transactions = 1;
1522
1523  // Pass this token in the ListFinancialTransactionsRequest to continue to list
1524  // results. If all results have been returned, this field is an empty string
1525  // or not present in the response.
1526  string next_page_token = 2;
1527}
1528
1529// Response for the `ListMandateTransactionsResponse` method.
1530message ListMandateTransactionsResponse {
1531  // List of mandate transactions satisfying the filtered request.
1532  repeated MandateTransaction mandate_transactions = 1;
1533
1534  // Pass this token in the ListMandateTransactionsRequest to continue to list
1535  // results. If all results have been returned, this field is an empty string
1536  // or not present in the response.
1537  string next_page_token = 2;
1538}
1539
1540// Response for the `ListComplaintTransactionsResponse` method.
1541message ListComplaintTransactionsResponse {
1542  // List of complaint transactions satisfying the filtered request.
1543  repeated ComplaintTransaction complaint_transactions = 1;
1544
1545  // Pass this token in the ListComplaintTransactionsRequest to continue to list
1546  // results. If all results have been returned, this field is an empty string
1547  // or not present in the response.
1548  string next_page_token = 2;
1549}
1550
1551// Request for the `ExportFinancialTransactions` method.
1552message ExportFinancialTransactionsRequest {
1553  // Required. The parent resource for the transactions. The format is
1554  // `projects/{project}`.
1555  string parent = 1 [(google.api.field_behavior) = REQUIRED];
1556
1557  // Transaction type for the financial transaction API. The possible values for
1558  // transaction type are
1559  //
1560  // * TRANSACTION_TYPE_CREDIT
1561  // * TRANSACTION_TYPE_DEBIT
1562  // * TRANSACTION_TYPE_REVERSAL
1563  //
1564  // If no transaction type is specified, records of all the above transaction
1565  // types will be exported.
1566  TransactionType transaction_type = 2;
1567
1568  // The start time for the query.
1569  google.protobuf.Timestamp start_time = 3;
1570
1571  // The end time for the query.
1572  google.protobuf.Timestamp end_time = 4;
1573}
1574
1575// Request for the `ExportMetadataTransactions` method.
1576message ExportMetadataTransactionsRequest {
1577  // Required. The parent resource for the transactions. The format is
1578  // `projects/{project}`.
1579  string parent = 1 [(google.api.field_behavior) = REQUIRED];
1580
1581  // API type of the metadata transaction API. The possible values for API type
1582  // are
1583  //
1584  // * BALANCE
1585  // * CHECK_STATUS
1586  // * HEART_BEAT
1587  // * INITIATE_REGISTRATION
1588  // * LIST_ACCOUNTS
1589  // * UPDATE_CREDENTIALS
1590  // * VALIDATE_REGISTRATION
1591  //
1592  // If no API type is specified, records of all the above API types will be
1593  // exported.
1594  ApiType api_type = 2;
1595
1596  // The start time for the query.
1597  google.protobuf.Timestamp start_time = 3;
1598
1599  // The end time for the query.
1600  google.protobuf.Timestamp end_time = 4;
1601}
1602
1603// Request for the `ExportMandateTransactions` method.
1604message ExportMandateTransactionsRequest {
1605  // Required. The parent resource for the transactions. The format is
1606  // `projects/{project}`.
1607  string parent = 1 [(google.api.field_behavior) = REQUIRED];
1608
1609  // Transaction type for the mandate transaction API.  The possible values for
1610  // transaction type are
1611  //
1612  // * TRANSACTION_TYPE_CREATE
1613  // * TRANSACTION_TYPE_REVOKE
1614  // * TRANSACTION_TYPE_UPDATE
1615  //
1616  // If no transaction type is specified, records of all the above transaction
1617  // types will be exported.
1618  TransactionType transaction_type = 2;
1619
1620  // The start time for the query.
1621  google.protobuf.Timestamp start_time = 3;
1622
1623  // The end time for the query.
1624  google.protobuf.Timestamp end_time = 4;
1625}
1626
1627// Request for the `ExportComplaintTransactions` method.
1628message ExportComplaintTransactionsRequest {
1629  // Required. The parent resource for the transactions. The format is
1630  // `projects/{project}`.
1631  string parent = 1 [(google.api.field_behavior) = REQUIRED];
1632
1633  // Transaction type for the complaint transaction API. The possible values for
1634  // transaction type are
1635  //
1636  // * TRANSACTION_TYPE_CHECK_STATUS
1637  // * TRANSACTION_TYPE_COMPLAINT
1638  // * TRANSACTION_TYPE_DISPUTE
1639  // * TRANSACTION_TYPE_REFUND
1640  // * TRANSACTION_TYPE_REVERSAL
1641  // * TRANSACTION_TYPE_STATUS_UPDATE
1642  //
1643  // If no transaction type is specified, records of all the above transaction
1644  // types will be exported.
1645  TransactionType transaction_type = 2;
1646
1647  // The start time for the query.
1648  google.protobuf.Timestamp start_time = 3;
1649
1650  // The end time for the query.
1651  google.protobuf.Timestamp end_time = 4;
1652}
1653
1654// Response for the `ExportFinancialTransactions` method.
1655message ExportFinancialTransactionsResponse {
1656  // URI of the exported file.
1657  string target_uri = 1;
1658}
1659
1660// Response for the `ExportMetadataTransactions` method.
1661message ExportMetadataTransactionsResponse {
1662  // URI of the exported file.
1663  string target_uri = 1;
1664}
1665
1666// Response for the `ExportMandateTransactions` method.
1667message ExportMandateTransactionsResponse {
1668  // URI of the exported file.
1669  string target_uri = 1;
1670}
1671
1672// Response for the `ExportComplaintTransactions` method.
1673message ExportComplaintTransactionsResponse {
1674  // URI of the exported file.
1675  string target_uri = 1;
1676}
1677
1678// Metadata for ExportFinancialTransactions.
1679message ExportFinancialTransactionsMetadata {
1680  // Output only. The time at which the operation was created.
1681  google.protobuf.Timestamp create_time = 1
1682      [(google.api.field_behavior) = OUTPUT_ONLY];
1683}
1684
1685// Metadata for ExportMandateTransactions.
1686message ExportMandateTransactionsMetadata {
1687  // Output only. The time at which the operation was created.
1688  google.protobuf.Timestamp create_time = 1
1689      [(google.api.field_behavior) = OUTPUT_ONLY];
1690}
1691
1692// Metadata for ExportMetadataTransactions.
1693message ExportMetadataTransactionsMetadata {
1694  // Output only. The time at which the operation was created.
1695  google.protobuf.Timestamp create_time = 1
1696      [(google.api.field_behavior) = OUTPUT_ONLY];
1697}
1698
1699// Metadata for ExportComplaintTransactions.
1700message ExportComplaintTransactionsMetadata {
1701  // Output only. The time at which the operation was created.
1702  google.protobuf.Timestamp create_time = 1
1703      [(google.api.field_behavior) = OUTPUT_ONLY];
1704}
1705