diff --git a/api/spec/packages/aip/src/customers/credits/operations.tsp b/api/spec/packages/aip/src/customers/credits/operations.tsp index 41d6360e41..8c8a704a9b 100644 --- a/api/spec/packages/aip/src/customers/credits/operations.tsp +++ b/api/spec/packages/aip/src/customers/credits/operations.tsp @@ -48,6 +48,7 @@ namespace Credits.Grants { ): | Shared.CreateResponse | Common.NotFound + | Common.Conflict | Common.ErrorResponses; /** diff --git a/api/v3/api.gen.go b/api/v3/api.gen.go index 54591e0e3a..67dd3bd7d1 100644 --- a/api/v3/api.gen.go +++ b/api/v3/api.gen.go @@ -12331,329 +12331,329 @@ var swaggerSpec = []string{ "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", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/api/v3/openapi.yaml b/api/v3/openapi.yaml index 81e48692cf..87a5c18ad3 100644 --- a/api/v3/openapi.yaml +++ b/api/v3/openapi.yaml @@ -1081,6 +1081,8 @@ paths: $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' + '409': + $ref: '#/components/responses/Conflict' tags: - OpenMeter Customers requestBody: @@ -11651,6 +11653,21 @@ components: example: kong:trace:1234567890 detail: example: Gone + ConflictError: + allOf: + - $ref: '#/components/schemas/BaseError' + - type: object + properties: + status: + example: 409 + title: + example: Conflict + type: + example: https://httpstatuses.com/409 + instance: + example: kong:trace:1234567890 + detail: + example: Conflict CursorMetaPage: type: object required: @@ -11688,21 +11705,6 @@ components: properties: page: $ref: '#/components/schemas/CursorMetaPage' - ConflictError: - allOf: - - $ref: '#/components/schemas/BaseError' - - type: object - properties: - status: - example: 409 - title: - example: Conflict - type: - example: https://httpstatuses.com/409 - instance: - example: kong:trace:1234567890 - detail: - example: Conflict responses: BadRequest: description: Bad Request diff --git a/e2e/customer_credits_v3_test.go b/e2e/customer_credits_v3_test.go index 1a59f9ca58..7572c8bcf0 100644 --- a/e2e/customer_credits_v3_test.go +++ b/e2e/customer_credits_v3_test.go @@ -3,12 +3,15 @@ package e2e import ( "net/http" "net/url" + "strings" "testing" "time" "github.com/oklog/ulid/v2" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + + apiv3 "github.com/openmeterio/openmeter/api/v3" ) func TestV3CustomerCreditBalanceTimestampParamParsing(t *testing.T) { @@ -35,3 +38,49 @@ func TestV3CustomerCreditBalanceTimestampParamParsing(t *testing.T) { assert.Contains(t, problem.Detail, "timestamp") }) } + +// TestV3CreateCreditGrantMissingTaxCode verifies the documented contract for +// create-credit-grant: referencing a tax code that does not exist is rejected +// with HTTP 400 (a validation error), not a 412/500. The OpenAPI spec documents +// 400 for this operation, so this asserts the in-contract behavior end-to-end +// through the HTTP layer rather than only at the service boundary. +func TestV3CreateCreditGrantMissingTaxCode(t *testing.T) { + c := newV3Client(t) + + currency := apiv3.CurrencyCode("USD") + status, customer, problem := c.CreateCustomer(apiv3.CreateCustomerRequest{ + Key: uniqueKey("credit_grant_taxcode_customer"), + Name: "Credit Grant Tax Code Test Customer", + Currency: ¤cy, + }) + require.Equal(t, http.StatusCreated, status, "problem: %+v", problem) + require.NotNil(t, customer) + + // A structurally valid but non-existent tax code ULID. + missingTaxCode := ulid.Make().String() + + status, _, problem = c.CreateCreditGrant(customer.Id, apiv3.CreateCreditGrantRequest{ + Name: "grant with missing tax code", + Amount: apiv3.Numeric("10"), + Currency: currency, + FundingMethod: apiv3.BillingCreditFundingMethodNone, + TaxConfig: &apiv3.CreateCreditGrantTaxConfig{ + TaxCode: &apiv3.CreateResourceReference{Id: missingTaxCode}, + }, + }) + + require.Equal(t, http.StatusBadRequest, status, "missing tax code must be a 400 validation error, problem: %+v", problem) + require.NotNil(t, problem) + + // The offending tax code is named either in the top-level Detail or in the + // structured validationErrors[] message, depending on which error layer + // renders it. Accept either so the test asserts the contract, not the + // rendering shape. + mentionsTaxCode := strings.Contains(problem.Detail, "tax code") + for _, ve := range problem.ValidationErrors() { + if strings.Contains(ve.Message, "tax code") || strings.Contains(ve.Field, "tax_code") { + mentionsTaxCode = true + } + } + assert.True(t, mentionsTaxCode, "response should name the missing tax code, problem: %+v", problem) +} diff --git a/e2e/v3helpers_test.go b/e2e/v3helpers_test.go index d50507f24c..5df425f9d2 100644 --- a/e2e/v3helpers_test.go +++ b/e2e/v3helpers_test.go @@ -300,6 +300,14 @@ func (c *v3Client) GetCustomerEntitlementAccess(customerID string) (int, *apiv3. return decodeTyped[apiv3.ListCustomerEntitlementAccessResponseData](c, status, raw, problem, http.StatusOK) } +// CreateCreditGrant posts a credit grant for the given customer. customerID is +// the customer's ULID. Returns the decoded grant on 201, or (status, nil, +// problem) otherwise so error-path tests can assert the status and problem body. +func (c *v3Client) CreateCreditGrant(customerID string, body apiv3.CreateCreditGrantRequest) (int, *apiv3.BillingCreditGrant, *v3Problem) { + status, raw, problem := c.do(http.MethodPost, "/customers/"+customerID+"/credits/grants", body) + return decodeTyped[apiv3.BillingCreditGrant](c, status, raw, problem, http.StatusCreated) +} + // --- Subscriptions --- func (c *v3Client) CreateSubscription(body apiv3.BillingSubscriptionCreate) (int, *apiv3.BillingSubscription, *v3Problem) { diff --git a/openmeter/billing/charges/charge.go b/openmeter/billing/charges/charge.go index a6899a6ef9..ccc2511414 100644 --- a/openmeter/billing/charges/charge.go +++ b/openmeter/billing/charges/charge.go @@ -385,7 +385,33 @@ func (c ChargeIntent) GetUniqueReferenceID() (*string, error) { return nil, fmt.Errorf("invalid charge type: %s", c.t) } -// Meta returns the shared meta.Intent embedded in every charge type. +// TaxCodeID returns the intent's configured tax code ID. +// It is empty when no tax code is set. +func (i ChargeIntent) TaxCodeID() (string, error) { + switch i.t { + case meta.ChargeTypeFlatFee: + if i.flatFee == nil { + return "", fmt.Errorf("flat fee is nil") + } + + return i.flatFee.TaxConfig.TaxCodeID, nil + case meta.ChargeTypeUsageBased: + if i.usageBased == nil { + return "", fmt.Errorf("usage based is nil") + } + + return i.usageBased.TaxConfig.TaxCodeID, nil + case meta.ChargeTypeCreditPurchase: + if i.creditPurchase == nil { + return "", fmt.Errorf("credit purchase is nil") + } + + return i.creditPurchase.TaxConfig.TaxCodeID, nil + } + + return "", fmt.Errorf("unsupported charge type: %s", i.t) +} + // WithTaxCodeID returns a copy of the intent with TaxCodeID set to id. // Existing tax behavior and other intent fields are preserved. func (i ChargeIntent) WithTaxCodeID(id string) (ChargeIntent, error) { diff --git a/openmeter/billing/charges/creditpurchase/adapter/charge.go b/openmeter/billing/charges/creditpurchase/adapter/charge.go index 1bcd82377f..f84089ea19 100644 --- a/openmeter/billing/charges/creditpurchase/adapter/charge.go +++ b/openmeter/billing/charges/creditpurchase/adapter/charge.go @@ -8,6 +8,7 @@ import ( "github.com/openmeterio/openmeter/openmeter/billing/charges/creditpurchase" "github.com/openmeterio/openmeter/openmeter/billing/charges/meta" + metaadapter "github.com/openmeterio/openmeter/openmeter/billing/charges/meta/adapter" "github.com/openmeterio/openmeter/openmeter/billing/charges/models/chargemeta" "github.com/openmeterio/openmeter/openmeter/ent/db" dbchargecreditpurchase "github.com/openmeterio/openmeter/openmeter/ent/db/chargecreditpurchase" @@ -89,7 +90,7 @@ func (a *adapter) CreateCharge(ctx context.Context, in creditpurchase.CreateChar dbCreditPurchase, err := create.Save(ctx) if err != nil { - return creditpurchase.Charge{}, err + return creditpurchase.Charge{}, metaadapter.MapChargeConstraintError(err) } err = tx.metaAdapter.RegisterCharges(ctx, meta.RegisterChargesInput{ diff --git a/openmeter/billing/charges/flatfee/adapter/charge.go b/openmeter/billing/charges/flatfee/adapter/charge.go index ea5a66ea62..bf1bb6cdb4 100644 --- a/openmeter/billing/charges/flatfee/adapter/charge.go +++ b/openmeter/billing/charges/flatfee/adapter/charge.go @@ -9,6 +9,7 @@ import ( "github.com/openmeterio/openmeter/openmeter/billing/charges/flatfee" "github.com/openmeterio/openmeter/openmeter/billing/charges/meta" + metaadapter "github.com/openmeterio/openmeter/openmeter/billing/charges/meta/adapter" "github.com/openmeterio/openmeter/openmeter/billing/charges/models/chargemeta" "github.com/openmeterio/openmeter/openmeter/ent/db" dbchargeflatfee "github.com/openmeterio/openmeter/openmeter/ent/db/chargeflatfee" @@ -208,7 +209,7 @@ func (a *adapter) CreateCharges(ctx context.Context, in flatfee.CreateChargesInp entities, err := tx.db.ChargeFlatFee.CreateBulk(creates...).Save(ctx) if err != nil { - return nil, err + return nil, metaadapter.MapChargeConstraintError(err) } // Let's reserve the charge IDs diff --git a/openmeter/billing/charges/meta/adapter/errors.go b/openmeter/billing/charges/meta/adapter/errors.go new file mode 100644 index 0000000000..a830a93bdd --- /dev/null +++ b/openmeter/billing/charges/meta/adapter/errors.go @@ -0,0 +1,32 @@ +package adapter + +import ( + "fmt" + + "entgo.io/ent/dialect/sql/sqlgraph" + + entdb "github.com/openmeterio/openmeter/openmeter/ent/db" + "github.com/openmeterio/openmeter/pkg/models" +) + +// MapChargeConstraintError translates an ent DB constraint violation errors. +func MapChargeConstraintError(err error) error { + if err == nil || !entdb.IsConstraintError(err) { + return err + } + + switch { + case sqlgraph.IsUniqueConstraintError(err): + return models.NewGenericConflictError( + fmt.Errorf("charge conflicts with an existing charge: %w", err), + ) + case sqlgraph.IsForeignKeyConstraintError(err): + return models.NewGenericValidationError( + fmt.Errorf("charge references a resource that does not exist: %w", err), + ) + default: + return models.NewGenericValidationError( + fmt.Errorf("charge violates a database constraint: %w", err), + ) + } +} diff --git a/openmeter/billing/charges/service/create.go b/openmeter/billing/charges/service/create.go index b5dc775aea..23c8c7274d 100644 --- a/openmeter/billing/charges/service/create.go +++ b/openmeter/billing/charges/service/create.go @@ -21,6 +21,7 @@ import ( "github.com/openmeterio/openmeter/pkg/clock" "github.com/openmeterio/openmeter/pkg/currencyx" "github.com/openmeterio/openmeter/pkg/framework/transaction" + "github.com/openmeterio/openmeter/pkg/models" "github.com/openmeterio/openmeter/pkg/ref" "github.com/openmeterio/openmeter/pkg/slicesx" ) @@ -43,29 +44,9 @@ func (s *service) applyDefaultTaxCodes(ctx context.Context, namespace string, in }) return slicesx.MapWithErr(intents, func(intent charges.ChargeIntent) (charges.ChargeIntent, error) { - var taxCodeID string - - switch intent.Type() { - case meta.ChargeTypeFlatFee: - flatFee, err := intent.AsFlatFeeIntent() - if err != nil { - return charges.ChargeIntent{}, err - } - taxCodeID = flatFee.TaxConfig.TaxCodeID - case meta.ChargeTypeCreditPurchase: - creditPurchase, err := intent.AsCreditPurchaseIntent() - if err != nil { - return charges.ChargeIntent{}, err - } - taxCodeID = creditPurchase.TaxConfig.TaxCodeID - case meta.ChargeTypeUsageBased: - usageBased, err := intent.AsUsageBasedIntent() - if err != nil { - return charges.ChargeIntent{}, err - } - taxCodeID = usageBased.TaxConfig.TaxCodeID - default: - return charges.ChargeIntent{}, fmt.Errorf("unsupported charge type: %s", intent.Type()) + taxCodeID, err := intent.TaxCodeID() + if err != nil { + return charges.ChargeIntent{}, err } if taxCodeID != "" { @@ -87,6 +68,44 @@ func (s *service) applyDefaultTaxCodes(ctx context.Context, namespace string, in }) } +// validateTaxCodesExist verifies every distinct non-empty tax code referenced by the intents +// exists. +func (s *service) validateTaxCodesExist(ctx context.Context, namespace string, intents charges.ChargeIntents) error { + seen := make(map[string]struct{}, len(intents)) + + for _, intent := range intents { + taxCodeID, err := intent.TaxCodeID() + if err != nil { + return err + } + + if taxCodeID == "" { + continue + } + + if _, ok := seen[taxCodeID]; ok { + continue + } + seen[taxCodeID] = struct{}{} + + _, err = s.taxCodeService.GetTaxCode(ctx, taxcode.GetTaxCodeInput{ + NamespacedID: models.NamespacedID{Namespace: namespace, ID: taxCodeID}, + }) + if err != nil { + if taxcode.IsTaxCodeNotFoundError(err) { + return models.NewGenericValidationError( + models.NewValidationError("tax_code_not_found", fmt.Sprintf("referenced tax code %q does not exist", taxCodeID)). + WithPathString("tax_config", "tax_code"), + ) + } + + return err + } + } + + return nil +} + func (s *service) Create(ctx context.Context, input charges.CreateInput) (charges.Charges, error) { result, err := s.create(ctx, input) if err != nil { @@ -127,6 +146,10 @@ func (s *service) create(ctx context.Context, input charges.CreateInput) (*charg return nil, err } + if err := s.validateTaxCodesExist(ctx, input.Namespace, input.Intents); err != nil { + return nil, err + } + result, err := transaction.Run(ctx, s.adapter, func(ctx context.Context) (*chargesWithInvoiceNowActions, error) { intentsByType, err := input.Intents.ByType() if err != nil { diff --git a/openmeter/billing/charges/service/taxcode_test.go b/openmeter/billing/charges/service/taxcode_test.go index f4021f2ca9..4d9dd7d61a 100644 --- a/openmeter/billing/charges/service/taxcode_test.go +++ b/openmeter/billing/charges/service/taxcode_test.go @@ -25,6 +25,7 @@ import ( "github.com/openmeterio/openmeter/pkg/clock" "github.com/openmeterio/openmeter/pkg/currencyx" "github.com/openmeterio/openmeter/pkg/datetime" + "github.com/openmeterio/openmeter/pkg/models" "github.com/openmeterio/openmeter/pkg/pagination" "github.com/openmeterio/openmeter/pkg/timeutil" billingtest "github.com/openmeterio/openmeter/test/billing" @@ -1389,6 +1390,104 @@ func (s *TaxCodePersistenceTestSuite) TestUsageBasedBehaviorOnlyTaxConfigGetsDef s.Equal(invoicingStripeCode, gatheringLine.TaxConfig.Stripe.Code) } +// TestCreateFlatFeeChargeWithMissingTaxCodeFailsValidation verifies that the type-agnostic +// validateTaxCodesExist pre-check rejects a flat-fee intent referencing a non-existent tax code +// with a validation error (400) before any DB write, mirroring the credit-purchase coverage in +// the credits suite for the flat-fee charge type. +func (s *TaxCodePersistenceTestSuite) TestCreateFlatFeeChargeWithMissingTaxCodeFailsValidation() { + ctx := s.T().Context() + ns := s.GetUniqueNamespace("charges-taxcode-flatfee-missing") + s.ProvisionDefaultTaxCodes(ctx, ns) + + cust := s.CreateTestCustomer(ns, "test-subject") + + servicePeriod := timeutil.ClosedPeriod{ + From: time.Date(2026, 1, 1, 0, 0, 0, 0, time.UTC), + To: time.Date(2026, 2, 1, 0, 0, 0, 0, time.UTC), + } + clock.SetTime(servicePeriod.From) + defer clock.UnFreeze() + + _, err := s.Charges.Create(ctx, charges.CreateInput{ + Namespace: ns, + Intents: charges.ChargeIntents{ + s.createMockChargeIntent(createMockChargeIntentInput{ + customer: cust.GetID(), + currency: USD, + servicePeriod: servicePeriod, + settlementMode: productcatalog.CreditThenInvoiceSettlementMode, + price: productcatalog.NewPriceFrom(productcatalog.FlatPrice{ + Amount: alpacadecimal.NewFromFloat(100), + PaymentTerm: productcatalog.InAdvancePaymentTerm, + }), + name: "flat-fee-missing-taxcode", + managedBy: billing.ManuallyManagedLine, + uniqueReferenceID: "flat-fee-missing-taxcode", + taxConfig: productcatalog.TaxCodeConfig{ + TaxCodeID: ulid.Make().String(), + }, + }), + }, + }) + s.Require().Error(err) + s.True(models.IsGenericValidationError(err), "a reference to a non-existent tax code must be a validation error, got: %v", err) +} + +// TestCreateChargeWithDuplicateReferenceIsConflict verifies that a unique_reference_id collision +// raised by the bulk insert is mapped by MapChargeConstraintError to a conflict error (409), not a +// precondition-failed (412) or a raw DB error (500). This exercises the runtime constraint-error +// translation end-to-end: the ent ConstraintError must remain classifiable as a unique violation +// through the wrap chain for the conflict mapping to fire. +func (s *TaxCodePersistenceTestSuite) TestCreateChargeWithDuplicateReferenceIsConflict() { + ctx := s.T().Context() + ns := s.GetUniqueNamespace("charges-taxcode-duplicate-reference") + s.ProvisionDefaultTaxCodes(ctx, ns) + + sandboxApp := s.InstallSandboxApp(s.T(), ns) + _ = s.ProvisionBillingProfile(ctx, ns, sandboxApp.GetID()) + cust := s.CreateTestCustomer(ns, "test-subject") + + servicePeriod := timeutil.ClosedPeriod{ + From: time.Date(2026, 1, 1, 0, 0, 0, 0, time.UTC), + To: time.Date(2026, 2, 1, 0, 0, 0, 0, time.UTC), + } + clock.SetTime(servicePeriod.From) + defer clock.UnFreeze() + + newIntent := func() charges.ChargeIntent { + return s.createMockChargeIntent(createMockChargeIntentInput{ + customer: cust.GetID(), + currency: USD, + servicePeriod: servicePeriod, + settlementMode: productcatalog.CreditThenInvoiceSettlementMode, + price: productcatalog.NewPriceFrom(productcatalog.FlatPrice{ + Amount: alpacadecimal.NewFromFloat(100), + PaymentTerm: productcatalog.InAdvancePaymentTerm, + }), + name: "duplicate-reference", + managedBy: billing.ManuallyManagedLine, + uniqueReferenceID: "duplicate-reference", + }) + } + + // given: a charge already persisted with a unique_reference_id. + _, err := s.Charges.Create(ctx, charges.CreateInput{ + Namespace: ns, + Intents: charges.ChargeIntents{newIntent()}, + }) + s.Require().NoError(err) + + // when: creating a second charge with the same reference for the same customer. + _, err = s.Charges.Create(ctx, charges.CreateInput{ + Namespace: ns, + Intents: charges.ChargeIntents{newIntent()}, + }) + + // then: the uniqueness collision surfaces as a conflict, not a precondition or raw DB error. + s.Require().Error(err) + s.True(models.IsGenericConflictError(err), "a duplicate charge reference must be a conflict error, got: %v", err) +} + func (s *TaxCodePersistenceTestSuite) createTestTaxCode(ctx context.Context, ns, key string) taxcode.TaxCode { s.T().Helper() tc, err := s.TaxCodeService.CreateTaxCode(ctx, taxcode.CreateTaxCodeInput{ diff --git a/openmeter/billing/charges/usagebased/adapter/charge.go b/openmeter/billing/charges/usagebased/adapter/charge.go index f216c48f3c..d204db782e 100644 --- a/openmeter/billing/charges/usagebased/adapter/charge.go +++ b/openmeter/billing/charges/usagebased/adapter/charge.go @@ -8,6 +8,7 @@ import ( "github.com/samber/lo" "github.com/openmeterio/openmeter/openmeter/billing/charges/meta" + metaadapter "github.com/openmeterio/openmeter/openmeter/billing/charges/meta/adapter" "github.com/openmeterio/openmeter/openmeter/billing/charges/models/chargemeta" "github.com/openmeterio/openmeter/openmeter/billing/charges/usagebased" "github.com/openmeterio/openmeter/openmeter/ent/db" @@ -186,7 +187,7 @@ func (a *adapter) CreateCharges(ctx context.Context, in usagebased.CreateCharges entities, err := tx.db.ChargeUsageBased.CreateBulk(creates...).Save(ctx) if err != nil { - return nil, err + return nil, metaadapter.MapChargeConstraintError(err) } return slicesx.MapWithErr(entities, func(entity *db.ChargeUsageBased) (usagebased.Charge, error) { diff --git a/test/credits/creditgrant_test.go b/test/credits/creditgrant_test.go index ba7d5069dd..0de1aa203f 100644 --- a/test/credits/creditgrant_test.go +++ b/test/credits/creditgrant_test.go @@ -31,6 +31,7 @@ import ( omtestutils "github.com/openmeterio/openmeter/openmeter/testutils" "github.com/openmeterio/openmeter/pkg/clock" "github.com/openmeterio/openmeter/pkg/datetime" + "github.com/openmeterio/openmeter/pkg/models" billingtest "github.com/openmeterio/openmeter/test/billing" ) @@ -610,6 +611,30 @@ func (s *CreditGrantTestSuite) TestCreatePromotionalGrantPropagatesTaxConfigToCh s.Equal(tc.ID, grant.Intent.TaxConfig.TaxCodeID) } +// TestCreateGrantWithMissingTaxCodeFailsValidation verifies that referencing a non-existent tax code +// is reported as a validation error. +func (s *CreditGrantTestSuite) TestCreateGrantWithMissingTaxCodeFailsValidation() { + ctx := s.T().Context() + ns := s.GetUniqueNamespace("creditgrant-missing-taxcode") + s.ProvisionDefaultTaxCodes(ctx, ns) + + cust := s.CreateLedgerBackedCustomer(ns, "test-subject") + + _, err := s.CreditGrantService.Create(ctx, creditgrant.CreateInput{ + Namespace: ns, + CustomerID: cust.ID, + Name: "grant with missing tax code", + Currency: USD, + Amount: alpacadecimal.NewFromInt(10), + FundingMethod: creditgrant.FundingMethodNone, + TaxConfig: &productcatalog.TaxConfig{ + TaxCodeID: lo.ToPtr("01KW0000000000000000000000"), + }, + }) + s.Require().Error(err) + s.True(models.IsGenericValidationError(err), "a reference to a non-existent tax code must be a validation error, got: %v", err) +} + func (s *CreditGrantTestSuite) mustCreatePromotionalCreditGrant(ctx context.Context, namespace string, customerID customer.CustomerID, name string, amount alpacadecimal.Decimal) creditpurchase.Charge { s.T().Helper()