neq quotation definition + priced_at field

This commit is contained in:
Stephan D
2026-02-13 15:35:17 +01:00
parent da1636014b
commit 52c4c046c9
85 changed files with 1180 additions and 162 deletions

View File

@@ -0,0 +1,11 @@
syntax = "proto3";
package common.archivable.v1;
option go_package = "github.com/tech/sendico/pkg/proto/common/archivable/v1;archivablev1";
message Archivable {
bool is_archived = 1;
}

View File

@@ -1,8 +1,11 @@
syntax = "proto3";
package common.gateway.v1;
option go_package = "github.com/tech/sendico/pkg/proto/common/gateway/v1;gatewayv1";
import "common/money/v1/money.proto";
import "api/proto/common/money/v1/money.proto";
import "api/proto/payments/endpoint/v1/endpoint.proto";
enum Operation {
@@ -18,17 +21,6 @@ enum Operation {
OPERATION_CREATE_ACCOUNT = 9;
}
enum PaymentMethodType {
PM_UNSPECIFIED = 0;
PM_CARD = 1;
PM_SEPA = 2;
PM_ACH = 3;
PM_PIX = 4;
PM_WALLET = 5;
PM_CRYPTO = 6;
PM_LOCAL_BANK = 7; // generic local rails, refine later if needed
}
// Rail identifiers for orchestration. Extend with new rails as needed.
enum Rail {
RAIL_UNSPECIFIED = 0;
@@ -70,7 +62,7 @@ message OperationCapabilities {
// Per-method matrix entry
message MethodCapability {
PaymentMethodType method = 1;
payments.endpoint.v1.PaymentMethod method = 1;
// ISO 4217 currency codes, e.g. "EUR", "USD"
repeated string currencies = 2;
@@ -187,4 +179,4 @@ message OperationExecutionStatus {
common.money.v1.Money executed_money = 3;
OperationResult status = 4;
OperationError error = 5;
}
}

View File

@@ -0,0 +1,10 @@
syntax = "proto3";
package common.obound.v1;
option go_package = "github.com/tech/sendico/pkg/proto/common/organization_bound/v1;oboundv1";
message OrganizationBound {
string organization_ref = 1;
}

View File

@@ -0,0 +1,73 @@
syntax = "proto3";
package common.payment.v1;
option go_package = "github.com/tech/sendico/pkg/proto/common/payment/v1;paymentv1";
import "google/protobuf/wrappers.proto";
// -------------------------
// Card network (payment system)
// -------------------------
enum CardNetwork {
CARD_NETWORK_UNSPECIFIED = 0;
CARD_NETWORK_VISA = 1;
CARD_NETWORK_MASTERCARD = 2;
CARD_NETWORK_MIR = 3;
CARD_NETWORK_AMEX = 4;
CARD_NETWORK_UNIONPAY = 5;
CARD_NETWORK_JCB = 6;
CARD_NETWORK_DISCOVER = 7;
}
enum CardFundingType {
CARD_FUNDING_UNSPECIFIED = 0;
CARD_FUNDING_DEBIT = 1;
CARD_FUNDING_CREDIT = 2;
CARD_FUNDING_PREPAID = 3;
}
// -------------------------
// PCI scope: raw card details
// -------------------------
message RawCardData {
string pan = 1;
uint32 exp_month = 2; // 112
uint32 exp_year = 3; // YYYY
string cvv = 4; // optional; often omitted for payouts
}
// -------------------------
// Safe metadata (display / routing hints)
// -------------------------
message CardMetadata {
string masked_pan = 1; // e.g. 411111******1111
CardNetwork network = 2; // Visa/Mastercard/Mir/...
CardFundingType funding = 3; // debit/credit/prepaid (if known)
string issuing_country = 4; // ISO 3166-1 alpha-2 (if known)
string issuer_name = 5; // display only (if known)
}
// -------------------------
// Card details
// Either inline credentials OR reference to stored payment method
// -------------------------
message CardDetails {
string id = 1;
oneof source {
RawCardData raw = 2;
string payment_method_id = 3;
}
string cardholder_name = 4;
string cardholder_surname = 5;
string billing_country = 6; // ISO 3166-1 alpha-2, if you need it per operation
}

View File

@@ -0,0 +1,11 @@
syntax = "proto3";
package common.payment.v1;
option go_package = "github.com/tech/sendico/pkg/proto/common/payment/v1;paymentv1";
message CustomPaymentDetails {
string id = 1;
bytes payment_method_json = 2;
}

View File

@@ -0,0 +1,16 @@
syntax = "proto3";
package common.payment.v1;
option go_package = "github.com/tech/sendico/pkg/proto/common/payment/v1;paymentv1";
import "api/proto/gateway/chain/v1/chain.proto";
message ExternalChainDetails {
string id = 1;
chain.gateway.v1.Asset asset = 2;
string address = 3;
string memo = 4;
}

View File

@@ -0,0 +1,14 @@
syntax = "proto3";
package common.payment.v1;
option go_package = "github.com/tech/sendico/pkg/proto/common/payment/v1;paymentv1";
message LedgerDetails {
string id = 1;
oneof source {
string ledger_account_ref = 2;
string account_code = 3;
}
}

View File

@@ -0,0 +1,11 @@
syntax = "proto3";
package common.payment.v1;
option go_package = "github.com/tech/sendico/pkg/proto/common/payment/v1;paymentv1";
message ManagedWalletDetails {
string id = 1;
string managed_wallet_ref = 2;
}

View File

@@ -0,0 +1,16 @@
syntax = "proto3";
package common.payment.v1;
option go_package = "github.com/tech/sendico/pkg/proto/common/payment/v1;paymentv1";
// -------------------------
// Russian bank account details
// -------------------------
message RussianBankDetails {
string id = 1;
string account_number = 2; // 20 digits
string bik = 3; // 9 digits
string account_holder_name = 4;
}

View File

@@ -0,0 +1,17 @@
syntax = "proto3";
package common.payment.v1;
option go_package = "github.com/tech/sendico/pkg/proto/common/payment/v1;paymentv1";
// -------------------------
// SEPA bank account details
// -------------------------
message SepaBankDetails {
string id = 1;
string iban = 2; // IBAN
string bic = 3; // optional (BIC/SWIFT)
string account_holder_name = 4;
}

View File

@@ -0,0 +1,13 @@
syntax = "proto3";
package common.payment.v1;
option go_package = "github.com/tech/sendico/pkg/proto/common/payment/v1;paymentv1";
// SettlementMode defines how to treat fees/FX variance for payouts.
enum SettlementMode {
SETTLEMENT_UNSPECIFIED = 0;
SETTLEMENT_FIX_SOURCE = 1; // customer pays fees; sent amount fixed
SETTLEMENT_FIX_RECEIVED = 2; // receiver gets fixed amount; source flexes
}

View File

@@ -0,0 +1,17 @@
syntax = "proto3";
package common.pbound.v1;
option go_package = "github.com/tech/sendico/pkg/proto/common/permission_bound/v1;pboundv1";
import "api/proto/common/storable/v1/storable.proto";
import "api/proto/common/archivable/v1/archivable.proto";
import "api/proto/common/organization_bound/v1/obound.proto";
message PermissionBound {
common.storable.v1.Storable storable = 1;
common.archivable.v1.Archivable archivable = 2;
common.obound.v1.OrganizationBound organization_bound = 3;
string permission_ref = 4;
}

View File

@@ -0,0 +1,14 @@
syntax = "proto3";
package common.storable.v1;
option go_package = "github.com/tech/sendico/pkg/proto/common/storable/v1;storablev1";
import "google/protobuf/timestamp.proto";
message Storable {
string id = 1;
google.protobuf.Timestamp created_at = 10;
google.protobuf.Timestamp updated_at = 11;
}