From 170976a171bdd4fb625b20a40a5f9a901f9cbbe3 Mon Sep 17 00:00:00 2001 From: Aleksey Kashapov Date: Tue, 21 Jul 2026 11:53:33 +0300 Subject: [PATCH 1/4] XYZ-326: Introduces `Invoicing.CreateWithTemplate()` API extension --- proto/api_extensions.thrift | 38 +++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/proto/api_extensions.thrift b/proto/api_extensions.thrift index 7bdcc37f..32277a7d 100644 --- a/proto/api_extensions.thrift +++ b/proto/api_extensions.thrift @@ -69,3 +69,41 @@ service InvoiceTemplating { 4: payment_processing.InvalidShopStatus ex4 ) } + +typedef map UrlParams + +struct InvoiceWithTemplateParams { + 1: required domain.InvoiceTemplateID template_id + 2: optional domain.Cash cost + 3: optional domain.InvoiceContext context + 4: required domain.InvoiceID id + 5: optional string external_id + 6: optional UrlParams url_params +} + +struct InvoiceAccessToken { + 1: required string payload +} + +struct InvoiceUrl { + 1: required string url +} + +struct InvoiceAndToken { + 1: required domain.Invoice invoice + 2: required InvoiceAccessToken invoice_access_token + 3: required InvoiceUrl invoice_url +} + +service Invoicing { + + InvoiceAndToken CreateWithTemplate (1: InvoiceWithTemplateParams params) + throws ( + 1: base.InvalidRequest ex1, + 2: payment_processing.InvalidPartyStatus ex2, + 3: payment_processing.InvalidShopStatus ex3, + 4: payment_processing.InvoiceTemplateNotFound ex4, + 5: payment_processing.InvoiceTemplateRemoved ex5, + 6: payment_processing.InvoiceTermsViolated ex6 + ) +} From 3c0ccf2e1e6791ecb3533e7f9565a90dcd776377 Mon Sep 17 00:00:00 2001 From: Aleksey Kashapov Date: Wed, 22 Jul 2026 11:51:59 +0300 Subject: [PATCH 2/4] Incorporates new function into exsting service `InvoiceTemplating` --- proto/api_extensions.thrift | 53 +++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/proto/api_extensions.thrift b/proto/api_extensions.thrift index 32277a7d..c811a22e 100644 --- a/proto/api_extensions.thrift +++ b/proto/api_extensions.thrift @@ -35,6 +35,31 @@ struct InvoiceTemplateAndToken { 2: required AccessToken invoice_template_access_token } +typedef map UrlParams + +struct InvoiceWithTemplateParams { + 1: required domain.InvoiceTemplateID template_id + 2: optional domain.Cash cost + 3: optional domain.InvoiceContext context + 4: required domain.InvoiceID id + 5: optional string external_id + 6: optional UrlParams url_params +} + +struct InvoiceAccessToken { + 1: required string payload +} + +struct InvoiceUrl { + 1: required string url +} + +struct InvoiceAndToken { + 1: required domain.Invoice invoice + 2: required InvoiceAccessToken invoice_access_token + 3: required InvoiceUrl invoice_url +} + service InvoiceTemplating { InvoiceTemplateAndToken Create (1: InvoiceTemplateCreateParams params) @@ -68,34 +93,6 @@ service InvoiceTemplating { 3: payment_processing.InvalidPartyStatus ex3, 4: payment_processing.InvalidShopStatus ex4 ) -} - -typedef map UrlParams - -struct InvoiceWithTemplateParams { - 1: required domain.InvoiceTemplateID template_id - 2: optional domain.Cash cost - 3: optional domain.InvoiceContext context - 4: required domain.InvoiceID id - 5: optional string external_id - 6: optional UrlParams url_params -} - -struct InvoiceAccessToken { - 1: required string payload -} - -struct InvoiceUrl { - 1: required string url -} - -struct InvoiceAndToken { - 1: required domain.Invoice invoice - 2: required InvoiceAccessToken invoice_access_token - 3: required InvoiceUrl invoice_url -} - -service Invoicing { InvoiceAndToken CreateWithTemplate (1: InvoiceWithTemplateParams params) throws ( From 235416b872d09a057d62cf2e37bf9e2680f302e3 Mon Sep 17 00:00:00 2001 From: Aleksey Kashapov Date: Wed, 22 Jul 2026 11:54:23 +0300 Subject: [PATCH 3/4] Revert "Incorporates new function into exsting service `InvoiceTemplating`" This reverts commit 3c0ccf2e1e6791ecb3533e7f9565a90dcd776377. --- proto/api_extensions.thrift | 53 ++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/proto/api_extensions.thrift b/proto/api_extensions.thrift index c811a22e..32277a7d 100644 --- a/proto/api_extensions.thrift +++ b/proto/api_extensions.thrift @@ -35,31 +35,6 @@ struct InvoiceTemplateAndToken { 2: required AccessToken invoice_template_access_token } -typedef map UrlParams - -struct InvoiceWithTemplateParams { - 1: required domain.InvoiceTemplateID template_id - 2: optional domain.Cash cost - 3: optional domain.InvoiceContext context - 4: required domain.InvoiceID id - 5: optional string external_id - 6: optional UrlParams url_params -} - -struct InvoiceAccessToken { - 1: required string payload -} - -struct InvoiceUrl { - 1: required string url -} - -struct InvoiceAndToken { - 1: required domain.Invoice invoice - 2: required InvoiceAccessToken invoice_access_token - 3: required InvoiceUrl invoice_url -} - service InvoiceTemplating { InvoiceTemplateAndToken Create (1: InvoiceTemplateCreateParams params) @@ -93,6 +68,34 @@ service InvoiceTemplating { 3: payment_processing.InvalidPartyStatus ex3, 4: payment_processing.InvalidShopStatus ex4 ) +} + +typedef map UrlParams + +struct InvoiceWithTemplateParams { + 1: required domain.InvoiceTemplateID template_id + 2: optional domain.Cash cost + 3: optional domain.InvoiceContext context + 4: required domain.InvoiceID id + 5: optional string external_id + 6: optional UrlParams url_params +} + +struct InvoiceAccessToken { + 1: required string payload +} + +struct InvoiceUrl { + 1: required string url +} + +struct InvoiceAndToken { + 1: required domain.Invoice invoice + 2: required InvoiceAccessToken invoice_access_token + 3: required InvoiceUrl invoice_url +} + +service Invoicing { InvoiceAndToken CreateWithTemplate (1: InvoiceWithTemplateParams params) throws ( From d9fe0d083af569bada4953c80573a00192b0f522 Mon Sep 17 00:00:00 2001 From: Aleksey Kashapov Date: Wed, 22 Jul 2026 13:31:55 +0300 Subject: [PATCH 4/4] Removes invoice id field from requried params --- proto/api_extensions.thrift | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/proto/api_extensions.thrift b/proto/api_extensions.thrift index 32277a7d..e1e3559e 100644 --- a/proto/api_extensions.thrift +++ b/proto/api_extensions.thrift @@ -76,9 +76,8 @@ struct InvoiceWithTemplateParams { 1: required domain.InvoiceTemplateID template_id 2: optional domain.Cash cost 3: optional domain.InvoiceContext context - 4: required domain.InvoiceID id - 5: optional string external_id - 6: optional UrlParams url_params + 4: optional string external_id + 5: optional UrlParams url_params } struct InvoiceAccessToken {